Magento添加左侧目录商品菜单导航栏 25 November 2010 17:59 Thursday by 小屋 分享收藏

自己写了一个Magento左侧目录 的实现,跟网上的其他版本不一样。

目标:

首页左侧显示商品目录

内页显示同级目录及父、子目录

商品详细页面显示一路父目录

本范例比较适合综合站使用,当然单独站也兼容。

 

效果:

magento左侧目录效果图1

左侧目录全部展开的情况

magento左侧目录效果图2

展开了二级目录

magento左侧目录效果图3

定位到Magento三级目录

实现:

布局设置,

app\design\frontend\default\default\layout\catalog.xml 加,

<reference name=”left”>
<block type=”catalog/navigation” name=”cms_catalog” template=”catalog/catalog.phtml”/>
</reference>

模板文件,

app\design\frontend\default\default\template\catalog 建catalog.phtml,内容为:

<style>.currentCategory{color:#004cb8; font-weight:bold;}</style>
<!-- /*S_leftNavContainer*/ -->
<div id="leftNavContainer" name="leftNavContainer">
<?php
$_cat        = $this->getCurrentCategory();
$current_cat    = (is_object($_cat) ? $_cat->getName() : '');
$leftNav    = '<ul id="leftNav" name="leftNav">';
switch( $_cat -> getLevel() ){
case '2':
default:
    $leftNav    .= '<li class="leftnav_title"><a href="'.$this -> getCategoryUrl($_cat).'" class="currentCategory">'.$_cat -> getName().'</li>';
    $_categories    = $_cat->getChildrenCategories();
    $leftNav    .= '<ul>';
    foreach( $_categories as $_category ){
        $leftNav    .= '<li class="lefnavtwo"><a href="'.$this -> getCategoryUrl( $_category ).'" >'.$_category -> getName().'</a></li>';
    }
    $leftNav    .= '</ul>';
break;
case '3':
    $_parent    = $_cat -> getParentCategory();
    $leftNav    .= '<li class="leftnav_title"><a href="'.$this -> getCategoryUrl($_parent).'">'.$_parent -> getName().'</a></li>';
    $_categories    = $_parent -> getChildrenCategories();
    $leftNav    .= '<ul>';
    foreach( $_categories as $_category ){
        $leftNav    .= '<li class="lefnavtwo">';
        if( $current_cat == $_category->getName() ){
            $leftNav    .= '<a class="currentCategory" href="'.$this -> getCategoryUrl( $_category ).'" >'.$_category -> getName().'</a>';
            $leftNav    .= '<ul>';
            if( $_category -> hasChildren() ){
                $childCategoies    = $_category -> getChildrenCategories();
                foreach( $childCategoies as $_ccategory ){
                    $leftNav    .= '<li class="lefnavthree"><a href="'.$this -> getCategoryUrl( $_ccategory ).'" >'.$_ccategory -> getName().'</a></li>';
                }
            }
            $leftNav    .= '</ul>';
        }else{
            $leftNav    .= '<a href="'.$this -> getCategoryUrl( $_category ).'" >'.$_category -> getName().'</a>';
        }
        $leftNav    .= '</li>';
    }
    $leftNav    .= '</ul>';
break;
case '4':
    $_parent    = $_cat -> getParentCategory();
    $_pname        = $_parent -> getName();
    $_pparent    = $_parent -> getParentCategory();
    $leftNav    .= '<li class="leftnav_title"><a href="'.$this->getCategoryUrl($_pparent).'">'.$_pparent -> getName().'</h3></li>';
    $_categories    = $_pparent -> getChildrenCategories();
    $leftNav    .= '<ul>';
    foreach( $_categories as $_category ){
        $leftNav    .= '<li class="lefnavtwo">';
        $leftNav    .= '<a href="'.$this -> getCategoryUrl( $_category ).'" >'.$_category -> getName().'</a>';
        if( $_pname == $_category->getName() ){
            $_categories    = $_category -> getChildrenCategories();
            $leftNav    .= '<ul>';
            foreach( $_categories as $_ccategory ){
                $leftNav    .= '<li class="lefnavthree">';
                if( $current_cat == $_ccategory -> getName() ){
                    $leftNav    .= '<a class="currentCategory" href="'.$this -> getCategoryUrl( $_ccategory ).'" >'.$_ccategory -> getName().'</a>';
                }else{
                    $leftNav    .=  '<a href="'.$this -> getCategoryUrl( $_ccategory ).'" >'.$_ccategory -> getName().'</a>';
                }
                $leftNav    .= '</li>';
            }
            $leftNav    .= '</ul>';
        }
        $leftNav    .= '</li>';
    }
    $leftNav    .= '</ul>';
break;
}
$leftNav    .= '</ul>';
echo $leftNav;
?>
</div>
<!-- /*E_leftNavContainer*/ -->
 


这样就实现了Magento左侧目录 的添加。

作者: Sjolzy

--EOF--

引用地址:

相关评论:

  1. gravatar face
    acro_锦年 10 月 31 日 对 “Magento添加左侧目录商品菜单导航栏” 发表最新评论。
    你好,能把这个侧导航的 css js给下俄么,谢谢了,俄的邮箱 327322245@qq.com

    你好,能把这个侧导航的 css js给下俄么,谢谢了,俄的邮箱 327322245@qq.com

      评分:5

  2. 11
    acro_锦年 :

    你好,能把这个侧导航的 css js给下俄么,谢谢了,俄的邮箱 327322245@qq.com

  3. 10
    weecn :

    博主啊,不能不顶你啊

    博主2011-08-05 14:43回复::D
  4. 9
    Magento左侧目录 :

    自己跟着处理下就能搞定啦, 不用花钱买的。

  5. 8
    理想 :

    能卖这种模板卖给我吗?呵呵

    博主回复:Q我,可以帮你弄这功能。
  6. 7
    理想 :

    hi博主,有用这个菜单导航的模板吗? ^_^ ^_^
    感谢博主的文章

    博主回复:有。都在用
  7. 6
    Magento小工 :

    博主如果截个图出来就直观了。

    博主回复:自己备忘的,所以简单记录了,呵呵 有不清楚的可以留言讨论
  8. 5
    Duvetica :

    不错啊。

  9. 4
    dandan :

    灰常好!!顶!!!~o(∩_∩)o ~

  10. 3
    反光 :

    无图无真相啊。请问适合哪个版本?

    博主回复:你跟着做出来了就是真相。。 本范例是在1.4.0.1中实现
  11. 2
    博客之家 :

    感觉挺复杂啊

  12. 1
    婚戒 :

    不错啊。

发表评论:

  给 “Magento添加左侧目录商品菜单导航栏” 评分

广告、无意义的评论必删!