Comment utiliser le module Extras des éléments de menu pour Drupal 8
Publié: 2022-02-16Les méga menus ne sont plus une tendance de conception, mais une partie essentielle de la plupart des sites Web liés à l'actualité ou au commerce électronique.
Le module Menu Item Extras pour Drupal 8 améliore le système de menu par défaut dans Drupal, en permettant au constructeur du site d'ajouter des champs aux éléments de menu. De cette façon, il est possible de créer un méga menu en quelques étapes simples.
Suivez-nous pour apprendre à utiliser ce module. Commençons!
Étape 1 : Installez les modules requis
En plus du module Menu Item Extras, vous devrez installer Viewfield. Viewfield fournit un champ qui contient une référence à une vue et la restitue chaque fois que l'entité contenant le champ est affichée.
- Ouvrez l'application Terminal de votre PC.
- Tapez :
- le compositeur nécessite drupal/viewfield
- le compositeur nécessite drupal/menu_item_extras
Activez les deux modules après le téléchargement.
- Cliquez sur Étendre.
- Vérifiez les deux modules.
- Cliquez sur Installer.
Étape 2 : Créer un système de taxonomie
Peut-être que le mot « système » n'est pas très approprié puisque nous ne créerons qu'un seul vocabulaire avec dix termes associés. Cependant, cet exemple expliquera les bases, afin que vous puissiez travailler avec des systèmes de taxonomie plus complexes à l'avenir.
- Cliquez sur Structure > Taxonomie > Ajouter du vocabulaire.
- Entrez le nom "Sujets" et cliquez sur Enregistrer.
- Cliquez sur Ajouter un terme et ajoutez tous les termes détaillés ci-dessous un par un.
- Les sujets
- D8
- SymfonyName
- WP
- Magento
- CSS
- HTML
- JS
- PHP
- Python
- DevOps
- Les sujets
Étape 3 : Créer les types de contenu
Pour les besoins de ce tutoriel, nous allons utiliser 2 types de contenu avec les champs suivants :
- Prestations de service
- Service Image / Image / Nombre de valeurs autorisé : 1
- Texte d'introduction / Texte (formaté) / Nombre de valeurs autorisé : 1
- Description / Champ par défaut
- Blog
- Catégorie / Terme de taxonomie / Nombre de valeurs autorisé : illimité
- Description / Champ par défaut
Assurez-vous de sélectionner le type de référence (sujets) lors de la création du champ Taxonomie.
Étape #4 : Créer du contenu
Nous allons créer 3 nœuds de type Service :
- Tutoriels
- Vidéos
- Livres
Chacun de ces nœuds sera associé à un élément de second niveau dans le méga menu. D'autre part, nous allons créer environ 10 nœuds de type Blog avec différents termes qui leur sont associés. Assurez-vous d'inclure 2 des termes (ex. : D8, WP) avec plus de fréquence que les autres.
L'écran Contenu devrait ressembler à la fin de ce processus plus ou moins à l'image ci-dessous.
Étape #5 : Créer les éléments de menu
Le premier niveau du menu principal aura les éléments de menu suivants :
- Accueil
- Sur
- Ressources
- Contact
Chacun des éléments de menu aura un champ supplémentaire (supplémentaire). Ce champ sera défini au deuxième niveau du menu, c'est-à-dire chacun des éléments de la carte dans le méga menu. Ce champ nous permettra de présenter chacun des blocs de vue.
- Cliquez sur Structure > Menus.
- Cliquez sur le menu Edition pour modifier la navigation principale.
- Cliquez sur Ajouter un lien 3 fois pour ajouter les éléments de menu de premier niveau manquants.
- Cliquez sur Enregistrer chaque fois que vous entrez un nom d'élément de menu.
Utilisez la balise spéciale pour afficher uniquement le texte du lien.
Une fois que vous avez créé et réorganisé les liens de votre menu,
- Cliquez sur Gérer les champs > Ajouter un champ pour ajouter un champ aux éléments de menu.
- Sélectionnez un champ de type Viewfield.
- Donnez- lui un nom et une étiquette appropriés.
- Cliquez sur Enregistrer et continuer.
- Définissez le Nombre de valeurs autorisé sur Illimité.
- Cliquez sur Enregistrer les paramètres du champ
Vous aurez la possibilité de lier une vue par défaut à ce champ particulier. Laissez ces champs vides.
- Faites défiler vers le bas et cliquez sur Enregistrer les paramètres
- Cliquez sur Gérer l'affichage.
- Masquez l'étiquette de la carte de menu.
- Cliquez sur Enregistrer.
Étape 6 : Créer les vues
- Cliquez sur Structure > Vues > Ajouter une vue
- Afficher le contenu de type Services.
- Créez un bloc avec une liste non formatée de champs.
- Choisissez d'afficher 3 éléments par bloc.
- Cliquez sur Enregistrer et modifier.

