_category_menu.php 2.15 KB
<?php
    use artbox\catalog\models\Category;
    use yii\bootstrap\Html;
    use yii\web\View;
    
    /**
     * @var View $this
     * @var bool $isHome
     */
    $categories = Category::find()
                          ->with('categories.lang.alias', 'lang.alias')
                          ->where([ 'level' => 0 ])
                          ->all();
?>
<ul class="dropdown-menu <?php echo $isHome ? 'sidebar' : 'sidebar multi-level'; ?>" role="menu" aria-labelledby="dLabel" <?php echo $isHome ? 'id="home-category-anchor"' : ''; ?>>
    <?php
        foreach ($categories as $category) {
            ?>
            <li class="dropdown-submenu <?=empty($category->categories) ? 'no-child-menu' : ''?>">
                <?php
                    echo Html::a(
                        $category->lang->title,
                        '#',
                        [
                            'tabindex' => -1,
                        ]
                    );
                    if (!empty( $category->categories )) {
                        ?>
                        <ul class="dropdown-menu">
                            <?php
                                foreach ($category->categories as $childCategory) {
                                    echo Html::tag(
                                        'li',
                                        Html::a(
                                            $childCategory->lang->title,
                                            [
                                                'category/view',
                                                'category' => $childCategory->lang->alias->value,
                                            ]
                                        ),
                                        [
                                            'class' => empty($childCategory->categories) ? 'no-child-menu' : ''
                                        ]
                                    );
                                }
                            ?>
                        </ul>
                        <?php
                    }
                ?>
            </li>
            <?php
        }
    ?>
</ul>