This is an updated set of instructions from the previous post for 1.3x. A few things have changed with 1.4x which rendered the original information obsolete. These instruction will allow you to create a left hand vertical navigation as seen here . For more info see credits / references at the end. These instructions work with the Modern theme. You will have to adjust for other themes.


Step 1
Create a new file called vert_nav.phtml in app / design / frontend / YOUR DESIGN / YOURTemplate / template / catalog / navigation

add the following to vert_nav.phtml

<div class="vertical-nav-container box base-mini">
<div class="vertical-nav">
<!--<div class="head">-->
<!--<h4>-->
<div class="block block-cart">
    <div class="block-title">
        <strong><span><?php echo $this->__('Categories') ?></span></strong>
</div><!--End block block-cart-->
<div class="block-content">
<!--</h4>-->
<!--</div>--><!--End Of head-->
<h4 class="no-display">
<?php echo $this->__('Category Navigation:') ?></h4>
<ul id="nav_vert">
<?php foreach ($this->getStoreCategories() as $_category): ?>
<?php echo $this->drawItem($_category) ?>
<?php endforeach ?> </ul>
</div>
</div><!--End Of vertical-nav-->
<?php echo $this->getChildHtml('topLeftLinks') ?>
</div><!--End Of vertical-nav-container box base-mini-->

Step 2
In app / design / frontend / YOUR DESIGN / YOURTemplate / layout / catalog.xml

<!--
Category default layout
-->
    <catalog_category_default translate="label">
        <label>Catalog Category (Non-Anchor)</label>
        <reference name="root">
            <action method="setTemplate"><template>page/2columns-left.phtml</template></action>
        </reference>
        <reference name="left">
<!--  <block type="catalog/navigation" name="catalog.leftnav" after="currency" template="catalog/navigation/left.phtml"/>-->
 <block type="catalog/navigation" before="-" name="catalog.vertnav" template="catalog/navigation/vert_nav.phtml"/>

NOTE: you are simply commenting out line 10 and adding line 11

Step 3

In in skin/frontend/YOURDESIGN/YOURtemplate/css/widgets.css


#nav { float:left; margin-top:15px; margin-left:15px; font-size:1.1em; }

/************** ALL LEVELS  *************/ /* Style consistent throughout all nav levels */
#nav li { position:relative;text-transform:uppercase; text-align:left;    }
#nav li.over { z-index:999; }
#nav a,
#nav a:hover { display:block; line-height:1.3em; text-decoration:none; }
#nav span { display:block; cursor:pointer; white-space:nowrap; }
#nav li ul span {white-space:normal; }

/************ 0 LEVEL  ***************/
#nav li { float:left; margin:1px 8px 11px 1px; padding:3px 8px; }
#nav li.active a { color:#444; }
#nav a { float:left; background:url(../images/nav_top_level_arrow.gif) no-repeat 100% 50%; padding-right:11px; color:#444; font-weight:bold; }
#nav li.over a,
#nav a:hover { color:#444; }
#nav li.over,
#nav li.active { margin:0 7px 10px 0; border:1px solid #bbb; background:#ececec; }

/************ 1ST LEVEL ************/
#nav ul li,
#nav ul li.active,
#nav ul li.over { float:none; border:none; background:none; margin:0; padding:0; padding-bottom:1px; text-transform:none; }
#nav ul li.parent { background:url(../images/nav_parent_arrow.gif) no-repeat 100% 50%; }
#nav ul li.last { padding-bottom:0; }
#nav ul li.active { margin:0; border:0; background:none; }
#nav ul a,
#nav ul a:hover { float:none; padding:0; background:none; }
#nav ul li a { font-weight:normal !important; }

/************ 2ND LEVEL ************/
#nav ul { position:absolute; width:15em; top:22px; left:-10000px; border:1px solid #bbb; border-bottom:2px solid #999; padding:3px 8px; background:#fcfcfc; font-size:11px; }

/* Show menu */
#nav li.over > ul { left:-1px; }
#nav li.over > ul li.over > ul { left:100px; }
#nav li.over ul ul { left:-10000px; }

#nav ul li a { padding:3px 0; color:#444 !important; }
#nav ul li a:hover { padding:3px 0; color:#5a7f00 !important; }

