Szukałem links__system_main_menu
, ale po prostu znajduję zastosowania tego tematu. Gdzie to jest zdefiniowane?
Rdzeń Drupala 7 tak naprawdę nie definiuje tej funkcji.
links__system_main_menu
jest motywem wzoru formularza [base hook]__[context]
. Gdy linki są tematyczne theme('links__system_main_menu', $vars)
, theme()
wyszuka i użyje, theme_links__system_main_menu()
jeśli zostało zdefiniowane. Jeśli nie, użyje theme_links()
.
Zobacz theme () w celu uzyskania oficjalnej dokumentacji tego zachowania. Rozdział 3 rozwoju modułu Drupal 7 doskonale wyjaśnia to i podaje kilka przykładów.
BTW, ta sama zasada dotyczy plików szablonów. Jeśli, na przykład, zadzwonimy theme('node__article__1', $vars)
, theme()
wyszuka node--article--1.tpl.php
plik, a następnie w node--article.tpl.php
końcu wróci do, node.tpl.php
jeśli żaden z nich nie zostanie zdefiniowany.
theme_links__system_main_menu()
nie jest obecnie zdefiniowany w Drupal, ale Drupal użyje go MYTHEME_links__system_main_menu()
, jeśli zdefiniujesz go w swoim motywie.
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;
}
Więcej informacji można znaleźć na stronie http://drupal.org/node/1033442#comment-5076932 .