8
votes

New to Magento.

Can any one guide me how to define a default layout for category pages.

Tried local.xml in my theme folder but not working.

Here is my xml file :-

<!-- Default handle, loaded on most pages -->
<default>

    <reference name="head">

        <!-- Remove Magento's default assets -->
        <action method="removeItem">
            <type>skin_css</type>
            <name>css/print.css</name>
        </action>
        <action method="removeItem">
            <type>skin_css</type>
            <name>css/styles-ie.css</name>
        </action>
        <action method="removeItem">
            <type>skin_css</type>
            <name>css/styles.css</name>
        </action>
        <action method="removeItem">
            <type>skin_css</type>
            <name>css/widgets.css</name>
        </action>
        <action method="removeItem">
            <type>skin_js</type>
            <name>js/ie6.js</name>
        </action>
        <action method="removeItem">
            <type>js</type>
            <name>lib/ds-sleight.js</name>
        </action>
        <action method="removeItem">
            <type>js</type>
            <name>varien/menu.js</name>
        </action>

        <!-- Add our assets -->
        <action method="addCss">
            <stylesheet>css/font-awesome.css</stylesheet>
        </action>
        <action method="addCss">
            <stylesheet>css/jquery-ui.css</stylesheet>
        </action>
        <action method="addCss">
            <stylesheet>dist/css/style.css</stylesheet>
        </action>
        <action method="addCss">
            <stylesheet>css/ddSlick.css</stylesheet>
        </action>
        <action method="addCss">
            <stylesheet>css/parsjewellers.css</stylesheet>
        </action>
        <action method="addItem">
            <type>skin_js</type>
            <name>js/jquery-1.11.1.min.js</name>
        </action>
        <action method="addItem">
            <type>skin_js</type>
            <name>js/jquery-ui.js</name>
        </action>
        <action method="addItem">
            <type>skin_js</type>
            <name>js/ddSlick_jquery.dropdown.js</name>
        </action>
        <action method="addItem">
            <type>skin_js</type>
            <name>dist/js/script.js</name>
        </action>
        <action method="addItem">
            <type>skin_js</type>
            <name>js/my_site.js</name>
        </action>

        <!-- Add additioanl child blocks -->
        <block type="core/template" name="boilerplate.head.meta" template="boilerplate/page/html/head/meta.phtml"/>
        <block type="core/template" name="boilerplate.head.ie8" template="boilerplate/page/html/head/ie8.phtml"/>

    </reference>

    <reference name="header">
        <block type="directory/currency" name="custom_currency_selector" template="currency/currency.phtml"/>
    </reference>

    <reference name="right">
        <remove name="paypal.partner.right.logo" />
        <remove name="right.permanent.callout" />
        <remove name="right.poll" />
        <remove name="cart_sidebar" />
        <remove name="catalog.compare.sidebar" />
    </reference>

    <reference name="left">
        <remove name="currency" />
        <remove name="left.permanent.callout" />
        <remove name="tags_popular" />
        <remove name="left.newsletter" />
    </reference>

</default>

<catalog_category_default>
    <reference name="root">
        <action method="setTemplate"><template>page/2columns-left.phtml</template></action>
    </reference>
</catalog_category_default>


<print>

    <reference name="head">

        <!-- Add our assets -->
        <action method="addCss">
            <stylesheet>css/style.css</stylesheet>
        </action>
        <action method="addItem">
            <type>skin_js</type>
            <name>js/script-ck.js</name>
        </action>

    </reference>

</print>

Any help would be highly appreciated.

Thanks

2

2 Answers

10
votes

I was using layered navigation and my xml update was overwritten by catalog_category_layered handle

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <catalog_category_default>
        <reference name="root">
            <action method="setTemplate"><template>page/2columns-right.phtml</template></action>
        </reference>
    </catalog_category_default>
    <catalog_category_layered>
        <reference name="root">
            <action method="setTemplate"><template>page/2columns-right.phtml</template></action>
        </reference>
    </catalog_category_layered>
</layout>
9
votes

Changing individual category page layout

You can modify the page layout of each individual category by the following steps:

 1. Go to Catalog -> Manage Categories
 2. Select any category
 3. Click the 'Custom Design' tab
 4. Select your desired page layout from 'Page Layout' selectbox
 5. Save Category and you are done!

Changing category page from your local.xml file:

 1. Open layout/local.xml file
 2. Find the node 'catalog_category_default' and add

<catalog_category_default>

        <reference name="root">
            <action method="setTemplate"><template>page/2columns-right.phtml</template></action>
        </reference>
</catalog_category_default>

Another method:

 1. Open layout/page.xml file
 2. Under the ‘default’ node, you will find the following code

<block type="page/html" name="root" output="toHtml" template="page/2columns-left.phtml">

The above line has set 2columns-left layout. You can change it to your desired choice like 2columns-right, 3columns, etc.

P.S: If you are using layered navigation, you need to use <catalog_category_layered> node to change the layout.