/************ 3RD+ LEVEL ************/
#nav ul ul { top:5px; }

    /**********************************************Vertical Nav ****************************************/

    #nav_vert { padding:0 8px; font-size:1em; z-index:999; width:180px; background-color: #F6F6F6; }

    /************** ALL LEVELS *************/ /* Style consistent throughout all nav levels */

    #nav_vert li {

    width:200px;

    list-style:none;

    position:relative;

    text-align:left;

    background-color: #F6F6F6;

    border-bottom-width: thin;

    border-bottom-style: solid;

    border-bottom-color: #CCCCCC;

    }

    #nav_vert li.over { z-index:999; }

    #nav_vert li.active { z-index:999; } /* to prevent the li separator from showing through on mouseover on li */

    #nav_vert a { line-height:1.3em; }

    #nav_vert a, #nav_vert a:hover { display:block; text-decoration:none; }

    #nav_vert span { display:block; cursor:pointer; color: #000; }

    /************ 1ST LEVEL ***************/

    #nav_vert li { float:left; background:url(../images/nav_bg.gif) repeat-x 50%; height:30px; margin-right:1px; }

    #nav_vert li.active a { color:#4c6a16; }

    #nav_vert a {

    float:left;

    padding:5px 12px 6px 8px;

    color:#4c6a16;

    font-weight:bold;

    font-family:Trebuchet MS;

    font-size:13px;}

    #nav_vert li.over a, #nav_vert a:hover { color:#CCCCCC; }

    /************ 1ST LEVEL RESET ************/

    #nav_vert ul li, #nav_vert ul li.active {

    float:none;

    height:auto;

    background:none;

    margin:0;

    }

    #nav_vert ul a, #nav_vert ul a:hover {

    float:none;

    padding:0;

    background:none;

    }

    #nav_vert ul li a { font-weight:normal !important; }

    /************ 2ND LEVEL ***********/

    #nav_vert ul {

    position: absolute;

    width:200px;

    margin-left:180px;

    top:0px;

    left:-10000px;

    border:1px solid #666666;

    }

    /* Show menu */

    #nav_vert li.over ul { left:0; }

    #nav_vert li.over ul ul { left:-10000px; }

    #nav_vert li.over ul li.over ul { left:100px; }

    #nav_vert ul li a { background:#FFFFFF/*#ecf3f6*/; }

    #nav_vert ul li a:hover { background: #F2F1D2; /*#d5e4eb;*/ }

    #nav_vert ul li a span { background:url(../images/nav_divider.gif) repeat-x 0 100%; }

    #nav_vert ul li a, #nav_vert ul li a:hover { color:#2f2f2f !important; }

    #nav_vert ul span, #nav_vert ul li.last li span { padding:6px 15px 6px 15px; }

    #nav_vert ul li.last span { background:none; }

    /************ 3RD+ LEVEL ************/

    #nav_vert ul ul { top:5px;}

    #nav_vert ul ul ul { left:-10000px;}

    #nav_vert li.over ul li.over ul ul { left:-10000px;}

    #nav_vert li.over ul li.over ul li.over ul { left:100px; }

       /* Fix for the IE bug */

    #nav_vert iframe {

    position: absolute;

    left: -1px;

    top: 0;

    z-index: -1;

    filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);

    }

Step 4

copy top.phtml from the base/defualt/template/catalog/navigation to your custom template folder ie app/design/frontend/YOURDESIGN/YOURDESIGN/template/catolog/navigation/top.phtml replace top.phtml

Edit your copy of top.phtml so it look like this

<?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    design
 * @package     base_default
 * @copyright   Copyright (c) 2009 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
?>
<?php
/**
 * Top menu for store
 *
 * @see Mage_Catalog_Block_Navigation
 */
?>

In other words delete all the active code.

Step 5

Add the category block to your home page.

lo on to the back end

CMS >> Pages >> Home Page >> design

in the Design Box paste this code

<reference name="left">
    <!--  <block type="catalog/navigation" name="catalog.leftnav" after="currency" template="catalog/navigation/left.phtml"/>-->
        <block type="catalog/navigation" before="-" name="catalog.vertnav" template="catalog/navigation/vert_nav.phtml"/>
</reference>

If you are getting errors about toggleMenu or if the menu appears but the pop out sub-categories do not work you are probably seeing the results of magento dropping support for toggleMenu.

as a quick and dirty fix you can paste:

function toggleMenu(el, over)
{
    if (over) {
        Element.addClassName(el, 'over');
    }
    else {
        Element.removeClassName(el, 'over');
    }
}

in at the start of js/varien/menu.js

Note this is not upgrade proof..

References / credits:
The original post can be found here where one Peter Hamilton provided most of the clever work at a time when people were just starting to come to terms with Magento.
From this post I extracted the complete solutions and created the original wiki entry here this has now been updated by Bill007 to 1.4 compatable and a lot of this post is based on his alterations.
Details how to create an upgrade proof installation by Joshua Barrie full details of which can be read here

Need help?

Having problems? We can install this for you for a small fee.. contact us for details

Looking for Optimised UK Magento Hosting

Rock solid speed and reliability
Robust, reliable, fully backed up, secure UK based Magento hosting for £175 per year. Full details here or Contact us

Related posts:

  1. Create a left hand navigation / vertical category in Magento
  2. Create a left hand navigation / vertical category in Magento
  3. Magento: Move Related Products to centre column in Modern theme
  4. Remove side_logo_promo.gif from header in modern theme for Magento
  5. magento modern theme : HMTL code in the price of the additional product information