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:
co-authored by
Claude Opus 5
parent
c3b9ab72fc
commit
0b7444f799
@@ -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
@@ -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
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user