Câu trả lời:
Lõi Drupal 7 không thực sự xác định chức năng này.
links__system_main_menu
là một mẫu móc chủ đề của mẫu [base hook]__[context]
. Khi các liên kết được theo chủ đề theme('links__system_main_menu', $vars)
, theme()
sẽ tìm kiếm và sử dụng theme_links__system_main_menu()
nếu nó đã được xác định. Nếu không, nó sẽ sử dụng theme_links()
.
Xem chủ đề () để biết tài liệu chính thức về hành vi này. Chương 3 của Phát triển mô-đun Drupal 7 thực hiện công việc tuyệt vời để giải thích điều này và cung cấp một số ví dụ.
BTW, nguyên tắc tương tự áp dụng cho các tệp mẫu. Ví dụ, nếu chúng ta gọi theme('node__article__1', $vars)
, theme()
sẽ tìm kiếm một node--article--1.tpl.php
tệp, và sau đó node--article.tpl.php
, cuối cùng sẽ quay trở lại node.tpl.php
nếu không xác định được cả hai.
theme_links__system_main_menu()
hiện không được xác định từ Drupal, nhưng Drupal sẽ sử dụng MYTHEME_links__system_main_menu()
, nếu bạn xác định nó trong chủ đề của mình.
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;
}
Bạn có thể tìm thêm một số thông tin trên http://drupal.org/node/1033442#comment-5076932 .