В верхнем меню отображаются только подкатегории определенной категории
Вот мои категории:
Root category
---> Shoes
---- ---> Red shoes
---- ---> Green shoes
---- ---> Yellow shoes
---> Shirts
---- ---> Black shirts
---- ---> White shirts
---- ---> Blue shirts
И мое верхнее меню будет выглядеть так:
-Shoes
-Shirts
Но я хочу показать свою обувь только в верхнем меню, вот так:
-Red shoes
-Green shoes
-Yellow shoes
Как я могу это сделать?
1 answers
Категории добавляются в верхнее меню с помощью этого метода Mage_Catalog_Model_Observer::addCatalogToTopmenuItems
.
купить по умолчанию метод выглядит следующим образом:
public function addCatalogToTopmenuItems(Varien_Event_Observer $observer)
{
$this->_addCategoriesToMenu(Mage::helper('catalog/category')->getStoreCategories(), $observer->getMenu());
}
Это означает, что он добавляет в верхнее меню результат Mage::helper('catalog/category')->getStoreCategories()
рекурсивно.
Все, что вам нужно сделать, это переписать этот метод и сделать так, чтобы он показывал только нужные вам дочерние категории.
Что-то вроде этого. Допустим, что ваш идентификатор категории shoes
равен 5.
public function addCatalogToTopmenuItems(Varien_Event_Observer $observer)
{
$parent = 5;
$recursionLevel = max(0, (int) Mage::app()->getStore()->getConfig('catalog/navigation/max_depth') - 1) //subtract 1 from the set recursion level because we skip a level;
$categories= Mage::getModel('catalog/category')->getCategories($parent, $recursionLevel, false, false, true);
$this->_addCategoriesToMenu($categories, $observer->getMenu());
}
Я не проверял это, но я думаю, что идея есть.