# Le Mökki — Événements

Plugin WordPress autonome : type de contenu Événements, catégories, billetterie
Weezevent et **dates récurrentes**.

Les données et la logique vivent ici ; l'apparence reste au thème actif. Le
plugin ne code aucune couleur : il réutilise les classes et les variables CSS du
thème (`--copper`, `--sand`, `--muted`…).

## Ce qu'il déclare

| Élément | Slug |
|---|---|
| Type de contenu | `evenement` → `/evenements/` |
| Taxonomie | `categorie_evenement` → `/type-evenement/` |
| Statut « Archivé » | `lmk_archive` |
| Page « toutes les dates » | `/evenements/serie/<identifiant>/` |

Champs ACF : date et heure, fin de l'événement, lien Weezevent, URL du widget
Weezevent, mise en avant en page d'accueil, et le groupe **Récurrence**.

## Comment fonctionne la récurrence

On crée un événement, on coche « Cet événement se répète », on choisit un rythme
et une date de fin. Le plugin engendre alors **une fiche par date** — même type
de contenu, même page, même adresse qu'un événement ordinaire.

Quatre rythmes : toutes les semaines (un ou plusieurs jours, une semaine sur N),
un rang dans le mois (le 1er vendredi, le dernier samedi…), tous les jours, ou
une liste de dates saisies à la main.

**Sur le site, une seule date par cycle est visible : la prochaine.** Un bouton
« Voir les N dates » mène à la page du cycle. La bascule se fait à minuit :
l'événement reste affiché pendant tout le jour où il a lieu.

**Fenêtre glissante de trois mois.** Les dates sont créées trois mois à l'avance
et complétées chaque nuit, jusqu'à la date de fin.

**Dates passées : archivées.** Elles quittent le site mais restent en base et
consultables dans l'administration, sous le filtre « Archivés ».

**Personnalisation.** Modifier une date à la main la détache des mises à jour du
cycle : elle garde son titre, son visuel et sa billetterie. Modifier la fiche du
cycle met à jour toutes les dates à venir *sauf* celles-là.

**Annuler une date** la retire du site sans jamais la recréer. **Arrêter la
récurrence** supprime les dates à venir non personnalisées et conserve tout le
passé.

## Tâche d'entretien

Chaque nuit à 3 h : archivage des dates passées, complétion de la fenêtre,
recalcul de la date visible de chaque cycle.

Le planificateur de WordPress ne se déclenche qu'à la visite d'une page. Sur un
site peu fréquenté, mieux vaut une tâche planifiée côté hébergeur. Sur une offre
OVH mutualisée sans accès SSH, cela se règle dans l'espace client — *Hébergements
→ Tâches planifiées (CRON)* — en pointant le fichier `wp-cron.php` du site, une
fois par jour, en mode PHP CLI.

Si la tâche est en place, on gagne à couper le déclenchement par les visites,
dans `wp-config.php` :

```php
define( 'DISABLE_WP_CRON', true );
```

Sans tâche planifiée, un filet de sécurité relance l'entretien au chargement de
l'administration s'il n'a pas tourné depuis plus de 25 heures : les dates
finissent donc par se créer, simplement avec du retard sur un site sans visite.

## Dépendances

- WordPress 6.0+, PHP 7.4+
- Advanced Custom Fields (version gratuite suffisante)

## Réutilisation sur un autre site

Le plugin est autonome : ni le nom du thème ni aucune option propre au Mökki
n'y figurent. Deux points d'adaptation si le thème d'accueil diffère :

- il fournit `archive-evenement.php` / `single-evenement.php`, sinon WordPress
  retombe sur ses gabarits génériques ;
- il peut remplacer la page du cycle en déposant son propre
  `serie-evenement.php` à sa racine.

Deux filtres sont disponibles : `lemokki_evt_inherited_fields` (champs recopiés
de la fiche du cycle vers ses dates) et l'action `lemokki_evt_occurrence_created`.
