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>

person Logic    schedule 19.07.2017    source источник
comment
Пример того, как мы можем воспроизвести это с помощью чистого PHP, был бы хорош, иначе он сделает это за меня.   -  person Abraham Tugalov    schedule 19.07.2017
comment
Я предполагаю, что это как-то связано с фильтрацией в самом верху кода, который я разместил. Я не прошу никого что-либо делать для меня. Просто покажи мне, чего мне не хватает. Большая часть этого кода даже не нужна для функции, которую я пытаюсь выполнить. Я просто добавил его, чтобы кто-то мог получить полный объем.   -  person Logic    schedule 19.07.2017


Ответы (1)


Код, который я сделал, действительно работает. Я просто пропустил добавление «Якорь -> Да» в конце.

Существует код, в котором это можно сделать глобально, но я хочу контролировать, что отображается, а что нет, поэтому выбор Да/Нет на привязке решает проблему.

Это было (после того, как я вырвал себе волосы, пытаясь заставить его работать) не проблема программирования.

person Logic    schedule 19.07.2017