This tutorial is going to show you one of the ways to list sub-categories on category pages of your Magento store.
In order to display thumbnails of subcategories and their names on your category pages:
1:-In your Magento admin go to CMS -> Static Blocks
2:-Click “Add New Block” at the top right.
3:-Create a new static block as follows:
Block Title: Sub Category Listing
Identifier: subcategory_listing
Status: Enabled
Content:
4:-Click "Save Block" at the top right.
5:-From the Top menu go to Catalog –> Manage Categories.
6:-Select the category that has sub-categories and under the "Display Settings Tab" reflect the following:
Display mode: Static Block only
OnlyCMS Block: Sub Category Listing
Is Anchor: No.
7:-Click "Save category" at the top right.
8:-On your computer create a new file called “subcategory_listing.phtml” with the following content:
app/design/frontend/default/MY-TEMPLATE-DIR/template/catalog/navigation/ (if any folder from this directory is missing, you will need to re-create it)
10:-Navigate to app\code\core\Mage\Catalog\Block\Navigation.php.
11:-Copy the Navigation.php file to your computer On this Location.
app\code\local\Mage\Catalog\Block\ and upload the copied Navigation.php to this directory ( you need to create folders). 12:-In the "Navigation.php" look for this part:
1:-In your Magento admin go to CMS -> Static Blocks
2:-Click “Add New Block” at the top right.
3:-Create a new static block as follows:
Block Title: Sub Category Listing
Identifier: subcategory_listing
Status: Enabled
Content:
{{block type="catalog/navigation" template="catalog/navigation/subcategory_listing.phtml"}}
4:-Click "Save Block" at the top right.
5:-From the Top menu go to Catalog –> Manage Categories.
6:-Select the category that has sub-categories and under the "Display Settings Tab" reflect the following:
Display mode: Static Block only
OnlyCMS Block: Sub Category Listing
Is Anchor: No.
7:-Click "Save category" at the top right.
8:-On your computer create a new file called “subcategory_listing.phtml” with the following content:
9:-upload the file to the following directory:<?php $_categories=$this->getCurrentChildCategories(); if($_categories->count()): $categorycount = 0; foreach ($_categories as $_category): if($_category->getIsActive()): $cur_category=Mage::getModel('catalog/category')->load($_category->getId()); $layer = Mage::getSingleton('catalog/layer'); $layer->setCurrentCategory($cur_category); $catName = $this->getCurrentCategory()->getName(); if ($categorycount == 0){ $class = "first"; } elseif ($categorycount == 3){ $class = "last"; } else{ $class = ""; } ?>
\n\n- <?php endif; if($categorycount == 3){ $categorycount = 0; echo "
<?php echo $this->htmlEscape($_category->getName()); ?>
"; } else{ $categorycount++; } endforeach; endif; ?>
app/design/frontend/default/MY-TEMPLATE-DIR/template/catalog/navigation/ (if any folder from this directory is missing, you will need to re-create it)
10:-Navigate to app\code\core\Mage\Catalog\Block\Navigation.php.
11:-Copy the Navigation.php file to your computer On this Location.
app\code\local\Mage\Catalog\Block\ and upload the copied Navigation.php to this directory ( you need to create folders). 12:-In the "Navigation.php" look for this part:
<?php public function getCurrentChildCategories() { $layer = Mage::getSingleton('catalog/layer'); $category = $layer->getCurrentCategory(); /* @var $category Mage_Catalog_Model_Category */ $categories = $category->getChildrenCategories(); $productCollection = Mage::getResourceModel('catalog/product_collection'); $layer->prepareProductCollection($productCollection); $productCollection->addCountToCategories($categories); return $categories; } ?>13:-And replace it with this:
<?php public function getCurrentChildCategories() { $layer = Mage::getSingleton('catalog/layer'); $category = $layer->getCurrentCategory(); /* @var $category Mage_Catalog_Model_Category */ $collection = Mage::getModel('catalog/category')->getCollection(); /* @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */ $collection->addAttributeToSelect('url_key') ->addAttributeToSelect('name') ->addAttributeToSelect('is_anchor') ->addAttributeToSelect('image') ->addAttributeToFilter('is_active', 1) ->addIdFilter($category->getChildren()) ->setOrder('position', 'ASC') ->joinUrlRewrite() ->load(); $productCollection = Mage::getResourceModel('catalog/product_collection'); $layer->prepareProductCollection($productCollection); $productCollection->addCountToCategories($collection); return $collection; } ?>14:-From the front end of your site open the category with the sub-categories added to it. Now it should show the sub-categories listing.
No comments:
Post a Comment