Де визначено посилання__system_main_menu?


13

Я шукав links__system_main_menu, але просто знайшов звичаї цієї теми. Де це визначено?

Відповіді:


24

Drupal 7 core фактично не визначає цю функцію.

links__system_main_menu- це тематичний гачок форми форми [base hook]__[context]. Коли посилання тематизовані theme('links__system_main_menu', $vars), theme()буде шукати та використовувати, theme_links__system_main_menu()якщо він був визначений. Якщо ні, то він використовуватиме theme_links().

Дивіться тему () для офіційної документації такої поведінки. Розділ 3 розробки модулів Drupal 7 чудово пояснює це і наводить кілька прикладів.

До речі, той же принцип стосується файлів шаблонів. Якщо, наприклад, ми зателефонували theme('node__article__1', $vars), theme()буде шукати node--article--1.tpl.phpфайл, а потім node--article.tpl.php, нарешті, переходить до того, node.tpl.phpякщо жоден з них не визначений.


11

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 .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.