Aller au contenu

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.

menus Ce que ce module apporte →

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
Menus
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.

  • lister lecture seule

    Liste les menus du site et leurs entrées : libellé, destination, adresse résolue, visibilité.

    « quels menus a mon site ? » « montre-moi le menu principal »

  • destinations lecture seule

    Les 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, annulable

    Renomme 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, annulable

    Ajoute 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-menu
  • s-menu-a-enfants'
  • s-menu-a-enfants]
  • s-menu-cta'
  • s-menu-cta]
  • s-menu-item
  • s-menu-item<?=
  • s-menu-item[
  • s-menu-lien<?=
  • s-menu-lien[
  • s-menu-liste
  • s-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_items
  • menus