Calendrier 2026-2027 : distributions mensuelles à la grange

Toutes les distributions ont désormais lieu à « La Grange », le dernier
mercredi du mois (sauf décembre, avancé au 16), de 17h à 19h.

Les horaires passent dans un champ obligatoire `horaires` de chaque
distribution : la Guinguette du 30 juin 2027 finit à 21h30, ce que la
valeur codée en dur ne permettait pas d'exprimer.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Pierre Martin
2026-09-06 23:28:28 +02:00
co-authored by Claude Opus 5
parent c3b9ab72fc
commit 0b7444f799
3 changed files with 46 additions and 68 deletions
+12 -4
View File
@@ -10,8 +10,9 @@ Ajouter une entrée dans le tableau :
```php ```php
[ [
'date' => '2026-07-11', // Format YYYY-MM-DD 'date' => '2027-07-28', // Format YYYY-MM-DD
'lieu' => 'grange', // 'grange' ou 'secours' 'lieu' => 'grange', // 'grange', 'secours' ou 'latapie'
'horaires' => '17h-19h', // Plage horaire affichée
'type' => 'normal' // 'normal', 'special' ou 'annulee' 'type' => 'normal' // 'normal', 'special' ou 'annulee'
] ]
``` ```
@@ -22,8 +23,9 @@ Pour une distribution avec un label spécial (ex: Noël, Guinguette) :
```php ```php
[ [
'date' => '2025-12-17', 'date' => '2026-12-16',
'lieu' => 'grange', 'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'special', 'type' => 'special',
'label' => '🎅 Distribution de Noël 🎅' 'label' => '🎅 Distribution de Noël 🎅'
] ]
@@ -35,8 +37,9 @@ Pour indiquer une date où il n'y a pas de distribution :
```php ```php
[ [
'date' => '2026-02-14', 'date' => '2027-02-24',
'lieu' => null, 'lieu' => null,
'horaires' => '17h-19h',
'type' => 'annulee', 'type' => 'annulee',
'label' => 'Pas de distribution', 'label' => 'Pas de distribution',
'raison' => 'Salon des vins et producteurs locaux' 'raison' => 'Salon des vins et producteurs locaux'
@@ -47,6 +50,10 @@ Pour indiquer une date où il n'y a pas de distribution :
- `'grange'` : La Grange de FIC (7 rue du Vieux Moulin) - `'grange'` : La Grange de FIC (7 rue du Vieux Moulin)
- `'secours'` : Secours Populaire (28 rue Guillaume Berdeil) - `'secours'` : Secours Populaire (28 rue Guillaume Berdeil)
- `'latapie'` : Salle des fêtes Jean Latapie (Chemin des Mailheaux)
Depuis la saison 2026-2027, toutes les distributions ont lieu à `'grange'`, le
dernier mercredi du mois de 17h à 19h.
## Comment ça marche ## Comment ça marche
@@ -59,5 +66,6 @@ Le script PHP :
- La prochaine date en surbrillance verte - La prochaine date en surbrillance verte
- Les dates futures en vert clair - Les dates futures en vert clair
- Les dates annulées en rouge - Les dates annulées en rouge
- Les horaires propres à chaque date (la Guinguette finit plus tard)
Les dates sont triées chronologiquement et la première date future devient automatiquement "Prochaine distribution". Les dates sont triées chronologiquement et la première date future devient automatiquement "Prochaine distribution".
+25 -59
View File
@@ -3,110 +3,76 @@
/** /**
* Configuration des distributions Les Frouzivores * Configuration des distributions Les Frouzivores
* *
* Chaque distribution peut avoir : * Chaque distribution a :
* - date : la date au format 'YYYY-MM-DD' * - date : la date au format 'YYYY-MM-DD'
* - lieu : 'grange' ou 'secours' * - lieu : 'grange', 'secours' ou 'latapie'
* - horaires : plage horaire affichée, ex '17h-19h'
* - type : 'normal', 'special', 'annulee' * - type : 'normal', 'special', 'annulee'
* - label : optionnel, pour les événements spéciaux * - label : optionnel, pour les événements spéciaux
*
* Saison 2026-2027 : le dernier mercredi de chaque mois, à La Grange.
*/ */
return [ return [
[ [
'date' => '2025-09-13', 'date' => '2026-09-30',
'lieu' => 'secours',
'type' => 'normal'
],
[
'date' => '2025-09-27',
'lieu' => 'grange', 'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'normal' 'type' => 'normal'
], ],
[ [
'date' => '2025-10-11', 'date' => '2026-10-28',
'lieu' => 'secours',
'type' => 'normal'
],
[
'date' => '2025-10-25',
'lieu' => 'grange', 'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'normal' 'type' => 'normal'
], ],
[ [
'date' => '2025-11-08', 'date' => '2026-11-25',
'lieu' => 'secours',
'type' => 'normal'
],
[
'date' => '2025-11-22',
'lieu' => 'grange', 'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'normal' 'type' => 'normal'
], ],
[ [
'date' => '2025-12-17', 'date' => '2026-12-16',
'lieu' => 'grange', 'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'special', 'type' => 'special',
'label' => '🎅 Distribution de Noël 🎅' 'label' => '🎅 Distribution de Noël 🎅'
], ],
[ [
'date' => '2026-01-10', 'date' => '2027-01-27',
'lieu' => 'secours',
'type' => 'normal'
],
[
'date' => '2026-01-24',
'lieu' => 'grange', 'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'normal' 'type' => 'normal'
], ],
[ [
'date' => '2026-02-14', 'date' => '2027-02-24',
'lieu' => 'latapie',
'type' => 'special',
'label' => '🍷 Salon des vins et producteurs locaux 🍷'
],
[
'date' => '2026-02-28',
'lieu' => 'grange', 'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'normal' 'type' => 'normal'
], ],
[ [
'date' => '2026-03-14', 'date' => '2027-03-31',
'lieu' => 'secours',
'type' => 'normal'
],
[
'date' => '2026-03-28',
'lieu' => 'grange', 'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'normal' 'type' => 'normal'
], ],
[ [
'date' => '2026-04-11', 'date' => '2027-04-28',
'lieu' => 'secours',
'type' => 'normal'
],
[
'date' => '2026-04-25',
'lieu' => 'grange', 'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'normal' 'type' => 'normal'
], ],
[ [
'date' => '2026-05-27', 'date' => '2027-05-26',
'lieu' => 'grange', 'lieu' => 'grange',
'type' => 'special', 'horaires' => '17h-19h',
'label' => ''
],
[
'date' => '2026-06-13',
'lieu' => 'secours',
'type' => 'normal' 'type' => 'normal'
], ],
[ [
'date' => '2026-06-27', 'date' => '2027-06-30',
'lieu' => 'grange', 'lieu' => 'grange',
'type' => 'normal' 'horaires' => '17h-21h30',
],
[
'date' => '2026-07-01',
'lieu' => 'secours',
'type' => 'special', 'type' => 'special',
'label' => '🍻 La Guinguette 👯' 'label' => '🍻 La Guinguette 👯'
] ]
+9 -5
View File
@@ -63,7 +63,7 @@ $prochaineDistribution = trouverProchaineDistribution($distributions);
<p class="text-2xl font-bold text-gray-900"> <p class="text-2xl font-bold text-gray-900">
<?= formaterDateComplete($dateObj) ?> <?= formaterDateComplete($dateObj) ?>
</p> </p>
<p class="text-xs text-gray-600">10h-12h</p> <p class="text-xs text-gray-600"><?= htmlspecialchars($prochaineDistribution['horaires']) ?></p>
<p class="text-gray-600 mt-2"> <p class="text-gray-600 mt-2">
<a <a
href="<?= htmlspecialchars($lieuInfo['url']) ?>" href="<?= htmlspecialchars($lieuInfo['url']) ?>"
@@ -268,11 +268,11 @@ $prochaineDistribution = trouverProchaineDistribution($distributions);
<div class="text-center"> <div class="text-center">
<i class="fas fa-calendar text-4xl text-green-600"></i> <i class="fas fa-calendar text-4xl text-green-600"></i>
<h2 class="mt-4 text-3xl font-bold text-gray-900"> <h2 class="mt-4 text-3xl font-bold text-gray-900">
Deux commandes par mois Une distribution par mois
</h2> </h2>
<p class="mt-4 text-xl text-gray-500"> <p class="mt-4 text-xl text-gray-500">
On se retrouve chaque mois, le 2nd et le 4ème samedi matin, pour une On se retrouve le dernier mercredi du mois, de 17h à 19h, à « La
distribution conviviale. Grange » pour une distribution conviviale.
</p> </p>
</div> </div>
<div class="mt-12 grid grid-cols-2 gap-4 md:grid-cols-4"> <div class="mt-12 grid grid-cols-2 gap-4 md:grid-cols-4">
@@ -300,6 +300,10 @@ $prochaineDistribution = trouverProchaineDistribution($distributions);
<?= formaterDateCalendrier($dateObj) ?> <?= formaterDateCalendrier($dateObj) ?>
</p> </p>
<p class="text-sm <?= $classeTexte ?>">
<?= htmlspecialchars($distribution['horaires']) ?>
</p>
<?php if ($labelStatut): ?> <?php if ($labelStatut): ?>
<p class="text-sm <?= $classeTexte ?> font-semibold"> <p class="text-sm <?= $classeTexte ?> font-semibold">
<?= htmlspecialchars($labelStatut) ?> <?= htmlspecialchars($labelStatut) ?>
@@ -618,7 +622,7 @@ $prochaineDistribution = trouverProchaineDistribution($distributions);
<span>contact@lesfrouzivores.fr</span> <span>contact@lesfrouzivores.fr</span>
</a> </a>
<p class="text-sm text-green-200"> <p class="text-sm text-green-200">
© 2025 Les Frouzivores. Tous droits réservés. © <?= date('Y') ?> Les Frouzivores. Tous droits réservés.
</p> </p>
</div> </div>
</div> </div>