yii-auth设置主题

时间:2013-02-22 15:01:42

标签: authentication layout module yii themes

我想在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'。

2 个答案:

答案 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.
        ),