लिंक _system_main_menu को कहां परिभाषित किया गया है?


13

मैंने खोज की links__system_main_menu, लेकिन बस इस विषय का उपयोग खोजें। इसे कहाँ परिभाषित किया गया है?

जवाबों:


24

Drupal 7 कोर वास्तव में इस फ़ंक्शन को परिभाषित नहीं करता है।

links__system_main_menuफॉर्म का एक थीम हुक पैटर्न है [base hook]__[context]। जब लिंक के साथ थीम्ड किया जाता है theme('links__system_main_menu', $vars), theme()खोज और उपयोग करेगा theme_links__system_main_menu()यदि यह परिभाषित किया गया है। यदि नहीं, तो यह उपयोग करेगा theme_links()

इस व्यवहार के आधिकारिक प्रलेखन के लिए विषय () देखें । Drupal 7 का अध्याय 3 मॉड्यूल विकास इसे समझाने का एक उत्कृष्ट काम करता है और कई उदाहरण प्रदान करता है।

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 पर प्राप्त कर सकते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.