Links__system_main_menu nerede tanımlanır?


13

Aradım links__system_main_menu, ama sadece bu temanın kullanımlarını buluyorum. Nerede tanımlanır?

Yanıtlar:


24

Drupal 7 çekirdeği aslında bu işlevi tanımlamaz.

links__system_main_menuformun bir tema kanca modelidir [base hook]__[context]. Bağlantılar temalı olduğunda theme('links__system_main_menu', $vars), tanımlanmışsa theme()arar ve kullanır theme_links__system_main_menu(). Değilse, kullanacaktır theme_links().

Bu davranışın resmi belgeleri için temaya () bakın . Drupal 7 Modül Geliştirme Bölüm 3, bunu açıklamak için mükemmel bir iş çıkarır ve birkaç örnek verir.

BTW, aynı ilke şablon dosyaları için de geçerlidir. Örneğin, çağırırsak theme('node__article__1', $vars), theme()bir node--article--1.tpl.phpdosya arar ve sonra bunların hiçbiri tanımlanmıyorsa node--article.tpl.phpgeri döner node.tpl.php.


11

theme_links__system_main_menu()şu anda Drupal'dan tanımlanmamıştır, ancak temanızda MYTHEME_links__system_main_menu()tanımlarsanız Drupal kullanır .

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;
}

Biraz daha fazla bilgiyi http://drupal.org/node/1033442#comment-5076932 adresinde bulabilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.