Bunun çok fazla cevabı olan eski bir soru olduğunu biliyorum, çoğu menü şablonunu düzenlemeyi önerir, ancak bu benim için çalışmıyor. Nedenini açıklamaya gerek yok, diyelim ki işleri “doğru” şekilde yapma konusunda biraz OKB.
Bu soru muhtaç başkaları için maddi olarak kullanılabilir. İşte gidiyor.
Magento 1.7 ile başlayarak üst menü bir olayı kullanılarak inşa edilmiştir: page_block_html_topmenu_gethtml_before
. Bu, Mage_Catalog
modül tarafından kategorileri eklemek için kullanılır . Bunu kullanmak istiyorum. Bunun için modülümde şöyle bir gözlemci oluşturdum:
<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>
Gelen Observer.php
sınıfta ben
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;
}
Gözlemcimin tüm markaları Brands
menünün alt öğeleri olarak ekleyen başka bir kodu var, ancak burada buna gerek yok.
Bu mükemmel çalışır ve menüde Brands
son öğe olarak bir menü ekler .
Sorun bu ilk menü olarak istiyorum ve benim gözlemci sonra Mage_Catalog
kategoriler ekler gözlemci sonra çağırılır . Bir etkinlikte gözlemcilerin sırasını sıralamanın bir yolu olmadığından (bilmediğimden) ... bir sorunum var
[DÜZENLEME]
@Benmarks önerdiği gibiMage_Catalog
modül modülüme bağlıdır ve şimdi menü öğem listede ilk sırada yer alıyor. Ama yine de kategoriler arasında ve sonunda menüler eklemem gerekiyor. Yeni bir modül oluşturmak muhtemelen menünün sonundaki öğelerle ilgili sorunu çözecektir, ancak yine de kategoriler arasındakilerle ilgili bir sorunum var,
[/ EDIT]
Temelde sorum şu şekilde devam ediyor: (Nasıl) çocuk etrafında hareket edebilirim Varien_Data_Tree_Node
bir Varien_Data_Tree
nesnenin düğümleri ? "
Lütfen Brands
kategori ağacına ilk kategori olarak eklenmesini önermeyin . Bu bir seçenek değil (dediğim gibi ... bunlar hakkında OKB'm).