Display categories and subcategories in Magento page
/*Display current store categories*/ $_helper = Mage::helper('catalog/category'); $_categories = $_helper->getStoreCategories(); /*Parent categories*/ foreach($_categories as $_category) { if(!$_category->getIsActive()){ continue; } echo $_category->getName(); echo render_child($_category->getId()); } /*Render child categories*/ function render_child($cid) { $html = ''; $_subCategory = Mage::getModel('catalog/category')->load($cid); $_subCategories = $_subCategory->getChildrenCategories(); if (count($_subCategories) > 0){ $html .= '<ul>'; foreach($_subCategories as $_subCat){ if(!$_subCat->getIsActive()){ continue; } $html .= '<li>'; /*Display first level sub categories*/ $catUrl = Mage::helper('catalog/category') ->getCategoryUrl($_subCat); $html .= "<a href='".$catUrl."'>".$_subCat->getName()."</a>"; /*Display first level sub categories*/ /*If needed display next level sub categories*/ $html .= render_child($_subCat->getId()); /*If needed display next level sub categories*/ $html .= '</li>'; } $html .= '</ul>'; } return $html; }
Displaying the category and subcategories from the current store. After getting the store categories, check the category is active and output the parent category name.
With the help of
render_childfunction, check the active subcategories then display first level child elements in list format.
Would like to display all subcategories then call
render_childfunction, with argument as current category id.
No comments:
Post a Comment