0

你好!我有许多使用组件覆盖的 joomla 模板。对于某些文章,我使用默认模板,而对于其他文章,我使用带有“?template=zzz”的其他模板。我如何使用模板“zzz”中的其他覆盖而不是“zzz”覆盖中的默认值。

示例:我有一篇文章:“Lorem Ipsum”,我想分配他,名为“zzz”的模板(!!!“ZZZ”不是网站的默认模板,也没有分配给菜单!!!) ,然后我把文章网址“?template=zzz”。现在“Lorem Ipsum”使用名为“zzz”的模板。在“zzz”模板文件夹中,我对 com_content->article(default.php、myskinarticle.php、otherskin.php 等)进行了更多覆盖,并且我想将来自 ZZZ 的覆盖用于“Lorem Ipsum”文章(即不是默认模板,也没有分配给菜单),命名为“otherskin”。我认为这就像“?template=zzz&override=otherskin”。

我怎样才能做到这一点?

4

1 回答 1

2

我认为您需要使用“布局”参数:

http://docs.joomla.org/Component_Views_and_Templates

所以,你的例子可能是 ?template=zzz&layout=otherskin

编辑:

另一种方法是创建一个插件来切换内容(取决于您的 url 中的参数)以显示所需的模板。

看一下:

http://docs.joomla.org/Plugin/Events/Content#onBeforeDisplay

这将允许您在显示之前挂钩内容。

然后,您将能够访问 JFactory::getDocument() 方法以编程方式设置模板,使用类似:

$doc=&JFactory::getDocument(); 
$doc->setTemplate("my_template_name");

祝你好运!

于 2013-01-07T09:27:15.237 回答