Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

Apprivoiser les menus Drupal

Inspiration en anglais sur drupal.org : 20 Janvier 2009 - 12h19
http://drupal.org/node/241980


Cet article est une adaptation libre de la page Configuring menus, navigation and blogroll for newbies. de drupal.org, dans laquelle l'auteur explique comment :

  • créer un menu de navigation simple
  • créer un menu de navigation hiérarchique
  • créer différents blocs de navigation, dont certains s'afficheront sur certaines pages et pas dans d'autres
  • créer une blogroll

Le tout à l'usage des débutants dans l'utilisation des menus Drupal.

Alors si vous êtes débutants, je vous livre ci-dessous une traduction épurée de l'article original, mais qui n'oublie rien de l'essentiel.

Qu'est-ce qu'un menu Drupal ?

C'est un ensemble organisé de liens qui pointent vers des contenus du site, ou vers d'autres sites.

Drupal est livré avec trois menus, nommés Liens primaires, Liens secondaires et Menu de navigation, vous pouvez cependant en créer d'autres, nous verrons comment par la suite.

Les deux premiers menu sont vides, ils ne contiennent aucun lien. Ce sera à vous de leur en ajouter, si vous le souhaitez.

L'aide de Drupal nous informe que le menu Liens primaires est destiné à présenter les rubriques principales du site et que le menu Liens secondaires est plutôt utilisé pour des pages telles que les pages de contact, les FAQ, les CGU, l'ours, etc (le genre de liens qu'il faut mettre mais que l'on met généralement en petit et en bas de page).

Cette structuration est, par exemple, souvent reprise par les thèmes lorsqu'ils placent les liens primaires en haut de page (affichés via la variable page.tpl.php) et les liens secondaires peut-être ailleurs, mais souvent pas loin des liens primaires (affichés via la variable page.tpl.php).

Cette organisation est plus une suggestion d'utilisation qu'une recommandation car vous pouvez parfaitement destiner les liens primaires et secondaires à d'autres types de liens.

Le Menu de navigation est le menu principal du site. Comme son nom l'indique, il vous sert à naviguer dans les différentes pages de votre site. C'est grâce au menu de navigation, par exemple, qu'un utilisateur connecté, et disposant des droits suffisants, accède aux pages d'administration. Il n'est pas conseillé de greffer votre propre navigation à ce menu-là.

En plus de ces trois menus livrés avec Drupal, vous pouvez en créer d'autres, autant que vous voulez, et les placer où vous voulez.

Créer un menu de navigation simple

On va pour cela utiliser le menu Liens primaires et lui ajouter quelques éléments.

Allez dans Administrer » Construction du site » Menus » Liens primaires. Vous obtenez cette page qui vous informe qu'il n'y a aucune entrée de menu.

 

Cliquez sur le bouton Ajouter un élément. Vous obtenez cette page :

 

Renseignez les champs comme suit :

Chemin :
vous pouvez indiquez
  • le chemin d'un contenu, par exemple node/1. En cliquant sur l'élément de menu l'utilisateur obtiendra la page qui affiche le contenu du node 1.
  • ou un chemin Drupal, par exemple node/add. En cliquant sur l'élément de menu l'utilisateur, s'il dispose des droits suffisants, obtiendra la page d'ajout de contenus. Si l'utilisateur ne dispose pas des droits pour ajouter un contenu, l'élément de menu ne lui sera tout simplement pas affiché.
  • ou un lien externe. Par exemple http://www.kolossaldrupal.org : l'utilisateur atterrira alors ici :-)
  • etc.
  • Indiquons node/1
Titre du lien dans le menu :
c'est le libellé de l'élément de menu. Indiquons Mon premier node
Description :
la description renseignée ici s'affichera dans une bulle lorsque la souris survolera l'élément de menu.
Activé :
si cette case est cochée, l'élément de menu sera affiché, sinon : non.
Déplié :
laissez décoché, sinon votre menu sera déplié. Ce qui est parfois souhaitable mais pas toujours très heureux.
Élément parent :

ici, vous indiquez à quel élément de menu appartient l'item que vous êtes en train de créer.

Cette liste déroulante contient TOUS les éléments de menus existants. Dans cet écran elle est positionnée sur Liens primaires, puisque c'est sur Liens primaires que avons décidé d'ajouter un élément de menu.

Vous pouvez cependant décider que ce sera un autre item de menu que Liens primaires qui sera le parent de celui que vous êtes en train de créer, quand bien même vous aviez, au départ, décidé d'ajouter un élément de menu à Liens primaires. Il vous suffit de choisir le nouveau parent dans la liste. Ne le faites cependant pas, à moins d'être familier des dédales de Drupal... :-)

