Как отключить ассеты родителя в виджете наследнике?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
i-programmer
Сообщения: 101
Зарегистрирован: 2015.08.24, 18:50

Как отключить ассеты родителя в виджете наследнике?

Сообщение i-programmer »

Есть виджет, наследующийся от `yii\bootstrap4\Modal`. Этот дефолтный виджет подключает у себя скрипты, такие как `bootstrap.js` и `bootstrap.css` определённой версии. А я бы хотел использовать другие версии, но с таким же функционалом, что написан в виджете.

Как можно заменить эти стили конкретно в виджете? Как можно их отменить и не применять стили и скриты родителя?



Сразу скажу, что метод типа:

Код: Выделить всё

'assetManager' => [
		    'bundles' => [
			    'yii\bootstrap\BootstrapPluginAsset' => false,
			    'yii\bootstrap4\BootstrapPluginAsset' => false,
			    'yii\bootstrap\BootstrapAsset' => false,
			    'yii\bootstrap4\BootstrapAsset' => false,
		    ],
	    ],

не работает
i-programmer
Сообщения: 101
Зарегистрирован: 2015.08.24, 18:50

Re: Как отключить ассеты родителя в виджете наследнике?

Сообщение i-programmer »

у родительского виджета был есть трейт, в котором есть метод, в котором подключается ассет

Код: Выделить всё

        /**
	 * @inheritdoc
	 */
	protected function registerPlugin($name) {
		$view = $this->getView();

        BootstrapPluginAsset::register($view);

		$id = $this->options['id'];

		if ($this->clientOptions !== false) {
			$options = empty($this->clientOptions) ? '' : Json::htmlEncode($this->clientOptions);
			$js = "jQuery('#$id').$name($options);";
			$view->registerJs($js);
		}

		$this->registerClientEvents();
	}
Пока ничего лучшего в голову не пришло, кроме как переопределить данный метод, вписав те же самые строки, за исключением подключения ассета.

Увы, хоть какие-либо другие способы не помогают
Ответить