Для установки активного пункта меню для модуля в 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 для вашего модуля.