(Vous l'avez fait ou vous vous êtes plantés dans l'attribution du parent et vous ne savez plus où se trouve votre item ? Allez plus bas dans cet article pour voir comment vous en dépatouiller)

Poids :
laissez tel quel.

 

Cliquez sur Enregistrer et vous verrez votre premier item s'afficher à l'emplacement réservé au menu Liens primaires.

Vous pouvez recommencer les opérations précédentes pour ajouter d'autres éléments de menu.

Paramétrer un second niveau de navigation

Il ne faut pas confondre Liens secondaires et Second niveau de navigation. Un second niveau de navigation est tout simplement un élément de menu enfant, qui ne s'affiche que lorsqu'on a cliqué sur l'item parent.

Vous avez un exemple de second niveau de navigation avec le menu Administrer : l'élément Administrer appartient au premier niveau de navigation, puis les éléments Construction du site, Gestion du contenu, Configuration du site, etc appartiennent au second niveau.

L'élément Construction du site "possède" des éléments de troisième niveau (Blocs, Menus, Thèmes, etc), tout comme Gestion du contenu "possède" Commentaires, Contenus, Types de contenu, etc.

Cette liste ne correspond pas forcément à celle disponible dans votre site car, les modules tiers peuvent également greffer leurs propres éléments de menu aux menus existants, les menus peuvent donc différer d'un site à l'autre.

Pour créer un second niveau de navigation, on procède de la même façon que pour ajouter les éléments du premier niveau de navigation, sauf qu'au lieu de choisir un menu comme élément parent, on choisit un des éléments du premier niveau.

L'imbrication des éléments parents-enfants aboutit à un menu hiérarchique. Ce n'est pas plus sorcier que ça la hiérarchie. Elle ne doit donc plus vous impressionner ! :-)

Créer un bloc de navigation

En plus du Menu de navigation livré avec Drupal, en plus des menus Liens primaires et Liens secondaires fournis d'office, vous pouvez créer vos propres menus.

Lorsque vous créez vos propres menus, Drupal crée automatiquement un bloc pour chacun d'eux. Ces blocs seront ensuite affichés où vous voulez, grâce à la page d'administration des blocs (Administration » Construction du site » Blocs)

 

  • Allez dans Administration » Construction du site » Menus.
  • Cliquez sur Ajouter un menu, vous obtenez cette page :

Renseignez les champs comme suit :

  • Nom du menu : indiquez le nom qui servira "d'identifiant-machine" au menu. Ce nom doit être unique et ne peut comporter que des minuscules, des tirets ou des chiffres. Indiquons menu-1
  • Titre : c'est le nom du menu. Il sera affiché comme titre du bloc (vous pourrez surcharger ce titre par la suite dans la configuration du bloc). Indiquons Mon premier menu.
  • Description : une description de votre menu, cette description-là ne sera pas affichée sous forme de bulle au survol de la souris, comme c'est le cas des descriptions des éléments de menu.
  • Cliquez sur Enregistrer.

Ajouter les éléments au menu

Une fois le menu créé, vous obtenez cette page :

C'est le même écran que celui de l'ajout d'éléments à Liens Primaires, c'est normal : le processus d'ajout d'éléments de menu est le même quel que soit le menu.

Cliquez sur Ajouter un élément et ajoutez vos éléments de menu comme expliqué à Créer un menu de navigation simple. Vous noterez une différence dans la rubrique Élément parent par rapport aux explications précédentes : ce n'est plus Liens primaires qui est affiché mais Mon premier menu. Ce qui s'explique par le fait que nous sommes partis du menu Mon premier menu pour l'ajout des éléments.

Une fois vos rubriques renseignées, cliquez sur Enregistrer et vous obtiendrez un écran comme celui-ci, listant tous les éléments ajoutés au menu Mon premier menu :

Vous pouvez à nouveau cliquer sur Ajouter un élément pour d'autres éléments de menu. Lorsque vous avez terminé, cliquez sur Enregistrer la configuration.

Afficher le bloc-menu

Chaque menu créé dispose de son bloc d'affichage qui est automatiquement créé par Drupal. Le bloc est créé, pas affiché.

Rendez-vous dans Administrer » Construction du site » Blocs. Dans la liste des blocs Désactivés, vous devriez voir un bloc intitulé Mon premier menu. Choisissez-lui une région, comme vous le feriez pour d'autres blocs, et cliquez sur Enregistrer les blocs.

Votre menu s'affichera désormais dans la région que vous lui avez attribuée.

Modifier le titre du bloc

Dans la page de création du menu, vous avez donné un titre à votre menu, ce titre sert également de titre au bloc du menu. Mais s'il ne vous convient pas comme titre de bloc il suffit de le "surcharger".

