Как установить активный пункт меню для модуля в yii2 adminlte?

Для установки активного пункта меню для модуля в Yii2 AdminLTE вы можете использовать класс Nav из расширения yiibootstrap. Этот класс предоставляет метод isItemActive, который проверяет, является ли текущий пункт меню активным.

Сначала, вам необходимо создать экземпляр класса Nav и определить список пунктов меню для вашего модуля, используя метод items. Каждый пункт меню представляется массивом, который содержит информацию о маршруте, названии пункта и других параметрах.

Вам также необходимо переопределить метод isItemActive класса Nav, чтобы проверить, является ли текущий пункт меню активным для вашего модуля. Внутри этого метода, вы можете использовать метод Route из класса yiihelpersUrl, чтобы получить текущий маршрут и сравнить его с маршрутом пункта меню. Если они совпадают, вы можете вернуть true, что означает, что пункт меню активен.

Приведу пример кода, который покажет, как установить активный пункт меню для модуля в Yii2 AdminLTE:

use yiibootstrapNav;

class MyNav extends Nav
{
    public function isItemActive($item)
    {
        $route = Yii::$app->controller->route;
        $module = Yii::$app->controller->module;

        // Проверяем, является ли текущий пункт меню активным пунктом для модуля
        if (isset($item['url']) && isset($item['url'][0])) {
            $controller = $item['url'][0];
            
            if ($module !== null && $controller === $module->id) {
                return true;
            }
        }
        
        return parent::isItemActive($item);
    }
}

// Создаем экземпляр класса MyNav и определяем список пунктов меню для модуля
$items = [
    ['label' => 'Главная', 'url' => ['/mymodule']],
    ['label' => 'Статьи', 'url' => ['/mymodule/article']],
    ['label' => 'Категории', 'url' => ['/mymodule/category']],
];

echo MyNav::widget([
    'items' => $items,
    'activateItems' => true,
]);

В этом примере, мы создаем экземпляр класса MyNav и определяем список пунктов меню для модуля. Каждый пункт меню имеет свойство url, которое определяет маршрут для пункта. Затем мы выводим пункты меню, используя метод widget.

Метод isItemActive переопределен в классе MyNav для проверки, является ли текущий пункт меню активным для модуля. Мы сравниваем маршрут текущего пункта меню с маршрутом модуля и, если они совпадают, возвращаем true.

Таким образом, активный пункт меню будет выделен в Yii2 AdminLTE для вашего модуля.