ฉันค้นหาlinks__system_main_menu
แต่เพียงค้นหาประเพณีของธีมนี้ มันกำหนดไว้ที่ไหน
ฉันค้นหาlinks__system_main_menu
แต่เพียงค้นหาประเพณีของธีมนี้ มันกำหนดไว้ที่ไหน
คำตอบ:
Drupal 7 core ไม่ได้กำหนดฟังก์ชั่นนี้จริงๆ
links__system_main_menu
[base hook]__[context]
เป็นรูปแบบตะขอรูปแบบของแบบฟอร์ม เมื่อการเชื่อมโยงเป็นแกนด้วยtheme('links__system_main_menu', $vars)
, theme()
จะค้นหาและใช้theme_links__system_main_menu()
ถ้ามันได้รับการกำหนด theme_links()
ถ้าไม่ได้ก็จะใช้
ดูtheme ()สำหรับเอกสารอย่างเป็นทางการของพฤติกรรมนี้ บทที่ 3 ของการพัฒนาโมดูล Drupal 7ทำงานได้อย่างยอดเยี่ยมในการอธิบายเรื่องนี้และให้ตัวอย่างมากมาย
BTW หลักการเดียวกันนี้ใช้กับไฟล์เท็มเพลต ตัวอย่างเช่นหากเราเรียกtheme('node__article__1', $vars)
, theme()
จะค้นหาnode--article--1.tpl.php
ไฟล์แล้วสำหรับnode--article.tpl.php
ในที่สุดก็ตกกลับไปnode.tpl.php
ถ้าไม่ใช่ของพวกเขาจะมีการกำหนด
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