In one of our projects, the requirement was to have a different layout for some category pages. So, we decided to use a different template file for these categories. We added the following code in the “Custom Layout Update” field for these categories in admin.
<reference name="category.products"> <action method="setTemplate"> <template>catalog/category/custom-category.phtml</template> </action> </reference>
These category pages need to show the products in a different layout.
In Magento you can create CMS static block from Admin by following the path: Admin >> CMS >> Static Blocks.
Lets see how we can display them on the frontend.
1. Using Layout updates
You can add layout updates in local.xml file for a page as shown below:
<reference name="right"> <block type="cms/block" name="your_block_name" before="-"> <action method="setBlockId"> <block_id>your_block_identifier</block_id> </action> </block> </reference>
You can enter these layout updates in Magento admin also – Categories, Products, CMS Pages provide a field for “Custom Layout Update”.
In Magento you can set the position of the products in a category from Magento admin by following the path Admin >> Catalog >> Categories >> Manage Categories >> Edit a category >> Set the position of the products in the “Category Products” tab.
Let see how we can find the position of a product on the product detail page:
$catId = Mage::registry('current_product')->getCategoryId(); $category = Mage::getModel('catalog/category')->load($catId); $productPositions = Mage::getResourceModel('catalog/category')->getProductsPosition($category); // This returns all product ids with their position echo $productPositions[$_product->getId()]; //Print the product postion
If you need to set data in a block so that you can use it in the block view file then you can do it in the layout xml files or in Magento admin using the Layout Update XML/Custom Layout Update XML field.
Suppose you want to differentiate a category based on a variable “category_type”, if the value of “category_type” is “sale” then you will display category image else not on the category landing page.
Navigate to Admin >> Catalog >> Categories >> Manage Categories. Click on the category that you want to mark as a “sale” category to edit it. We assume that “Is Anchor” is set as “Yes” for the category in the “Display Settings” tab.