MrRiving
(Vlad Imhobet)
1
Здравствуйте. Дело обстоит следующим образом: есть js, css файлы и папка с картинками. Регистрирую их следующим образом:
$cs = Yii::app()->clientScript;
//подключаем jquery, которая идет в комплекте с фреймворком
$cs->registerCoreScript('jquery');
$cs->registerScriptFile(
Yii::app()->assetManager->publish(
Yii::getPathOfAlias('ext.myExtensions').'/jquery-ui-1.8.6.custom.min.js'
),
CClientScript::POS_END
);
Yii::app()->clientScript->registerCssFile
(
Yii::app()->assetManager->publish
(
Yii::getPathOfAlias('ext.myExtensions').'/jquery-ui-1.8.6.custom.css'
)
);
Но вот как папку закинуть не могу понять. Люди добрые, подскажите пожалуйста
diggy
(Digger A)
2
Очень просто, вам всего лишь нужно посмотреть в исходники класа web/CAssetManager.php
А конкретнее на строку 152
else if(is_dir($src))
{
$dir=$this->hash($hashByName ? basename($src) : $src);
$dstDir=$this->getBasePath().DIRECTORY_SEPARATOR.$dir;
if(!is_dir($dstDir) || $forceCopy)
CFileHelper::copyDirectory($src,$dstDir,array('exclude'=>array('.svn'),'level'=>$level));
return $this->_published[$path]=$this->getBaseUrl().'/'.$dir;
}
Т.е. чтобы сделать паблиш директории вам нужно всего лишь указать ёё имя.
MrRiving
(Vlad Imhobet)
3
Спасибо, что откликнулись.
Сейчас переписал все на:
Yii::app()->assetManager->publish(Yii::getPathOfAlias('ext.myExtensions'));
$pathToFile = Yii::app()->assetManager->getPublishedUrl(Yii::getPathOfAlias('ext.myExtensions'));
$cs = Yii::app()->clientScript;
$cs->registerCoreScript('jquery');
$cs->registerScriptFile($pathToFile.'/jquery-ui-1.8.6.custom.min.js',CClientScript::POS_END);
$cs->registerCssFile($pathToFile.'/jquery-ui-1.8.6.custom.css');
Вроде как все работает.
andy_s
(Arekandrei)
4
Нет необходимости во второй строке кода, т.к. метод "publish" возвращает url, по которому можно обратиться к этой директории: http://www.yiiframework.com/doc/api/1.1/CAssetManager#publish-detail
MrRiving
(Vlad Imhobet)
5
Спасибо andy_s. Нужно будет внимательнее читать ман. 