slo_nik
@slo_nik

Как подключить BootstrapPluginAsset в отдельном модуле?

Доброй ночи.
На сайте установлена сторонняя тема, чтобы bootstrap не мешал я его отключил полностью в config/web.php
'assetManager' => [
            'bundles' => [
                'yii\bootstrap\BootstrapPluginAsset' => [
                    'js'=>[]
                ],
                'yii\bootstrap\BootstrapAsset' => [
                    'css' => [],
                ],
            ],
        ],

Но админке требуется bootstrap. Админка сделана отдельным модулем.
Я создал файл конфигурации в модуле, подключил его в AdminModule.php
public function init()
     {
         parent::init();
         Yii::configure($this, require __DIR__ . '/config/config.php');
     }

Содержание config.php
return [
    'id' => 'admin',
    'name' => 'TestName',
    'components' => [
        'assetManager' => [
            'class' => yii\web\AssetManager::className(),
            'bundles' => [
                'yii\bootstrap\BootstrapAsset' => [
                    'sourcePath' => '@bower/bootstrap/dist',
                    'css' => ['css/bootstrap.min.css']
                ],
                'yii\bootstrap\BootstrapPluginAsset' => [
                    'sourcePath' => '@bower/bootstrap/dist',
                    'js' => ['js/bootstrap.min.js']
                ]
            ]
        ]
    ]
];

Результат - "0"...
Как подключить bootstrap в модуле? Что я не так делаю?
  • Вопрос задан
  • 734 просмотра
Решения вопроса 1
qonand
@qonand
Software Engineer
Результата и не может быть в текущем варианте, по сути дела Вы подключаете AssetManager c бутсрапом как компонент текущего модуля, а используется AssetManager приложения. Для решения задачи Вы можете применить один из вариантов:
1. При инициализации модуля заменить AssetManager используемый View на необходимый Вам, например так:
$assetManager = new \yii\web\AssetManager([
    'bundles' => [
        'yii\bootstrap\BootstrapAsset' => [
            'sourcePath' => '@bower/bootstrap/dist',
            'css' => ['css/bootstrap.min.css']
        ],
        'yii\bootstrap\BootstrapPluginAsset' => [
            'sourcePath' => '@bower/bootstrap/dist',
            'js' => ['js/bootstrap.min.js']
        ]
    ]
]);
Yii::$app->view->setAssetManager($assetManager);

2. При инициализации модуля переконфигурировать AssetManager приложения
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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