আমি জানি এটি অনেক উত্তর সহ একটি পুরানো প্রশ্ন, তাদের বেশিরভাগই মেনু টেমপ্লেট সম্পাদনা করার পরামর্শ দেয় তবে এটি আমার পক্ষে কার্যকর হয় না। কেন তা বোঝানোর দরকার নেই, চলুন আমি বলি যে আমি "সঠিক" উপায়ে জিনিসগুলি সম্পর্কে কিছুটা ওসিডি করছি।
এই প্রশ্নটি অন্যের প্রয়োজনের জন্য উপাদান হিসাবে কাজ করতে পারে। এখানে যায়।
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
যে বিভাগগুলি যুক্ত করে। যেহেতু কোনও ইভেন্টে পর্যবেক্ষকদের ক্রম বাছাই করার কোনও উপায় নেই (এটি আমি জানি না) ... আমার একটি সমস্যা আছে
[সম্পাদনা]
@ বেনমার্কস পরামর্শ হিসাবে আমিMage_Catalog
মডিউলটি আমার মডিউলটির উপর নির্ভর করে এবং এখন আমার মেনু আইটেম তালিকার প্রথম। তবে এখনও বিভাগগুলির মধ্যে এবং শেষে আমাকে মেনু যুক্ত করতে হবে। একটি নতুন মডিউল তৈরি করা সম্ভবত মেনুটির শেষে আইটেমগুলির সাথে সমস্যাটি সমাধান করবে, তবে বিভাগগুলির মধ্যে থাকা আমার সাথে এখনও একটি সমস্যা রয়েছে,
[/ এডিআইটি]
সুতরাং মূলত আমার প্রশ্নটি আবার শুরু হয় " (কীভাবে) আমি সন্তানের চারপাশে যেতে পারি? Varien_Data_Tree_Node
একটি Varien_Data_Tree
বস্তুর একটি নোড ? " বিভাগ বিভাগে প্রথম বিভাগ হিসাবে
যোগ করার পরামর্শ দিবেন না Brands
। এটি কোনও বিকল্প নয় (যেমন আমি বলেছি ... এই বিষয়গুলি সম্পর্কে আমার ওসিডি)।