web-dev-qa-db-fra.com

Où est défini links__system_main_menu?

J'ai recherché links__system_main_menu, mais il suffit de trouver les utilisations de ce thème. Où est-il défini?

13
hpn

Drupal 7 core ne définit pas réellement cette fonction.

links__system_main_menu Est un motif de crochet de thème de la forme [base hook]__[context]. Lorsque les liens ont pour thème theme('links__system_main_menu', $vars), theme() recherchera et utilisera theme_links__system_main_menu() s'il a été défini. Sinon, il utilisera theme_links().

Voir theme () pour la documentation officielle de ce comportement. Le chapitre 3 de Développement du module Drupal 7 fait un excellent travail d'explication et fournit plusieurs exemples.

BTW, le même principe s'applique aux fichiers de modèle. Si, par exemple, nous appelons theme('node__article__1', $vars), theme() recherchera un fichier node--article--1.tpl.php, Puis node--article.tpl.php, Pour finalement retomber sur node.tpl.php Si aucun d'eux n'est défini.

24
keithm

theme_links__system_main_menu() n'est pas actuellement défini à partir de Drupal, mais Drupal utilisera MYTHEME_links__system_main_menu(), si vous le définissez dans votre thème.

function MYTHEME_links__system_main_menu($variables) {
  $html = "<div>\n";
  $html .= "  <ul>\n"; 

  foreach ($variables['links'] as $link) {
    $html .= "<li>".l($link['title'], $link['path'], $link)."</li>";
  }

  $html .= "  </ul>\n";
  $html .= "</div>\n";

  return $html;
}

Vous pouvez trouver plus d'informations sur http://drupal.org/node/1033442#comment-5076932 .

11
tecjam