Pour modifier le titre du bloc, on procède comme pour modifier n'importe quel titre de n'importe quel bloc :

  • Allez dans Administrer » Construction du site » Blocs puis clic sur le configurer situé sur la ligne du bloc
  • Indiquez le nouveau titre dans la rubrique Titre du bloc.
  • Cliquez sur Enregistrer le bloc.

Pour redonner au bloc le titre du menu, effacez le contenu de la rubrique Titre du bloc.

Affichage selon la page

Vous pouvez décider sur quelles pages le bloc-menu sera affiché. Par exemple, vous voulez que votre bloc s'affiche sur la page d'accueil et sur la page d'ajout de contenu, mais pas sur les autres.

(les explications qui suivent sont valables pour tous les types de blocs et pas seulement pour les blocs-menus).

  • Allez dans Administrer » Construction du site » Blocs puis clic sur le configurer situé sur la ligne du bloc
  • Descendez jusqu'à la zone Paramètres de visibilité spécifiques à la page
  • Les libellés des cases à cocher sont assez parlants, cochez Afficher le bloc seulement sur les pages listées.
  • Dans la zone de saisie des pages, tapez :
    <front>
    node/add
  • Cliquez sur Enregistrer le bloc

Rendez-vous ensuite sur votre page d'accueil : votre bloc-menu s'affiche bien. Rendez-vous sur une page de contenu quelconque : votre bloc-menu ne s'affiche pas. Rendez-vous sur la page d'ajout de contenus (Administrer » Gestion du contenu » Créer un contenu), votre bloc-menu s'affiche à nouveau...

Trouver le nom des pages Drupal

Mais comment trouver le nom des pages Drupal ?

Il suffit d'afficher les pages et de prendre la chaîne de caractères qui vient après le nom de domaine (sans le ?q=), entière ou en partie, selon la portée que vous voulez donner à l'action.

Par exemple, blog/* agira pour toutes les pages ayant blog dans l'adresse. blog/billet-du-jour agira seulement pour le billet en question. Etc.

Parfois ça ne marche pas, c'est symptomatique d'un dysfonctionnement quelque part... dont il sera peut-être difficile de trouver l'origine. Dans ce cas on utilise les noms-systèmes des pages. Rendez-vous dans la page Administrer » Construction du site » Alias d'URL et trouvez le nom-système correspondant à l'URL de la page considérée. Les caractères jokers marchent aussi dans ce cas.

Retrouver le menu mal apparenté

Si vous vous êtes trompé dans l'affectation du menu-parent d'un menu, il ne vous reste plus qu'à partir en chasse pour le retrouver...

Trois façons pour trouver un menu-enfant égaré:

  1. Allez dans Administrer » Construction du site » Menus » Liste des menus et cliquez sur les menus, les uns après les autres, pour afficher les éléments qu'ils contiennent.
  2. Allez dans Administrer » Gestion du contenu » Création de contenu » Article, on ne va pas vraiment créer un contenu, ce qui nous intéresse c'est d'obtenir la liste des menus qui se trouve dans la zone Paramètre du menu et on peut le faire à cet endroit sans crainte de désorganiser le site en cas de fausse manip.

    Déroulez la liste Élément parent, localisez votre item de menu et remontez pour trouver son parent... (C'est pas gagné si la liste est longue...)

  3. Si vous avez accès à la base de données du site, examinez la table menu_links et cherchez le nom de votre élément de menu dans la colonne link_title (le nom saisi dans la rubrique Titre de lien dans le menu). Puis regardez la valeur de la colonne menu_name : c'est le nom-machine de votre menu.

    Vous pouvez aussi exécuter la requête suivante dans Phpmyadmin, en remplaçant XXX par le titre de votre élément de menu, vous obtiendrez le nom en clair du menu où s'est perdu votre item :

    SELECT mc.title from menu_custom mc
    join menu_links ml on mc.menu_name = ml.menu_name
    where ml.link_title = 'XXX'

 

Créer une blogroll de liens externes

Allez dans Administrer » Construction du site » Menus » Ajouter un menu.

Renseignez les rubriques Nom de menu et Titre selon les indications données précédemment.

Cliquez sur Enregistrer.

Dans l'écran suivant :

  • Cliquez sur Ajouter un élément. Pour la rubrique Chemin, indiquez l'URL complète du site.
  • Pour la rubrique Titre du lien dans le menu, indiquez le libellé tel que vous voulez qu'il apparaisse comme lien.
  • Éventuellement, renseignez les autres rubriques et cliquez sur Enregistrer.
  • Ajoutez d'autres éléments de menu si vous le souhaitez puis cliquez sur Enregistrer la configuration quand ce sera terminé.

Il ne vous reste plus qu'à positionner votre bloc de menu, comme indiqué précédemment.

Et voilà !

Pour créer vos menus Drupal: pas une ligne de programmation, pas un module supplémentaire, que des opérations simples et directes !