Onde está definido o link__system_main_menu?


13

Eu procurei links__system_main_menu, mas apenas encontre usos desse tema. Onde é definido?

Respostas:


24

O núcleo do Drupal 7 não define realmente essa função.

links__system_main_menué um padrão de gancho de tema do formulário [base hook]__[context]. Quando os links são temáticos theme('links__system_main_menu', $vars), theme()procurará e usará theme_links__system_main_menu()se tiver sido definido. Caso contrário, ele será usado theme_links().

Veja theme () para a documentação oficial deste comportamento. O Capítulo 3 do Drupal 7 Module Development faz um excelente trabalho ao explicar isso e fornece vários exemplos.

BTW, o mesmo princípio se aplica aos arquivos de modelo. Se, por exemplo, chamarmos theme('node__article__1', $vars), theme()procuraremos um node--article--1.tpl.phparquivo e, em seguida node--article.tpl.php, voltaremos finalmente a node.tpl.phpse nenhum deles estiver definido.


11

theme_links__system_main_menu()não está atualmente definido no Drupal, mas o Drupal o usará MYTHEME_links__system_main_menu(), se você o definir no seu tema.

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;
}

Você pode encontrar mais informações em http://drupal.org/node/1033442#comment-5076932 .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.