1

我想在 yii-auth 模块中使用我的布局。但在那个布局中,我有

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

因为我需要加载一些 css 文件和图像。模块 yii-auth 没有设置主题,所以我收到错误,因为主题“面板”没有设置。

Yii-auth 设置让我只设置布局,而不是主题。

我可以通过修改 yii-auth 模块轻松设置它,但是当 yii-auth 更新时我必须记住这一点。这个不干净 :)

问题是:如何在不学习 modules/auth 文件夹的情况下更改 yii-auth 的主题?

编辑:我的默认配置不是“面板”。我无法在 config/main.php 中设置“主题”=>“面板”。

4

2 回答 2

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.
        ),
于 2013-10-13T16:31:50.897 回答
0

由于您可以为模块定义自定义布局,因此您可以这样做(例如 file views/layouts/panel.php):

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

这将设置另一个主题,然后只使用主布局文件。在您的配置中,您应该设置//layouts/panel为您的 auth 模块的默认布局。

您也可以针对每个文件/视图基础执行此操作,请参阅此文件以获取示例实现。

[更新]

请查看https://github.com/schmunk42/multi-theme 您可以为每个控制器路由定义一个主题。

于 2013-03-06T10:25:24.457 回答