Joomla, modifier le template du menu

Note: ce code est pour Joomla  1.5, mais le principe est le même pour la version 1.6, il devrait en théorie fonctionner aussi.

Dans le cadre d'une refonte graphique d'un site j'ai besoin de distinguer les éléments d'un menu de navigation pairs et impairs, joomla n'offrant pas ce comportement par défaut j'ai du modifier le template du menu.

Pour info, on ne modifie jamais le template d'un composant ou d'un module directement, on le surcharge. On copie le fichier de template dans le dossier du thème, Joomla ira tout d'abord voir si il existe un surchargement du template et le cas échéant utilisera celui par défaut.

Donc dans mon cas j'ai copier le fichier /modules/mod_mainmanu/tmpl/default.php dans le dossier /html/mod_mainmenu/ à la racine de mon thème.

Ensuite pour pouvoir distinguer un élément sur deux dans mon menu j'ai simplement ajouté le code suivant:

$i = 0;
foreach ($node->children() as $child)
{
  if ($child->name() == 'li') {
    $case = ($i%2==0) ? 'odd' : 'even';
    if ($child->attributes('class')) {
      $child->addAttribute('class', $child->attributes('class').' '.$case);
    } else {
      $child->addAttribute('class',' '.$case);
    }   
    $i++;
  }
}

Du coup suivant si $i est pair ou nom j'ajoute soit la class odd ou even à mon élément de menu.

Commentaires

à un objet contenant toutes les infos de l'article/page demandée

Ajouter un commentaire

Ne sera pas publié
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...