всем привет
можно ли подключать CSS и JS файлы в модуле без схемы
-
Yii::app()->assetManager->publish
-
Yii::app()->clientScript->registerCssFile
-
Yii::app()->clientScript->registerScriptFile
всем привет
можно ли подключать CSS и JS файлы в модуле без схемы
Yii::app()->assetManager->publish
Yii::app()->clientScript->registerCssFile
Yii::app()->clientScript->registerScriptFile
Вот подключение в моем модуле:
/**
* Registers the necessary scripts.
*/
public function registerScripts()
{
// Get the url to the module assets
$assetsUrl = $this->getAssetsUrl();
// Register the necessary scripts
$cs = Yii::app()->getClientScript();
$cs->registerCoreScript('jquery');
$cs->registerCoreScript('jquery.ui');
$cs->registerScriptFile($assetsUrl.'/js/core.js');
$cs->registerCssFile($assetsUrl.'/css/core.css');
}
/**
* Publishes the module assets path.
* @return string the base URL that contains all published asset files of Ican.
*/
public function getAssetsUrl()
{
if( $this->_assetsUrl===null )
{
$assetsPath = Yii::getPathOfAlias('ican.assets');
// We need to republish the assets if debug mode is enabled.
if( $this->debug===true )
$this->_assetsUrl = Yii::app()->getAssetManager()->publish($assetsPath, false, -1, true);
else
$this->_assetsUrl = Yii::app()->getAssetManager()->publish($assetsPath);
}
return $this->_assetsUrl;
}
Если честно совсем не понял что значит без схемы.
чтобы не писать в init модуля что-то типа =
$path = Yii::app()->assetManager->publish(
Yii::getPathOfAlias('application.modules.adm1.assets.jscss')
);
Yii::app()->clientScript->registerCssFile($path . '/screen.css', 'screen');
и т.д.
а сразу выводить в лэйауте, типа
<link rel="stylesheet" type="text/css" href="<?php echo бла-бла-бла; ?>/css/main.css" />
Ну если хотите так, вам никто не мешает, но за подключением скриптов придется следить самостоятельно. В layout модуля напишите да и все.
Насчет того что писать в init(), с тем кодом что я скинул это все сводится к
$this->registerScripts();
Я не знаю почему, но подключаю их я не в модуле а в init() контроллеров, тогда это выглядит так:
$this->module->registerScripts();
Я раньше тоже боялся, и писал скрипты прямо в layout, теперь все через cs.
Надо привыкать, в yii2 все через Assets делается.
гут