Drupal - Afficher des images pour les éléments de menu.
Par Sylvain Joffraud le mardi, avril 27 2010, 09:05 - Drupal - Lien permanent
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.

Commentaires
Euh… il manque pas des choses… genre des crochets ?
Aller… cadeau… avec les commentaires en français et l'indentation Drupal :
http://pastebin.org/185783
En effet il manque les crochets, je les ai mis mis mais ils n'apparaissent pas dans billet. Merci.