मुझे पता है कि यह बहुत सारे सवालों के साथ एक पुराना सवाल है, उनमें से ज्यादातर मेनू टेम्पलेट को संपादित करने का सुझाव देते हैं लेकिन यह मेरे लिए काम नहीं करता है। यह समझाने की कोई आवश्यकता नहीं है कि क्यों, आइए हम "सही" तरीके से काम करने के बारे में थोड़ा ओसीडी महसूस करते हैं।
यह प्रश्न दूसरों के लिए आवश्यक सामग्री के रूप में काम कर सकता है। यहाँ जाता हैं।
Magento 1.7 के साथ शुरू करके शीर्ष मेनू को एक घटना का उपयोग करके बनाया गया है page_block_html_topmenu_gethtml_before
:। यह Mage_Catalog
श्रेणियों को जोड़ने के लिए मॉड्यूल द्वारा उपयोग किया जाता है । मैं उसका उपयोग करना चाहता हूं। इसके लिए मैंने अपने मॉड्यूल में एक पर्यवेक्षक को इस तरह बनाया है:
<global>
<events>
<page_block_html_topmenu_gethtml_before>
<observers>
<my_observer>
<class>mymodule/observer</class>
<method>addItemsToTopmenuItems</method>
</my_observer>
</observers>
</page_block_html_topmenu_gethtml_before>
</events>
</global>
में Observer.php
कक्षा मैं
public function addItemsToTopmenuItems($observer){
//get the menu object: //Type Varien_Data_Tree_Node
$menu = $observer->getMenu();
//get the tree object in the menu //type Varien_Data_Tree
$tree = $menu->getTree();
//get current page handler
$action = Mage::app()->getFrontController()->getAction()->getFullActionName();
$brandNodeId = 'category-node-brand';
//set the node id, label and url
$data = array(
'name' => Mage::helper('catalog')->__('Brands'),
'id' => $brandNodeId,
'url' => Mage::getUrl('brands'),
'is_active' => ($action == 'brands')
);
//create a node object
$brandNode = new Varien_Data_Tree_Node($data, 'id', $tree, $menu);
//add the node to the menu
$menu->addChild($brandNode);
return $this;
}
मेरे पर्यवेक्षक के पास कुछ अन्य कोड हैं जो सभी ब्रांडों को Brands
मेनू के उप-आइटम के रूप में जोड़ता है लेकिन यहां उसके लिए कोई आवश्यकता नहीं है।
यह पूरी तरह से काम करता है और मेनू Brands
में अंतिम आइटम के रूप में एक मेनू जोड़ता है ।
मुद्दा यह है कि मैं इसे पहले मेनू के रूप में चाहता हूं और मेरे पर्यवेक्षक को Mage_Catalog
श्रेणियों में पर्यवेक्षक के बाद बुलाया जाता है । चूंकि किसी घटना पर पर्यवेक्षकों के आदेश को क्रमबद्ध करने का कोई तरीका (ऐसा नहीं है कि मुझे पता है) ... मुझे एक समस्या है
[EDIT]
जैसा कि @Benmark ने सुझाव दिया था कि मैंने बनायाMage_Catalog
मॉड्यूल मेरे मॉड्यूल पर निर्भर करता है और अब मेरा मेनू आइटम सूची में पहला है। लेकिन मुझे अभी भी श्रेणियों के बीच और अंत में मेनू जोड़ना है। एक नया मॉड्यूल बनाने से संभवतः मेनू के अंत में आइटम के साथ समस्या का समाधान हो जाएगा, लेकिन मेरे पास अभी भी श्रेणियों के बीच वालों के साथ एक मुद्दा है,
[/ EDIT]
इसलिए मूल रूप से मेरा प्रश्न फिर से शुरू होता है " (कैसे) मैं बच्चे के चारों ओर घूम सकता हूं Varien_Data_Tree_Node
किसी Varien_Data_Tree
वस्तु में नोड्स ? "
कृपया Brands
श्रेणी के पेड़ में पहली श्रेणी के रूप में जोड़ने का सुझाव न दें । यह एक विकल्प नहीं है (जैसे मैंने कहा ... इन चीजों के बारे में मेरा ओसीडी)।