Если вы работаете с Magento ce 1.7+, вы можете использовать событие page_block_html_topmenu_gethtml_before
.
В версии 1.7+ верхнее меню рассматривается как контейнер, в котором вы можете разместить любую нужную ссылку.
Вот небольшой пример. Ваш наблюдатель может выглядеть следующим образом:
class [Namespace]_[Module]_Model_Observer {
public function addItemsToTopmenuItems($observer) {
$menu = $observer->getMenu();
$tree = $menu->getTree();
$action = Mage::app()->getFrontController()->getAction()->getFullActionName();
$nodeId = 'some-node-id';
$data = array(
'name' => Mage::helper('[module]')->__('Title goes here'),
'id' => $nodeId,
'url' => Mage::getUrl('module/controller/action'),
'is_active' => ($action == 'module_controller_action')
);
$node = new Varien_Data_Tree_Node($data, 'id', $tree, $menu);
$menu->addChild($node);
return $this;
}
}
и объявление события в config.xml
<frontend>
<events>
<page_block_html_topmenu_gethtml_before>
<observers>
<[module]>
<class>[module]/observer</class>
<method>addItemsToTopmenuItems</method>
</[module]>
</observers>
</page_block_html_topmenu_gethtml_before>
</events>
</frontend>
Это добавит элемент после того, как категории.
Чтобы добавить элементы в начале или в середине меню check this
Примечание: Конечно, это пример. Вы можете заставить свой модуль поддерживать добавление ссылок через панель настроек или что-нибудь еще, что вы можете.
Это хорошее расширение, но, к сожалению, они не предоставляют настройки администратора magento. Поэтому вам нужно отредактировать код, чтобы добавить новые ссылки. В любом случае, спасибо – WPguy