Skip to content

Menus de navigation

This content is not available in your language yet.

Un menu est une collection de liens organisés hiérarchiquement. Drupal fournit plusieurs menus par défaut :

MenuMachine nameUsage
Main navigationmainNavigation principale
FooterfooterLiens de pied de page
AdministrationadminMenu admin (toolbar)
User account menuaccountConnexion, Mon compte
ToolstoolsOutils divers
  1. StructureMenus
  2. Ou directement : /admin/structure/menu
  1. Cliquez sur Edit menu à côté de “Main navigation”

  2. Vous pouvez modifier :

    • Title : Navigation principale
    • Description : Menu principal du site
  3. Cliquez sur Save

Cliquez sur Add link pour chaque élément :

ChampValeur
Menu link titleAccueil
Link<front>
Enabled
DescriptionPage d'accueil
Show as expanded
Weight0
ChampValeur
Menu link titleBoutique
Link/shop
Weight1
ChampValeur
Menu link titleBlog
Link/blog
Weight2
ChampValeur
Menu link titleContact
Link/contact
Weight3
Main navigation
├── Accueil → /
├── Boutique → /shop
├── Blog → /blog
└── Contact → /contact

Pour le menu “Boutique” avec des catégories :

  1. Éditez le lien “Boutique”
  2. Cochez Show as expanded
  3. Ajoutez des liens enfants :
TitreLienParent
Tous les produits/shopBoutique
Hommes/category/hommesBoutique
Femmes/category/femmesBoutique
Accessoires/category/accessoiresBoutique
Promotions/promotionsBoutique
  1. Dans la liste des liens du menu
  2. Utilisez les croix (✥) pour déplacer
  3. Indentez pour créer la hiérarchie
  4. Save
Main navigation
├── Accueil
├── Boutique ▼
│ ├── Tous les produits
│ ├── Hommes
│ ├── Femmes
│ ├── Accessoires
│ └── Promotions
├── Blog
└── Contact
  1. StructureMenusFooterAdd link
TitreLien
Mentions légales/mentions-legales
CGV/cgv
Politique de confidentialité/politique-confidentialite
Livraison/livraison
Retours/retours
FAQ/faq

Le menu “User account menu” contient les liens liés à l’authentification.

  • My account/user
  • Log out/user/logout
TitreLienCondition
Mon compte/userAuthenticated
Mes commandes/user/ordersAuthenticated
Mon panier/cartAll
Connexion/user/loginAnonymous
Inscription/user/registerAnonymous

Créez un menu qui liste automatiquement les catégories de produits.

Ajoutez chaque catégorie manuellement au menu “Main navigation” ou créez un menu dédié.

Créez une vue qui génère un menu dynamique :

  1. StructureViewsAdd view
ParamètreValeur
View nameCategories Menu
ShowTaxonomy terms of Catégorie Produit
Create a block
Block titleCatégories
Display formatHTML List of fields
  1. Fields :

    • Taxonomy term: Name (lié vers le terme)
  2. Placez le bloc dans la sidebar

Fenêtre de terminal
composer require drupal/taxonomy_menu
drush en taxonomy_menu -y

Ce module synchronise automatiquement un vocabulaire avec un menu.

Lors de la création/édition d’un contenu :

  1. Section Menu settings
  2. Cochez Provide a menu link
  3. Sélectionnez le menu parent
  4. Remplissez le titre et la description
Fenêtre de terminal
# Lister les menus
drush menu:list
# Ajouter un lien
drush menu:link-add "main" "Nouveau lien" "internal:/page"
# Supprimer un lien par UUID
drush menu:link-delete UUID
# system.menu.main.yml
langcode: fr
status: true
dependencies: { }
id: main
label: 'Navigation principale'
description: 'Menu principal du site TailStore'
locked: false
# menu_link_content.<uuid>.yml
uuid: 12345678-1234-1234-1234-123456789012
langcode: fr
status: true
title: Boutique
link:
uri: 'internal:/shop'
title: ''
options: { }
menu_name: main
weight: 1
expanded: true
enabled: true
parent: ''

Par défaut, Drupal génère :

<nav role="navigation" aria-labelledby="block-main-menu">
<ul class="menu">
<li class="menu-item">
<a href="/">Accueil</a>
</li>
<li class="menu-item menu-item--expanded">
<a href="/shop">Boutique</a>
<ul class="menu">
<li class="menu-item">
<a href="/shop">Tous les produits</a>
</li>
<!-- ... -->
</ul>
</li>
</ul>
</nav>
ClasseDescription
.menu-itemChaque élément
.menu-item--expandedÉlément avec enfants
.menu-item--active-trailChemin actif
.is-activeLien de la page courante
Fenêtre de terminal
# Exporter les menus
drush cex -y
# Fichiers générés
ls config/sync/system.menu.*.yml
ls config/sync/menu_link_content.*.yml
  • Menu Main navigation configuré
  • Liens Accueil, Boutique, Blog, Contact créés
  • Sous-menu catégories (optionnel)
  • Menu Footer créé
  • Menu Account vérifié
  • Configuration exportée

Les menus sont prêts ! Passons aux Régions & Blocs.