Как и где включить js и css для модулей?

У меня есть модули для категории:

+modules/
 +category/
    +assets/
      +css/
      +js/
      +images/
    +components/
    +controllers/
    +models/
    +views/
    -CategoryModule.php

Каков наилучший способ включить CSS и JSS во все виды?

5 ответов

Решение

Опубликовать и зарегистрироваться в CategoryModuleinit Метод - это сделает ваши CSS и JS в модуле категории.
Что-то вроде этого:

public function  init() {
    $path = $this->assetManager->publish(Yii::getPathOfAlias('application.modules.category.assets'));
    $this->clientScript->registerCssFile($path . '/css/some-css.css', 'screen, projection');
    $this->clientScript->registerScriptFile($path . '/js/some-js.js');
}

Создайте файл макета модуля в разделе views/layout и назовите его в файле конфигурации модуля как

$this->layoutPath = Yii::getPathOfAlias('application.modules.moduleName.views.layouts');
        $this->layout = '/layouts/layoutname';

зарегистрируйте все файлы js и css как упомянутое @PeterM

Создайте папку "макеты" в папке с вашими представлениями. Создайте main.php в этой папке раскладок.

В вашем, добавьте следующий код:

<link rel="stylesheet" href="<?php echo Yii::app()->request->baseUrl; ?>/css/style.css" type="text/css" media="screen"/>
<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/cycle.js"></script>

Это ваш макет по умолчанию. Так что добавь,

<?php echo $content; ?>

Это еще один способ включить css и js во все представления.

Легко использовать этот статический метод

<?php Yii::app()->clientScript->registerCssFile(Yii::getPathOfAlias('application.modules.curriculo.assets') . '/bootstrap/datepicker/css/datepicker.css'); ?>
<?php Yii::app()->clientScript->registerScriptFile(Yii::getPathOfAlias('application.modules.curriculo.assets') . '/bootstrap/datepicker/js/bootstrap-datepicker.js'); ?>

Это должно помочь вам:

http://www.yiiframework.com/wiki/249/understanding-the-view-rendering-flow/

Все три раздела (beginContent, container и endContent) объяснены подробно.

Другие вопросы по тегам