Magento:在子子类别页面上显示左侧类别导航

时间:2017-07-19 19:40:49

标签: php magento

我正在使用Magento Porto主题,需要左侧类别导航(category_nav.html)才能在子子类别页面上显示。我设法让它显示在子子类别页面上,但无法弄清楚如何通过那里。

这是我目前的代码:

    <?php
        $_categories = Mage::getModel('catalog/category')->getCollection()
            ->addAttributeToSelect('*')
            ->addAttributeToFilter('level', 2)
            ->addAttributeToFilter('is_active', 1);
    ?>

    <?php $_count = is_array($_categories)?count($_categories):$_categories->count(); ?>
    <?php
        function cmpCatPosition($a, $b) {
            if ($a->position == $b->position)
                return 0;
            return ($a->position > $b->position) ? 1 : -1;
        }
        function getChildrenCategoriesHtml($_category){
            $children = explode( ",", $_category->getChildren() );
            //usort($children, 'cmpCatPosition');
            $content = '';
            $content .= '<li class="';
            if(!$children[0])
                $content .= 'has-no-children';
            else
                $content .= 'has-children';
            $content .= '">';
            $content .= '<a href="'.$_category->getUrl().'" ';
            $content .= '>'.$_category->getName().'</a>';
            if($children[0]){
                $content .= '<a href="javascript:void(0)" class="plus"><i class="icon-plus-squared"></i></a>';
                $content .= '<ul>';
                foreach($children as $child){
                    $_subcat = Mage::getModel( 'catalog/category' )->load( $child );
                    $content .= getChildrenCategoriesHtml($_subcat);
                }
                $content .= '</ul>';
            }
            $content .= '</li>';
            return $content;
        }
    ?>
    <?php if($_count): ?>
    <div class="block block-category-nav">
        <div class="block-title">
            <strong><span><?php echo Mage::registry('current_category')->getName(); ?></span></strong>
        </div>
        <div class="block-content">
            <ul class="category-list">
            <?php foreach ($_categories as $_category): ?>
                <?php
                if($_category->getIsActive()){
                    echo getChildrenCategoriesHtml($_category);
                }
                ?>
            <?php endforeach ?>
            </ul>
        </div>
    </div>

1 个答案:

答案 0 :(得分:0)

我制作的代码实际上有效。我只是错过了在后端添加“Is Anchor - &gt; Yes”。

有一个代码可以在全球范围内完成,但是我希望控制什么是节目,什么不显示,因此在锚点上选择是/否可以解决问题。

这是(毕竟把我的头发拉到试图使它工作)不是一个编程问题。