Question

J'ai été bidouiller avec drupal thématisation tout à fait avec succès (ou du moins, c'est ce que je pense), mais quand j'ai essayé d'injecter css de codage dans le menu principal de liens pour le personnaliser comme je le fais en général via html + css, je frappe un mur.

J'ai été en mesure d'appliquer des styles CSS à divs, des liens et du texte, mais je voudrais personnaliser le primaire (et secondaire) liens menus beaucoup plus, peut-être avec quelques techniques de menu de sprites css, mais tout en restant conforme à l'aide de Drupal et en utilisant autant de php propre de dans le processus drupal. ou si je dois vraiment réécrire un code, je ne me dérange pas, mais je ne suis pas tout à fait le programmeur encore.

Je suis ici depuis plusieurs sites, mais je n'ai rien particulièrement utile, donc si quelqu'un peut me pointer vers la bonne direction, je serai très reconnaissant.

Thanx à l'avance.

Était-ce utile?

La solution

Vous pouvez ajouter un id comme classe pour chaque élément de menu - ajouter cette fonction dans votre template.php

function mythemename_menu_item_link($link) {
  if (empty($link['localized_options'])) {
    $link['localized_options'] = array();
  }

  // LOOK HERE
  // add a key for main menu items, so we can theme each item in a different way
  // add this class only for a specific menu
  if ($link['menu_name'] == 'menu-menu-mymenu') {
    if ($link['localized_options']['attributes']['class']) {
      $link['localized_options']['attributes']['class'] .= ' menu-'. $link['mlid'];
    }
    else {
      $link['localized_options']['attributes']['class'] = 'menu-'. $link['mlid'];
    }
  }

  return l($link['title'], $link['href'], $link['localized_options']);
}

Ce code peut être plus propre, mais je l'ai ajouté plusieurs lignes afin que vous puissiez le lire mieux.

Autres conseils

si je comprends bien votre question, vous voulez ajouter une classe personnalisée / id menu. Cela peut être fait en remplaçant la theme_menu_tree pour un menu donné. Je le fais pour mon menu principal en ajoutant ce qui suit à mon fichier template.php:

function THEMENAME_menu_tree__main_menu($variables){
return '<ul class="menu main-menu">' . $variables['tree'] . '</ul>';
}

espérons que cette aide.

Vous devriez aussi jeter un oeil à la themer le module , ce qui vous donne la suggestion pour les fonctions de modèle et plus .

acclamations, Jørgen

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top