Clustraly
Command Menu, prévisualisation & PWA

Un menu qui ne diverge jamais : le modèle de navigation sidebar, votre source de vérité partagée

Modèle de navigation sidebar (source de vérité partagée) une fonctionnalité du module Command Menu, prévisualisation & PWA de Clustraly. Le modèle de navigation sidebar est la source de vérité unique qui alimente sidebar admin et command menu, filtrée par permissions et toujours synchronisée.

CommandMenuService alimente votre sidebar admin et votre command menu depuis un unique modèle filtré par permissions. Vous définissez les droits, la navigation s'aligne partout sans jamais se contredire ni demander de double maintenance.

Une source, deux surfaces

Définissez la navigation une fois, elle apparaît partout

Vous maintenez votre navigation à un seul endroit et elle se reflète immédiatement dans la sidebar admin comme dans le command menu (Ctrl+K). Fini les menus qui se contredisent après une mise à jour.

CommandMenuService est l'unique source qui alimente les deux surfaces à la fois, en les gardant synchronisées en permanence.

  • Sidebar admin et command menu servis par le même service
  • Aucune divergence possible entre les deux menus
  • Une modification, répercutée sur les deux surfaces
Comment ça marche

navItems() rend votre sidebar, en-têtes de section compris

navItems() construit la sidebar filtrée par permissions, avec ses en-têtes de section, à partir de la même source que le lanceur.

Les deux affichages lisent la même arborescence : ce qui est visible dans le command menu correspond exactement à ce qui structure votre sidebar.

  • navItems() rend la navigation avec en-têtes de section
  • Sidebar et lanceur lisent la même arborescence
  • Un modèle unique, deux rendus cohérents
Filtrage par permissions

Chacun ne voit que ce qu'il a le droit d'ouvrir

La navigation est filtrée par permissions côté serveur : chaque membre de l'équipe ne voit que les entrées qu'il peut réellement ouvrir.

Quand une section entière est interdite, elle disparaît intégralement en-tête compris au lieu d'afficher un titre de section vide et inutile.

  • Entrées filtrées par permissions côté serveur
  • Les sections 100 % non autorisées disparaissent, en-tête inclus
  • Aucun titre de section orphelin
Rendu efficace

Calculé une fois par requête, réutilisé partout

Le résultat de navItems() est mémoïsé par requête : la sidebar et le lanceur partagent le même calcul de navigation au lieu de le refaire chacun de leur côté.

Vous obtenez une navigation cohérente sans recalcul redondant à chaque affichage de la page.

  • Navigation mémoïsée par requête
  • Un seul calcul partagé par la sidebar et le lanceur
  • Pas de travail redondant à l'affichage
Rétrocompatible et résilient

Vos anciens thèmes et plugins continuent de fonctionner

La forme plate héritée est exposée via le filtre legacy admin.menu : les thèmes et plugins qui lisaient déjà la sidebar reçoivent exactement la même navigation, filtrée par permissions.

Et si le stockage des permissions échoue, la navigation bascule en fail-open vers un menu vide plutôt que d'exposer des entrées non filtrées ou de casser la page.

  • Forme plate legacy exposée via le filtre admin.menu
  • Même modèle servi aux consommateurs historiques
  • Fail-open vers un menu vide en cas d'erreur de stockage
Explorer le command menu
Pourquoi ça compte

Vous définissez les permissions, la navigation suit

Pas besoin de synchroniser deux menus à la main. La sidebar et le command menu lisent la même source filtrée par permissions : ce qu'un utilisateur n'a pas le droit d'ouvrir n'apparaît nulle part, ni dans l'un ni dans l'autre.

FAQ

Questions fréquentes

Qu'est-ce que le modèle de navigation sidebar (source de vérité partagée) ?
C'est le service unique, CommandMenuService, qui alimente à la fois la sidebar admin et le command menu de Clustraly. Les deux surfaces lisent la même navigation filtrée par permissions, ce qui les garde toujours synchronisées.
La sidebar et le command menu peuvent-ils afficher des entrées différentes ?
Non. Comme ils proviennent de la même source, ils ne peuvent pas diverger. Une entrée ajoutée, retirée ou filtrée par permission se répercute simultanément sur les deux.
Que voit un utilisateur qui n'a pas les permissions d'une section ?
Rien de cette section. navItems() la filtre par permissions côté serveur : une section entièrement non autorisée disparaît intégralement, en-tête de section compris, sans laisser de titre vide.
Que se passe-t-il en cas d'erreur de chargement de la navigation ?
La navigation bascule en fail-open vers un menu vide plutôt que d'exposer des entrées non filtrées ou de casser la page. L'administration reste utilisable et ne montre jamais ce qu'un utilisateur n'a pas le droit de voir.
Prêt à commencer ?

Une navigation qui reste alignée toute seule

Le modèle de navigation sidebar fait de CommandMenuService votre source de vérité unique : la sidebar admin et le command menu affichent exactement la même navigation, filtrée par permissions et mémoïsée par requête. Vous gérez les droits une fois ; l'interface s'aligne partout, sans double maintenance ni menus contradictoires et, en cas d'erreur, elle se replie proprement sur un menu vide plutôt que d'exposer quoi que ce soit.