Php 更改Yii中包含主题的内容

Php 更改Yii中包含主题的内容,php,yii,themes,Php,Yii,Themes,我的问题是下一个:当我在Yii中创建一个应用程序(带有“经典”主题)时,布局的内容在URL/protected/views/layouts中,这对我来说是完美的,当我安装另一个主题(在本例中为bootstrap)时,布局依赖于主题,基本布局在URL/themes/bootstrap/views/layouts中,这对我来说是个问题 第一:因为应用程序只需要管理模块(几个),所以我想要通用应用程序中的通用内容 第二:我需要努力尝试一个主题 第三:因为在将来,主题应该受到用户、用户选择和模块的制约

我的问题是下一个:当我在Yii中创建一个应用程序(带有“经典”主题)时,布局的内容在URL/protected/views/layouts中,这对我来说是完美的,当我安装另一个主题(在本例中为bootstrap)时,布局依赖于主题,基本布局在URL/themes/bootstrap/views/layouts中,这对我来说是个问题

第一:因为应用程序只需要管理模块(几个),所以我想要通用应用程序中的通用内容

第二:我需要努力尝试一个主题

第三:因为在将来,主题应该受到用户、用户选择和模块的制约

我知道视图前置是action->controller->theme->module->parent module->default->none

所以我认为这应该很容易

public $layout='main';
在SiteController的顶部,(/protected/controlers),但得到的“主”布局是引导式布局

为了将所有应用程序模块化,我希望“主要”应用程序和每个模块都有独立的主题(在某些情况下是相同的),当然,不必为每个模块重新制作菜单

我相信它取决于您配置的默认URL

Yii::setPathOfAlias('bootstrap', dirname(__FILE__).'/../extensions/bootstrap');
在/protected/config/main.php中。或其他“URL配置”

有人知道如何在“主要”应用程序和模块中保持与主题无关的内容


非常感谢。

您可以使用以下方法更改控制器中的当前主题(或调用
控制器->渲染之前的任何位置):

Yii::app()->theme = 'yourThemeId';
希望能有帮助