Module v1.1.0
Configurer Menus
Composez les menus de navigation du site : des entrées (et un niveau de sous-entrées) qui pointent vers vos pages, articles, projets, catégories ou une adresse libre.
Ce qu'il fait
Des menus de navigation TRANSVERSAUX pour le site : une liste d'entrées (avec un niveau de sous-entrées), chacune pointant vers une page, un article, un projet, une catégorie ou une URL libre. Se règle une fois (rayon Réglages) puis s'appelle depuis n'importe quel layout via son slug (ex : menu('principal')) — distinct des modules de contenu (articles/projets/pages) : Menus ne stocke aucun contenu, il RÉFÉRENCE des cibles déjà publiées ailleurs dans le site.
- Entrées ordonnées, avec un niveau de sous-entrées (glisser-déposer)
- Pointe vers une page, un article, un projet, une catégorie ou une URL libre
- Entrée en bouton (CTA) ou en lien simple, visible ou masquée
Où le trouver
Les écrans que ce module ajoute à l'administration, une fois activé.
-
Menus
/admin/menus
Ses réglages
Ils se modifient depuis l'administration. La clé est donnée pour qui pilote le site en ligne de commande ou par l'API.
| Réglage | Clé | Type | Par défaut |
|---|---|---|---|
| Motif d'URL publique d'une catégorie (ex : /categorie/{slug}) | menus.category_url |
string | (vide) |
Ses droits
Ce que chaque rôle peut faire par défaut. Modifiable rôle par rôle depuis l'administration.
| Droit | Clé | Administrateur | Éditeur |
|---|---|---|---|
| Voir les menus | menus.read |
✓ | ✓ |
| Créer / modifier / supprimer des menus | menus.write |
✓ | ✓ |
Piloter par une IA
Ce que ce module sait faire quand on le lui demande en langage naturel, et ce que chaque action engage.
-
listerlecture seuleListe les menus du site et leurs entrées : libellé, destination, adresse résolue, visibilité.
« quels menus a mon site ? » « montre-moi le menu principal »
-
destinationslecture seuleLes destinations EXISTANTES qu'une entrée de menu peut viser : pages, catégories, articles et projets publiés. À consulter AVANT d'ajouter — rien d'autre n'est acceptable.
« vers quoi je peux faire pointer le menu ? »
-
renommerécrit, annulableRenomme un menu, ou une entrée d'un menu. Écriture journalisée : annulable. Le slug du menu (la clé d'appel du thème) ne bouge jamais.
« renomme l'entrée « Accueil » en « La maison » » « appelle le menu du bas « Pied de page » »
-
ajouterécrit, annulableAjoute une entrée de menu vers une destination qui EXISTE déjà (page, catégorie, article ou projet publié — cf. menus.destinations). Une cible inexistante est refusée : l'assistant ne crée jamais une page. Les URL libres restent un geste d'écran.
« ajoute la catégorie « Vins rouges » au menu principal » « mets la page contact dans le menu du pied de page »
Ses points de branchement
Pour greffer du code sans toucher au module : ce qu'il annonce, et ce qu'il écoute.
Ce qu'il annonce 3
menu.created- Émis après création d'un menu. Args: [array $menu]
menu.updated- Émis après update d'un menu (nom/slug — pas les items). Args: [int $id, array $new, array $old]
menu.deleted- Émis après suppression d'un menu (cascade sur ses items). Args: [int $id, array $old]
Ses prises front
Les morceaux de page que ce module fournit, et les classes qu'ils posent. Un thème les habille par ces classes : il ne recopie pas le balisage, sinon il rate les corrections des versions suivantes.
views/menu.php
12 classes
s-menus-menu-a-enfants's-menu-a-enfants]s-menu-cta's-menu-cta]s-menu-items-menu-item<?=s-menu-item[s-menu-lien<?=s-menu-lien[s-menu-listes-menu-sous
Ses données
Les tables que ce module crée. Désactiver un module ne les efface pas : ses données restent en base et reviennent s'il est réactivé.
Les tables 2
menu_itemsmenus