回答:
Drupal 7コアは実際にこの機能を定義していません。
links__system_main_menu
は、フォームのテーマフックパターンです[base hook]__[context]
。リンクがでテーマにしている場合theme('links__system_main_menu', $vars)
、theme()
検索しますと使用theme_links__system_main_menu()
それが定義されている場合。そうでない場合は、を使用しますtheme_links()
。
この動作の公式ドキュメントについては、theme()を参照してください。Drupal 7モジュール開発の第3章では、これを説明する優れた仕事を行い、いくつかの例を示します。
ところで、同じ原則がテンプレートファイルに適用されます。たとえば、を呼び出すとtheme('node__article__1', $vars)
、ファイルtheme()
が検索され、node--article--1.tpl.php
次にが検索され、どちらも定義されていない場合にnode--article.tpl.php
最終的にフォールバックしnode.tpl.php
ます。
theme_links__system_main_menu()
現在、Drupalから定義されていませんMYTHEME_links__system_main_menu()
が、テーマで定義する場合、Drupalはを使用します。
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でさらに情報を見つけることができます。