• Magento添加左侧目录商品菜单导航栏


    自己写了一个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左侧目录 的添加。

  • 相关阅读:
    WPF Path使用Geometry数据
    WPF Uri反射加载XAML
    T4模板生成数据库实体DB First
    Unsatisfied dependency expressed through method 'shirFilter' parameter 0 异常排查
    SpringBoot集成多数据源
    SpringBoot整合Flyway数据库版本管理
    阿里云服务器Docket安装RabbitMQ 3.8.12
    Docker 部署阿里云RocketMQ 4.5.1
    SpringBoot 整合EasyExcel 获取动态Excel列名
    SpringBoot 开发提速神器 Lombok+MybatisPlus+SwaggerUI
  • 原文地址:https://www.cnblogs.com/zhouwenwu/p/2473614.html
Copyright © 2020-2023  润新知