Нам нужно добавить класс active для ссылки пункта меню. Для этого создадим свой виджет MenuActive в папке components.
namespace app\components;
use yii\widgets\Menu;
use yii\helpers\ArrayHelper;
use yii\helpers\Url;
use yii\helpers\Html;
class MenuActive extends Menu
{
public $linkTemplate = '<a {activeclass}="" href="{url}">{label}</a>';
protected function renderItem($item)
{
if (isset($item['url'])) {
$template = ArrayHelper::getValue($item, 'template', $this->linkTemplate);
return strtr($template, [
'{activeClass}'=> ($item['active']==1)? 'class="list-group-item active"':'class="list-group-item"',
'{url}' => Html::encode(Url::to($item['url'])),
'{label}' => $item['label'],
]);
} else {
$template = ArrayHelper::getValue($item, 'template', $this->labelTemplate);
return strtr($template, [
'{label}' => $item['label'],
]);
}
}
}
И теперь подключаем его вместо обычного виджета Menu
echo \app\components\MenuActive::widget([
'items' => [
['label' => 'Статьи',
'url' => ['/admin/blog/index'],
'template' => '<a href="{url}"><i class="lni lni-layers mr-2"></i> {label}</a>',
],
],
'itemOptions'=>['class'=>'myclass', 'style'=>'font-size = 12px;'],
]);
Источник:
Перейти