3

有没有办法在 joomla 视图中以编程方式设置模板?

我正在使用 MVC 架构来开发我的组件。我有两个前端模板。1 用于登录用户(模板 B) 其他用于普通访问者(模板 A)。

我遇到的问题是,我有一个供登录用户使用的书店。模板是模板B。书店里面有搜索书的功能。搜索和书店都从我的组件加载。分配给菜单项的书店并使用模板 B 加载。但是当我单击搜索按钮时,它会使用模板 A 显示结果。这意味着模板从模板 B 更改为模板 A。

我网站的默认模板是模板 B。我通过菜单项分配了模板 A。

我正在使用 Joomla 2.5

发生了什么?

4

2 回答 2

2

我遇到了类似的问题,我分别为注册用户和来宾使用了两个模板。我希望仅在特定模板内加载视图,因此我必须以编程方式设置/更改视图内的模板,我尝试使用Itemid但它不可靠,最后经过一番研究,我得到了如下工作......

  $app = JFactory::getApplication();
  $app->setTemplate('Protostar'); //or whatever your template is named.

有了这个,我可以确定这个视图/布局只加载在一个特定的模板中。我已经在上成功使用了它,尽管它可能适用于您的版本。

于 2015-06-10T11:06:53.437 回答
1

我认为,这可以通过使用JSite::setTemplate($template,$templateParams) 方法来完成,但我不确定这是否适用于缓存,需要测试。

于 2013-06-07T08:38:16.450 回答