Yanıtlar:
Drupal 7 çekirdeği aslında bu işlevi tanımlamaz.
links__system_main_menu
formun bir tema kanca modelidir [base hook]__[context]
. Bağlantılar temalı olduğunda theme('links__system_main_menu', $vars)
, tanımlanmışsa theme()
arar ve kullanır theme_links__system_main_menu()
. Değilse, kullanacaktır theme_links()
.
Bu davranışın resmi belgeleri için temaya () bakın . Drupal 7 Modül Geliştirme Bölüm 3, bunu açıklamak için mükemmel bir iş çıkarır ve birkaç örnek verir.
BTW, aynı ilke şablon dosyaları için de geçerlidir. Örneğin, çağırırsak theme('node__article__1', $vars)
, theme()
bir node--article--1.tpl.php
dosya arar ve sonra bunların hiçbiri tanımlanmıyorsa node--article.tpl.php
geri döner node.tpl.php
.
theme_links__system_main_menu()
şu anda Drupal'dan tanımlanmamıştır, ancak temanızda MYTHEME_links__system_main_menu()
tanımlarsanız Drupal kullanır .
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;
}
Biraz daha fazla bilgiyi http://drupal.org/node/1033442#comment-5076932 adresinde bulabilirsiniz .