Css И Js Для Модуля

всем привет

можно ли подключать 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 делается.

гут