diff --git a/README.md b/README.md
index 7ed3abd..82ed2c9 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,21 @@ Démarrer NUXT
- npm run dev
- URL : http://localhost:3000/
+# Variables d'environnement
+Elles sont **définies** dans `ecosystem.config.cjs` (PM2) et **consommées** dans `nuxt.config.js` via `runtimeConfig`.
+
+Exemples de variables :
+- `NUXT_PUBLIC_STRAPI_URL`
+- `NUXT_PUBLIC_SAISON`
+- `NUXT_STRAPI_TOKEN`
+
+Utilisation dans le code :
+- `runtimeConfig.public.saison`
+- `runtimeConfig.public.strapiUrl`
+
+Après modification de `ecosystem.config.cjs` :
+- `pm2 reload ecosystem.config.cjs --only wondif_vue`
+
# Site de développement
## URL
https://2025.orchestre-ile.com/
@@ -42,7 +57,8 @@ cd /var/www/wondif_vue
git pull origin main # récupère le dernier code
npm ci # installe / met à jour les dépendances (à exécuter uniquement si nouvelle dépendances installées dans package json)
npm run build # rebuild Nuxt
-pm2 restart wondif_vue # redémarre le process
+pm2 reload ecosystem.config.cjs --only wondif_vue # redémarre le process avec les nouvelles variables d'environnement de ecosystem
+
# STRAPI
## URL de PROD
@@ -999,4 +1015,4 @@ debian@vps-48ebe2d9:~$ history
817 pm2 list
818 pm2 restart strapi_wondif
819 pm2 list
- 820 history
\ No newline at end of file
+ 820 history
diff --git a/app/components/Breadcrumb.vue b/app/components/Breadcrumb.vue
index e7d5fbc..1bd33c3 100644
--- a/app/components/Breadcrumb.vue
+++ b/app/components/Breadcrumb.vue
@@ -2,7 +2,7 @@
-
-
+
{
const parts = route.path.split('/').filter(Boolean)
const crumbs = [{ to: '/', label: 'Accueil' }]
+ const from = typeof route.query.from === 'string' ? route.query.from : ''
let acc = ''
parts.forEach((part, index) => {
@@ -50,7 +72,35 @@
? props.currentLabel
: (labelMap[part] || humanize(decodeURIComponent(part)))
- crumbs.push({ to: acc, label })
+ const noLink = part === 'orchestre' || part === 'concerts'
+ crumbs.push({ to: resolveTo(part, index, parts, acc), label, noLink })
+
+ if (part === 'concerts') {
+ const next = parts[index + 1] || ''
+ if (next.startsWith('concert-')) {
+ if (from === 'agenda') {
+ crumbs.push({ to: '/concerts/agenda', label: 'Agenda' })
+ }
+ if (from === 'saison') {
+ crumbs.push({ to: '/concerts/saison', label: 'Saison' })
+ }
+ if (from === 'jeune-public') {
+ crumbs.push({ to: '/concerts/jeune-public', label: 'Jeune public' })
+ }
+ }
+ }
+
+ if (part === 'orchestre') {
+ const next = parts[index + 1] || ''
+ if (next.startsWith('artiste-') || next.startsWith('artisteinvitee-')) {
+ if (from === 'musiciens') {
+ crumbs.push({ to: '/orchestre/musiciens', label: 'Les musiciens' })
+ }
+ if (from === 'artistesinvitees') {
+ crumbs.push({ to: '/orchestre/artistesinvitees', label: 'Les artistes invités' })
+ }
+ }
+ }
})
return crumbs
diff --git a/app/components/concert/ConcertCard.vue b/app/components/concert/ConcertCard.vue
index 41e1d68..12eb4bf 100644
--- a/app/components/concert/ConcertCard.vue
+++ b/app/components/concert/ConcertCard.vue
@@ -49,7 +49,7 @@
defineProps({
id: { type: [String, Number], required: true },
title: { type: String, required: true },
- lieu: { type: String, required: true },
+ lieu: { type: String, default: '' },
dateISO: { type: String, required: true }, // ex: "2026-01-15T20:00:00+01:00"
dateLabel: { type: String, required: true }, // ex: "Jeu. 15 jan. 2026 — 20h"
description: { type: String, default: '' },
@@ -86,4 +86,4 @@
margin-top: auto;
}
-
\ No newline at end of file
+
diff --git a/app/components/section/Decalage.vue b/app/components/section/Decalage.vue
new file mode 100644
index 0000000..fcc130b
--- /dev/null
+++ b/app/components/section/Decalage.vue
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ En savoir +
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/concerts/agenda.vue b/app/pages/concerts/agenda.vue
index 8d11da8..779e8a1 100644
--- a/app/pages/concerts/agenda.vue
+++ b/app/pages/concerts/agenda.vue
@@ -20,7 +20,7 @@
:description="c.resume_concert"
:imageUrl="c.image_illustration_concert?.url"
:imageAlt="c.image_illustration_concert?.alternativeText"
- :href="`concert-${c.slug_concert}`"
+ :href="`concert-${c.slug_concert}?from=agenda`"
/>
diff --git a/app/pages/concerts/concert-[id].vue b/app/pages/concerts/concert-[id].vue
index 4cc3a6c..3f8fccd 100644
--- a/app/pages/concerts/concert-[id].vue
+++ b/app/pages/concerts/concert-[id].vue
@@ -654,7 +654,10 @@
margin-bottom: 70px;
padding-top: 50px;
padding-right: 30px;
- padding-left: 40px;
+ padding-left: 50px;
+ @media (max-width: 599px) {
+ padding-left: 40px;
+ }
padding-bottom: 50px;
/* DÉCALAGE DU BLOC VERS LA DROITE */
diff --git a/app/pages/concerts/jeune-public.vue b/app/pages/concerts/jeune-public.vue
index a5c10c0..8d904b3 100644
--- a/app/pages/concerts/jeune-public.vue
+++ b/app/pages/concerts/jeune-public.vue
@@ -20,7 +20,7 @@
:description="c.resume_concert"
:imageUrl="c.image_illustration_concert?.url"
:imageAlt="c.image_illustration_concert?.alternativeText"
- :href="`concert-${c.slug_concert}`"
+ :href="`concert-${c.slug_concert}?from=jeune-public`"
/>
diff --git a/app/pages/concerts/saison.vue b/app/pages/concerts/saison.vue
index 1f73d89..96c9bee 100644
--- a/app/pages/concerts/saison.vue
+++ b/app/pages/concerts/saison.vue
@@ -20,7 +20,7 @@
:description="c.resume_concert"
:imageUrl="c.image_illustration_concert?.url"
:imageAlt="c.image_illustration_concert?.alternativeText"
- :href="`concert-${c.slug_concert}`"
+ :href="`concert-${c.slug_concert}?from=saison`"
/>
@@ -57,7 +57,7 @@
saison_concert: {
nom_saison: {
$eq: String(runtimeConfig.public.saison),
- },
+ },
},
},
upcomingOnly: false,
diff --git a/app/pages/index.vue b/app/pages/index.vue
index c81bc35..af13936 100644
--- a/app/pages/index.vue
+++ b/app/pages/index.vue
@@ -26,7 +26,7 @@
:description="c.resume_concert"
:imageUrl="c.image_illustration_concert?.url"
:imageAlt="c.image_illustration_concert?.alternativeText"
- :href="`/concerts/concert-${c.slug_concert}`"
+ :href="`/concerts/concert-${c.slug_concert}?from=agenda`"
/>
diff --git a/app/pages/orchestre/artistesinvitees.vue b/app/pages/orchestre/artistesinvitees.vue
index 7bf3e05..bf63ba4 100644
--- a/app/pages/orchestre/artistesinvitees.vue
+++ b/app/pages/orchestre/artistesinvitees.vue
@@ -51,7 +51,7 @@
-
+
{{ a.nom_artiste_invite }}
@@ -99,7 +99,7 @@
-
+
{{ a.nom_artiste_invite }}
diff --git a/app/pages/orchestre/missions.vue b/app/pages/orchestre/missions.vue
index 14a4b86..dfe9361 100644
--- a/app/pages/orchestre/missions.vue
+++ b/app/pages/orchestre/missions.vue
@@ -1,10 +1,48 @@
- Page en construction Missions
+
+
+ PROGRAMME
+
+
+ Créé en 1974, l’Orchestre national d’Île-de-France se compose de 95 musiciens engagés et passionnés. Notre formation symphonique propose de nombreux concerts, spectacles et ateliers musicaux sur l’ensemble du territoire francilien. Notre devise : porter la musique classique partout et pour tous ! Programmation, actions éducatives, initiatives culturelles, toute l’activité de l’Orchestre exprime ses valeurs et les missions qui l’animent.
+
+
+
+
+
+
+ La Région Île-de-France, le territoire de l’Orchestre
+
+
+ L’Orchestre national d’Île-de-France se déploie sur les 8 départements de la région parisienne, pour amener la musique classique auprès de publics variés. Il se produit dans les salles de spectacle et les théâtres d’Île-de-France comme dans les lieux dépourvus d’offre culturelle. C’est ainsi que ses musiciens investissent régulièrement certains endroits atypiques tels que les hôpitaux, les usines ou les centres pénitentiaires.
+ s
+
+
+
+
+ Texte caché
+
+
+
+
+
+ Studio d’enregistrement et location d’instruments
+
+
+L’Orchestre national d’Île-de-France accompagne les professionnels et les amateurs dans leurs activités musicales.
+Aux portes de Paris, nous mettons à leur disposition un studio d’enregistrement high-tech et plusieurs espaces de répétition. Nous leur proposons également plus de 3000 instruments à la location à travers un parc instrumental ouvert sur le monde et ses traditions musicales les plus inattendues !
+
+
+
+
diff --git a/app/pages/orchestre/musiciens.vue b/app/pages/orchestre/musiciens.vue
index ade2940..b8ae436 100644
--- a/app/pages/orchestre/musiciens.vue
+++ b/app/pages/orchestre/musiciens.vue
@@ -51,7 +51,7 @@
-
+
{{ a.nom_artiste_ondif }}
@@ -99,7 +99,7 @@
-
+
{{ a.nom_artiste_ondif }}