logo

Palette - Rendez-la colorée🎨

Palette — Constructeur de pages visuel, aucun diplôme en design requis.

Démo en direct Télécharger Palette

Défilement

Thématisation des menus (template.php)

29/07/2025, by Ivan

Bonjour, dans le fichier template.php, j'insère le code suivant :

function nom_du_theme_menu_link__main_menu(array $variables) {
  $element = $variables['element'];
  $sub_menu = '';

  if ($element['#below']) {
    $sub_menu = drupal_render($element['#below']);
  }

  $output = '<span>' . l($element['#title'], $element['#href'], $element['#localized_options']) . '</span>';
  return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}

Mais la balise <span> n'apparaît pas.

function nom_du_theme_links__system_main_menu(&$vars) {
  foreach ($vars['links'] as &$link) {
    $link['title'] = '<span>' . $link['title'] . '</span>';
    $link['html'] = TRUE;
  }
  return theme_links($vars);
}

Cette seconde construction fonctionne, mais l'enveloppe n'est pas à l'endroit voulu, elle se trouve à l'intérieur de la balise <a><span></span></a>.

Pourriez-vous s'il vous plaît m'indiquer pourquoi la première construction ne fonctionne pas ?