Links__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()ถ้าไม่ได้ก็จะใช้

ดูtheme ()สำหรับเอกสารอย่างเป็นทางการของพฤติกรรมนี้ บทที่ 3 ของการพัฒนาโมดูล Drupal 7ทำงานได้อย่างยอดเยี่ยมในการอธิบายเรื่องนี้และให้ตัวอย่างมากมาย

BTW หลักการเดียวกันนี้ใช้กับไฟล์เท็มเพลต ตัวอย่างเช่นหากเราเรียก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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.