Ответы:
Ядро Drupal 7 фактически не определяет эту функцию.
links__system_main_menu
это шаблон крючка темы формы [base hook]__[context]
. Когда ссылки тематические с theme('links__system_main_menu', $vars)
, theme()
будет искать и использовать, theme_links__system_main_menu()
если он был определен. Если нет, он будет использовать theme_links()
.
Смотрите theme () для официальной документации этого поведения. Глава 3 Drupal 7 Разработка модулей отлично объясняет это и предоставляет несколько примеров.
Кстати, тот же принцип применяется к файлам шаблонов. Если, например, мы называем theme('node__article__1', $vars)
, theme()
будет искать node--article--1.tpl.php
файл, а затем node--article.tpl.php
, наконец , падает обратно , node.tpl.php
если ни один из них определены.
theme_links__system_main_menu()
в настоящее время не определено в Drupal, но Drupal будет использовать MYTHEME_links__system_main_menu()
, если вы определите его в своей теме.
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;
}
Вы можете найти дополнительную информацию на http://drupal.org/node/1033442#comment-5076932 .