Drupal - Afficher des images pour les éléments de menu.

Pour créer un menu avec Drupal qui permet d'afficher des images au lieu du texte habituel, il y a plusieurs solutions. J'ai choisi d'en présenter une dans ce billet. J'ai trouvé cette technique ici.
Cette technique consiste à modifier la fonction theme_menu_item_link($link). Il suffit d'ajouter une condition si le champ description de l'élément du menu contient une image : // If menu item is an image
if(strpos($link'localized_options''attributes''title', '<img') === 0) {
// Allow HTML if the menu description is an image tag:
$link'localized_options''html' = TRUE;
// exchange description with title
$tmp = $link'localized_options''attributes''title';
$link'localized_options''attributes''title' = $link'title';
$link'title' = $tmp;
}
Il suffit d'ajouter ce bout de code à votre fichier template.php au sein de la fonction theme_menu_item_link($link).

Il faut ensuite modifier le format d'entrée que vous utilisez pour les menus (Par défaut c'est "Filtered HTML") afin d'y ajouter la balise "<img>" dans les balises autorisés.
Pour mettre une image à la place de l'intitulé du menu il faut ensuite modifier l'entrée de menu pour mettre l'adresse de l'image dans le champ description, le champ titre servira pour renseigner l'attribut "title" du lien hypertexte.

Vus : 1211
Publié par 4LW : 25