从同一个 Yii 代码运行一个站点的两个版本


Running two versions of a site from same Yii code

我的项目有两个版本。对于一个,我使用不同的CSS和索引页面,对于另一个,我使用不同的CSS和索引页面。控制器,模型和组件的其余部分是相同的。唯一的区别是视图(一个或两个文件)和CSS。

有什么办法可以管理吗? Like when the URL is URL1 then use CSS1/View1 folder and when url is URL@ use CSS2/view2 folder. 我已经浏览了 Yii 的模块部分,但我认为它们不是我在这里需要的。

所以现在我开始使用主题。我的文件夹结构是这样的:

 WebRoot
    - assests
    - css
    - images
    - protected
    - themes
      - theme1
        -views
          -site
          -layout
          -template
           - theme1
      -theme2
        -views
          -site
          -layout
          -template 

在我的控制器中,我已经这样做了:

  public function init() {
    if (SITE_TITLE == 'xxxxx')
      Yii::app()->theme = 'theme1';
    else
      Yii::app()->theme = 'theme2';
    parent::init();
  }

正确设置主题。 但是我一直找不到文件,因为渲染器正在受保护中查找。

我认为

,你需要使用主题。以下是文档: http://www.yiiframework.com/doc/guide/1.1/en/topics.theming

讨论
后更新ETwigViewRenderer和处理主题时遇到麻烦

如果你想改变整个布局,也许这是一个好方法:

在 Yii 中设置布局

如果您只想更改 css,他们为什么不依赖请求 uri 或域名?

Yii::app()->getBaseUrl(true)