Exebeche
@Exebeche
Осваиваю программирование

Как подменить переменную из расширения dmstr/AdminLTE?

Заметил, что в меню dmstr/AdminLTE подставляет свои классы-не классы и это немного мешает постоянно обновляемому FontAwesome - некоторые иконки никак не хотят отображаться.
Нашел в коде переменную, которая подставляет этот префикс и хочу его изменить на "пусто-пусто". Можно, конечно, в самом коде dmstr/AdminLTE это подправить, но это изменение слетит при обновлении dmstr/AdminLTE...
Подскажите, как можно переопределить эту переменную в представлении?
  • Вопрос задан
  • 135 просмотров
Решения вопроса 2
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
Если нужно ни один раз, то советом выше, если нужно глобально, то я использую через DI контейнер и подменяю настройки глобально для любого класса. Например, вот так:
namespace app;

class Bootstrap implements \yii\base\BootstrapInterface
{

    /**
     * Bootstrap method to be called during application bootstrap stage.
     *
     * @param \yii\base\Application $app the application currently running
     */
    public function bootstrap($app)
    {
        $this->gridViewSetting();
    }

    /**
     * Применение настроек для yii\grid\GridView и yii\widgets\DetailView
     */
    protected function gridViewSetting()
    {
        $gridSetting = [
            'tableOptions' => ['class' => 'table table-condensed'],
            'options' => ['class' => 'table-responsive'],
            'summary' => false
        ];
        \Yii::$container->set('yii\grid\GridView', $gridSetting);

        $viewSetting = [
            'options' => ['class' => 'table'],
        ];
        \Yii::$container->set('yii\widgets\DetailView', $viewSetting);


    }
}


Я сделал отдельный класс загрузки Bootstrap и подключил его в конфиге. Далее в нем подменяю нужные параметры глобально. В вашем случае будет так:

<?php

namespace app;

class Bootstrap implements \yii\base\BootstrapInterface
{

    /**
     * Bootstrap method to be called during application bootstrap stage.
     *
     * @param \yii\base\Application $app the application currently running
     */
    public function bootstrap($app)
    {
        $MenuSetting = [
            'iconClassPrefix' => '',
        ];
        \Yii::$container->set('dmstr\widgets\Menu', $MenuSetting);
    }

}
Ответ написан
Exebeche
@Exebeche Автор вопроса
Осваиваю программирование
А сам и нарыл ))
Мож еще кому пригодится.
Нужно заменить dmstr\widgets\Menu::widget( на
dmstr\widgets\Menu::$iconClassPrefix = ''; echo dmstr\widgets\Menu::widget(

Ну и в AppAsset подключить свежую ссылку FontAwesome или какого другого иконочного шрифта
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы