Zend Framework,为相同的代码库设置多个模板

时间:2013-09-25 16:25:32

标签: php zend-framework

真的不确定问题的标题是否适合整体问题。但是这里有。

我目前拥有的是现有的SaaS项目。我们希望随着时间的推移推出新模板。想想谷歌如何引入新功能。或者其他一些网站可能会“尝试我们的新Beta版本”..类型的东西。好吧,我们想要做同样的事情,然后我们最终将淘汰旧的外观。

有了这个,这个应用程序是建立在Zend Framework之上的,所以通过文档查看我可以弄清楚如何覆盖给定控制器上的模板。但我基本上想做的,可能会利用会话。如果存在,请使用此模板。如果没有,请使用旧的。

是否可以以这种方式覆盖默认模板?现在,例如,默认加载的文件是“tops.phtml”,如果会话存在我想加载“tops_v2.phtml”例如。因此,当找到会话时,它可以将其用作模板而不是“tops.phtml”。

2 个答案:

答案 0 :(得分:1)

Zend Framework 1.x解决方案:

您可以在操作中停用ViewRenderer插件,然后手动选择模板:

public function indexAction(){
      $this->_helper->viewRenderer->setNoRender(true);
      echo $this->view->render("path/to/template/template.phtml");        
}

答案 1 :(得分:0)

我认为布局是你可能想要使用的东西,正如Richie简要介绍的那样。基于这个问题,我猜你还没有使用它们。最终,您可以设计一个定义整个网站外观的布局,然后每个动作模板只会呈现页面的一个片段(将动态放置在布局的内容部分中)。

使用您选择的任何逻辑,您可以指定在给定页面加载中使用的任意数量的布局之一,当然您可以将其存储为用户首选项或其他内容。