2013-02-22 2 views
1

Я хочу использовать в yii-auth модуле мой макет. Но в этом макете у меня естьyii-auth set theme

<?php echo Yii::app()->theme->baseUrl; ?> 

потому что мне нужно загрузить некоторые css-файлы и изображения. Модуль yii-auth не имеет набора тем, поэтому я получаю ошибку, потому что тема «панель» не задана.

Настройки Yii-auth позволяют мне устанавливать только макет, а не тему.

Я могу легко установить это, изменив модуль yii-auth, но тогда я должен помнить об этом при обновлении yii-auth. Его грязный :)

Вопрос: Как я могу изменить тему для yii-auth без tuching modules/auth folder?

Редактировать: Моя конфигурация по умолчанию - это другое, чем «панель». Я не могу установить 'theme' => 'panel' в config/main.php.

ответ

0

Как вы можете определить пользовательский макет для модуля вы можете сделать это (., Например, файл views/layouts/panel.php):

<?php Yii::app()->theme = 'panel'; ?> 
<?php include(dirname(__FILE__).'/main.php') ?> 

который установит другую тему, а затем просто использовать основной файл макета. В вашей конфигурации вы должны установить //layouts/panel как макет по умолчанию для вашего модуля auth.

Вы также можете сделать это на основе файлов/представлений, см. this file для примера реализации.

[UPDATE]

Пожалуйста, посмотрите на https://github.com/schmunk42/multi-theme Вы можете определить тему для каждого маршрута контроллера.

0

В моей заходящего

'appLayout' => 'webroot.themes.bootstrap.views.layouts.main', // the layout used by bootstrap theme. 

в /config/main.php случае сделал трюк

'auth' => array(
      'strictMode' => true, // when enabled authorization items cannot be assigned children of the same type. 
      'userClass' => 'User', // the name of the user model class. 
      'userIdColumn' => 'id', // the name of the user id column. 
      'userNameColumn' => 'username', // the name of the user name column. 
      'defaultLayout' => 'application.views.layouts.main', // the layout used by the module. 
      'appLayout' => 'webroot.themes.bootstrap.views.layouts.main', // the layout used by bootstrap theme. 
      'viewDir' => null, // the path to view files to use with this module. 
     ),