覆盖YII中的当前主题

时间:2014-12-09 14:35:44

标签: php yii themes

所以我很长时间以来一直在改写当前的主题。出于某些原因,我需要从我的控制器中包含新主题,以及为什么我需要更改当前激活主题。如何覆盖environment.php主要功能的主题索引值

private function _main() {
 return array(
            // Base Path
            'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',
            // Theme Name
            'theme' => 'front_theme',
}

现在在控制器中我想将主题从前面更改为 user_theme

提前致谢。

2 个答案:

答案 0 :(得分:0)

最后我找到了解决方案。要覆盖当前激活的主题,您需要在控制器中创建init函数并提供新主题的名称。这是代码:

public function init()
    {
       Yii::app()->theme = 'user';
       parent::init();
    }

答案 1 :(得分:0)

在Yii 1中,您有不同的方法来配置正在使用的主题。

您可以通过初始化Yii::app()->theme方法中的init()属性方法,找到一种动态方式。

或者您可以为应用程序全局设置主题,这可能是我建议使用的主题,除非您有config/main.php中的具体要求:

return array(
    // ...
    'theme' => 'mytheme'
    // ...
) 

如果在第一个中找不到模板,这将从/themes/mytheme/中选择要使用的主题并回退到/protected/views/

作为最后的建议,如果您要开始一个全新的项目,我建议直接使用Yii 2而不是Yii 1,因为它现在是首选的,而且更多 - 迄今为止的框架版本。