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
[
'date' => '2026-07-11', // Format YYYY-MM-DD
'lieu' => 'grange', // 'grange' ou 'secours'
'date' => '2027-07-28', // Format YYYY-MM-DD
'lieu' => 'grange', // 'grange', 'secours' ou 'latapie'
'horaires' => '17h-19h', // Plage horaire affichée
'type' => 'normal' // 'normal', 'special' ou 'annulee'
]
```
@@ -22,8 +23,9 @@ Pour une distribution avec un label spécial (ex: Noël, Guinguette) :
```php
[
'date' => '2025-12-17',
'date' => '2026-12-16',
'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'special',
'label' => '🎅 Distribution de Noël 🎅'
]
@@ -35,8 +37,9 @@ Pour indiquer une date où il n'y a pas de distribution :
```php
[
'date' => '2026-02-14',
'date' => '2027-02-24',
'lieu' => null,
'horaires' => '17h-19h',
'type' => 'annulee',
'label' => 'Pas de distribution',
'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)
- `'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
@@ -59,5 +66,6 @@ Le script PHP :
- La prochaine date en surbrillance verte
- Les dates futures en vert clair
- 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".
+25 -59
View File
@@ -3,110 +3,76 @@
/**
* Configuration des distributions Les Frouzivores
*
* Chaque distribution peut avoir :
* Chaque distribution a :
* - 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'
* - label : optionnel, pour les événements spéciaux
*
* Saison 2026-2027 : le dernier mercredi de chaque mois, à La Grange.
*/
return [
[
'date' => '2025-09-13',
'lieu' => 'secours',
'type' => 'normal'
],
[
'date' => '2025-09-27',
'date' => '2026-09-30',
'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'normal'
],
[
'date' => '2025-10-11',
'lieu' => 'secours',
'type' => 'normal'
],
[
'date' => '2025-10-25',
'date' => '2026-10-28',
'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'normal'
],
[
'date' => '2025-11-08',
'lieu' => 'secours',
'type' => 'normal'
],
[
'date' => '2025-11-22',
'date' => '2026-11-25',
'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'normal'
],
[
'date' => '2025-12-17',
'date' => '2026-12-16',
'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'special',
'label' => '🎅 Distribution de Noël 🎅'
],
[
'date' => '2026-01-10',
'lieu' => 'secours',
'type' => 'normal'
],
[
'date' => '2026-01-24',
'date' => '2027-01-27',
'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'normal'
],
[
'date' => '2026-02-14',
'lieu' => 'latapie',
'type' => 'special',
'label' => '🍷 Salon des vins et producteurs locaux 🍷'
],
[
'date' => '2026-02-28',
'date' => '2027-02-24',
'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'normal'
],
[
'date' => '2026-03-14',
'lieu' => 'secours',
'type' => 'normal'
],
[
'date' => '2026-03-28',
'date' => '2027-03-31',
'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'normal'
],
[
'date' => '2026-04-11',
'lieu' => 'secours',
'type' => 'normal'
],
[
'date' => '2026-04-25',
'date' => '2027-04-28',
'lieu' => 'grange',
'horaires' => '17h-19h',
'type' => 'normal'
],
[
'date' => '2026-05-27',
'date' => '2027-05-26',
'lieu' => 'grange',
'type' => 'special',
'label' => ''
],
[
'date' => '2026-06-13',
'lieu' => 'secours',
'horaires' => '17h-19h',
'type' => 'normal'
],
[
'date' => '2026-06-27',
'date' => '2027-06-30',
'lieu' => 'grange',
'type' => 'normal'
],
[
'date' => '2026-07-01',
'lieu' => 'secours',
'horaires' => '17h-21h30',
'type' => 'special',
'label' => '🍻 La Guinguette 👯'
]
+9 -5
View File
@@ -63,7 +63,7 @@ $prochaineDistribution = trouverProchaineDistribution($distributions);
<p class="text-2xl font-bold text-gray-900">
<?= formaterDateComplete($dateObj) ?>
</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">
<a
href="<?= htmlspecialchars($lieuInfo['url']) ?>"
@@ -268,11 +268,11 @@ $prochaineDistribution = trouverProchaineDistribution($distributions);
<div class="text-center">
<i class="fas fa-calendar text-4xl text-green-600"></i>
<h2 class="mt-4 text-3xl font-bold text-gray-900">
Deux commandes par mois
Une distribution par mois
</h2>
<p class="mt-4 text-xl text-gray-500">
On se retrouve chaque mois, le 2nd et le 4ème samedi matin, pour une
distribution conviviale.
On se retrouve le dernier mercredi du mois, de 17h à 19h, à « La
Grange » pour une distribution conviviale.
</p>
</div>
<div class="mt-12 grid grid-cols-2 gap-4 md:grid-cols-4">
@@ -300,6 +300,10 @@ $prochaineDistribution = trouverProchaineDistribution($distributions);
<?= formaterDateCalendrier($dateObj) ?>
</p>
<p class="text-sm <?= $classeTexte ?>">
<?= htmlspecialchars($distribution['horaires']) ?>
</p>
<?php if ($labelStatut): ?>
<p class="text-sm <?= $classeTexte ?> font-semibold">
<?= htmlspecialchars($labelStatut) ?>
@@ -618,7 +622,7 @@ $prochaineDistribution = trouverProchaineDistribution($distributions);
<span>contact@lesfrouzivores.fr</span>
</a>
<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>
</div>
</div>