将ContentItems集合呈现到多个区域

时间:2015-12-02 16:54:04

标签: orchardcms placement

我有一个分类术语,用于在我的网站(产品,博客帖子等)中显示许多相关的内容类型。

我创建了一个Alternate来显示Term,但ContentItems集合包含多种内容类型(Blog Posts,Products等)。

这意味着使用Term_Part形状的所有项目都在同一区域中呈现。链接的博客帖子需要显示在与我链接的产品完全不同的区域中。

目前我正在迭代ContentItems集合并对ContentType进行过滤,但是是否可以使用Placement.info在多个区域中显示部件?

或者更好的是,控制ContentItems集合中的哪些ContentTypes应显示在哪个区域?

对于冗长的问题感到抱歉 - 请询问是否需要进一步解释

1 个答案:

答案 0 :(得分:0)

您应该可以对要放置的每种内容类型使用类似的内容:

<Match ContentType="BlogPost">
  <Match Path="/MyTaxonomy/*">
    <Match DisplayType="Summary">
      <Place Parts_Title_Summary="/RelatedBlogs:1"/>
    </Match>
  </Match>
</Match>

注意/,这意味着它被放置在全局区域(Layout.cshtml)中。在该文件中添加:

@if (Model.RelatedBlogs != null)
{
    @Zone(Model.RelatedBlogs)
}

这将在ContentItems集合中留下<li>。我的工作是创建TermPart- [MyTaxonomy] Term.cshtml并将其留空,但这只有在您不留下任何内容项时才有效。

作为一个注释,我添加了匹配路径而没有测试它,所以希望这是有效的。在添加匹配路径之前,我遇到了一个问题,即每当显示博客摘要时都会将博客标题分派到该区域。