Я пытаюсь создать настраиваемое раскрывающееся меню с несколькими конкретными категориями и их соответствующими подкатегориями. Пока мне удалось получить имена подкатегорий, но ссылки не будут работать.
Я также должен сделать основную категорию автоматически и автоматически, используя ее имя, и URL-адрес, если он изменен на заднем плане Magento. В этом случае идентификатор категории равен 265.
Веб-сайт, на котором я работаю, – www.personalproducts4u.co.uk
<li class="eight"><a href="<?php echo $this->getUrl() ?>index.php/contacts">Hotel Products</a> <?php $children = Mage::getModel('catalog/category')->getCategories(265); ?> <ul> <?php foreach ($children as $category): ?> <li> <a href="<?php echo $category->getUrl ?>"> <?php echo $category->getName(); ?> </a> </li> <?php endforeach; ?> </ul> </li>
Проблема состоит в том, что коллекция $children
имеет тип Varien_Data_Tree_Node_Collection
и ее элементы соответственно имеют тип Varien_Data_Tree_Node
. Вызов getUrl()
на них возвращает null, они не Mage_Catalog_Model_Category
объектами Mage_Catalog_Model_Category
. Однако вы можете получить их путь запроса (url), вызвав:
$category->getRequestPath();
В качестве альтернативы вы можете загрузить объект категории, вызвав:
$cat = Mage::getModel('catalog/category')->load($category->getEntityId());
А затем используйте вызов $cat->getUrl()
. Однако эта загрузка добавит дополнительные накладные расходы.