- Ajouter le champ Image du service
- Définissez le style d'image sur Vignette et liez l'image au contenu.
- Cliquez sur Appliquer
- Ajoutez également le champ de texte d'introduction.
- Réorganisez les champs.
- Cliquez sur Enregistrer.
- Cliquez sur Structure > Vues > Ajouter une vue
- Afficher le contenu de type Blog.
- Créez un bloc avec une liste non formatée de champs.
- Choisissez d'afficher 1 élément par bloc.
- Cliquez sur Enregistrer et modifier.
- Ajoutez le champ Catégorie.
- Cliquez sur Ajouter et configurez les champs.
- Cliquez sur les paramètres de champs multiples.
- Sélectionnez Liste non ordonnée.
- Définissez le nombre de valeurs à afficher sur 3.
- Cliquez sur Appliquer.
- Supprimer le critère de tri
- Cliquez sur Appliquer.
- Cliquez sur Enregistrer pour enregistrer la vue.
Étape #7 : Ajouter les blocs de vue aux éléments de menu
- Cliquez sur Structure > Menus
- Modifiez la navigation principale.
- Modifiez l'élément de menu Ressources.
- Ajoutez les 2 blocs que vous avez créés à l'étape #5.
- Cliquez sur Enregistrer.
Étape #8 : Les styles CSS
Je ne vais pas expliquer ce code en détail car il sort du cadre de ce tutoriel. Cependant, vous pouvez en savoir plus sur les vues Drupal et la grille CSS dans cet article. Si vous souhaitez vous entraîner davantage avec les méga menus, consultez également cet article.
#block-bartik-main-menu a,
#block-bartik-main-menu li span {
background: transparent;
text-shadow: unset;
color: whitesmoke;
}
#block-bartik-main-menu .menu-level-0 {
display: grid;
grid-template-columns: repeat(4, 1fr);
}
#block-bartik-main-menu .field--name-field-menu-card .field__items {
display: flex;
}
#block-bartik-main-menu .menu-dropdown-0 {
position: absolute;
left: 0;
top: 166px;
width: 100%;
z-index: 10;
}
#block-bartik-main-menu a,
#block-bartik-main-menu li span {
background: transparent;
text-shadow: unset;
color: whitesmoke;
}
#block-bartik-main-menu .menu-item {
display: grid;
align-content: center;
justify-content: center;
}
#block-bartik-main-menu .menu-level-0 {
display: grid;
grid-template-columns: repeat(4, 1fr);
}
#block-bartik-main-menu .menu-dropdown-0 {
position: absolute;
left: 0;
width: 100%;
padding-top: 16px;
background-color: rgba(141,139,132, 0.9);
}
.view-tutorials .view-content {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.view-tutorials .views-row {
display: grid;
justify-items: center;
}
.view-tutorials .views-row span > a {
font-size: 1.3rem
}
.view-tutorials .views-row .views-field-field-intro-text {
font-size: 1rem;
}
#block-bartik-main-menu a,
#block-bartik-main-menu li span {
background: transparent;
text-shadow: unset;
color: whitesmoke;
}
#block-bartik-main-menu .menu-level-0 {
display: grid;
grid-template-columns: repeat(4, 1fr);
}
#block-bartik-main-menu .field--name-field-menu-card .field__items {
display: flex;
}
#block-bartik-main-menu .menu-dropdown-0 {
position: absolute;
left: 0;
top: 166px;
width: 100%;
z-index: 10;
}
#block-bartik-main-menu a,
#block-bartik-main-menu li span {
background: transparent;
text-shadow: unset;
color: whitesmoke;
}
#block-bartik-main-menu .menu-item {
display: grid;
align-content: center;
justify-content: center;
}
#block-bartik-main-menu .menu-level-0 {
display: grid;
grid-template-columns: repeat(4, 1fr);
}
#block-bartik-main-menu .menu-dropdown-0 {
position: absolute;
left: 0;
width: 100%;
padding-top: 16px;
background-color: rgba(141,139,132, 0.9);
}
.view-tutorials .view-content {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.view-tutorials .views-row {
display: grid;
justify-items: center;
}
.view-tutorials .views-row span > a {
font-size: 1.3rem
}
.view-tutorials .views-row .views-field-field-intro-text {
font-size: 1rem;
}
J'espère que ce tutoriel vous a plu. Merci d'avoir lu!