Link__system_main_menu được định nghĩa ở đâu?


14

Tôi đã tìm kiếm links__system_main_menu, nhưng chỉ tìm thấy tập quán của chủ đề này. Nó được định nghĩa ở đâu?

Câu trả lời:


24

Lõi Drupal 7 không thực sự xác định chức năng này.

links__system_main_menulà 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.phptệp, và sau đó node--article.tpl.php, cuối cùng sẽ quay trở lại node.tpl.phpnếu không xác định được cả hai.


11

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 .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.