我想在yii-auth模块中使用我的布局。但在那个布局中我有
<?php echo Yii::app()->theme->baseUrl; ?>
因为我需要加载一些css文件和图像。模块yii-auth没有主题集,所以我得到错误,因为没有设置主题“面板”。
Yii-auth设置让我只设置布局,而不是主题。
我可以通过修改yii-auth模块轻松设置它,但是当yii-auth更新时我必须记住这一点。脏了:))
问题是:如何在不调整模块/ auth文件夹的情况下更改yii-auth的主题?
编辑: 我的默认配置是“面板”之外的其他配置。我无法在config / main.php中设置'theme'=&gt;'panel'。
答案 0 :(得分:0)
由于您可以为模块定义自定义布局,您可以执行此操作(例如。文件views/layouts/panel.php
):
<?php Yii::app()->theme = 'panel'; ?>
<?php include(dirname(__FILE__).'/main.php') ?>
这将设置另一个主题,然后只使用主布局文件。
在您的配置中,您应将//layouts/panel
设置为您的身份验证模块的默认布局。
您也可以按文件/视图基础执行此操作,有关示例实现,请参阅this file。
[UPDATE]
请查看https://github.com/schmunk42/multi-theme 您可以为每个控制器路由定义主题。
答案 1 :(得分: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.
),