2012-05-17 59 views
0

我正在用EE构建一个站点,并且想知道人们对我的情况有什么想法。表达式引擎模板重用

基本上我有3个不同的频道,有类似的数据,当查看需要显示在同一模板上。所以我有一个新闻,艺术家和产品的渠道。当我点击任何一个频道的项目时,无论如何我都需要在相同的模板中显示该数据。

有两种方法我可以想到这样做,但想知道是否有人有更优雅的解决方案。

  1. 检查URL并使用相应的通道打开我的条目标记,然后仅在模板中为该通道使用正确的自定义字段。 (但这意味着我需要为每个通道复制代码)。
  2. 打开我提供的所有通道的条目标记,然后将所有3个自定义字段放在模板中我需要它们的位置。

感谢

+0

您能详细说明“相同模板”和“类似数据”的含义吗?这些频道是共享一个字段组,还是它们实际上包含不同的字段?是单独显示相同的条目,还是只显示页面的周围布局?产品,新闻和事件对我来说听起来像他们会有非常不同类型的内容,因此,领域。 你当前的代码的一些例子会有所帮助。 –

回答

0

通常你要么embed templates或使用snippets来克服这一点。

对于我的解决方案,我有一个名为global_embeds的模板组,它充当我想重用的模板视图的容器。这可能是我的一般页面布局的头部和页脚部分。

然后为一些更微不足道的东西(如项目显示)的片段。

+0

感谢Repox,这就是我要走的路线 – alanablett

0
{exp:channel:entries channel="news|artists|products"} 

    ...shared content... 

    {if channel_short_name == "news"} 
     {my_custom_field_for_news} 
    {if:elseif channel_short_name == "artists"} 
     {my_custom_field_for_artists} 
    {if:elseif channel_short_name == "products"} 
     {my_custom_field_for_products} 
    {/if} 

    ...shared content... 

{/exp:channel:entries} 
1

可以传递变量到你的嵌入功能与embed variables

另外需要注意的是,在确定要加载的内容时,请使用Mark Croxton的Switchee和/或IfElse。先进的条件对性能来说很糟糕。

+0

不错,我不知道Switchee。它看起来也是其他EE问题的一个很好的解决方案。 – alanablett