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

Surcharger un menu dans un bloc

Traduction de la page http://drupal.org/node/988694
publiée / actualisée sur drupal.org le 1 Mars 2011


Créez une fonction override dans votre fichier template.php :

<?php
function themename_links__system_MENUNAME_menu($variables) {}
?>

Un paramètre $variables est passé et il contient un index nommé links. Chaque lien contient, entre autres, un href et un title.

A l'intérieur de votre fonction override, parcourez les liens :

<?php
foreach ($variables['links'] as $link) {}
?>

Si nous voulons juste afficher une balise <a>, sans utiliser Drupal, nous écririons normalement :

<?php
echo "<a href="{$link['href']}">{$link['title']}</a>";
?>

Cependant, Drupal dispose d'une fonction l() qui crée les liens pour nous. Il vaut mieux l'utiliser car elle traite les cas particuliers comme le lien <front>.

Aussi, nous ferons plutôt ça :

<?php
echo l($link['title'], $link['href'], $link);
?>

La fonction l() s'occupera d'ajouter une classe active si le lien est destiné à la page en cours.

Au finale, votre fonction override ressemblera à ceci :

<?php
function themename_links__system_MENUNAME_menu($variables) {
  
$output '';
  foreach (
$variables['links'] as $link) {
    
$output .= l($link['title'], $link['href'], $link);
  }
  return 
$output;
}
?>