【发布时间】:2017-08-08 14:13:11
【问题描述】:
我们目前为博客、新闻和事件使用 oob 页面类型。对于这些类型中的每一种,我们都有一个页面,其中包括一个中继器来显示该类型页面的列表。我们还希望有一个包含转发器的页面,该转发器在一个位置显示所有博客、新闻和活动页面,并按创建日期排序。
我在 devnet 上看到过一些旧的 cmets(here、here)说,尽管转发器可以呈现多种页面类型,但在每种页面类型中呈现的字段必须相同。建议的解决方法是在每种页面类型中创建相同的字段,或者创建自定义 SQL 查询并使用查询重复器来呈现数据。我已经这样做了,它工作得很好,但是创建起来非常麻烦并且难以维护。 (例如,如果我们想添加其他页面类型。)任何人都可以建议在 Kentico 10 中提供更开箱即用的方法吗?
更新:
我正在尝试按照 Brenden 的描述完成此任务,但遇到了麻烦。 我的页面结构如下:
Root
.RollupPage (CMS.MenuItem)
..BlogPosts (CMS.Blog)
...January 2017 (CMS.BlogMonth)
....blog post 1 (CMS.BlogPost)
...February 2017 (CMS.BlogMonth)
....blog post 2 (CMS.BlogPost)
..Events (CMS.MenuItem)
...Event1 (CMS.BookingEvent)
...Event2 (CMS.BookingEvent)
我尝试使用通用查看器,但未能让它返回任何数据。
我是这样配置的:
Path: /RollupPage/%
Page types: CMS.BlogPost;CMS.BookingEvent
Hierarchical Transformation: CMS.MenuItem.HierTrans1
HierTrans1 有以下变换:
CMS.BlogPost.Default (Item transformation for type CMS.BlogPost)
CMS.BookingEvent.EventCalendarItem (Item transformation for type CMS.BookingEvent)
这些根本不是定制的;它们是标准的 OOB 转换,因此我可以看到它起作用。
当我查看 RollupPage 时,通用查看器什么也不显示。
我尝试使用具有与通用查看器相同设置的分层查看器。它有点奏效。它显示了我的预订活动,但没有显示任何博客文章。然而,使用相同的博客文章转换 (CMS.BlogPost.default) 和分层查看器,其 Path 设置为 /RollupPage/BlogPosts/% 正确显示了我的博客文章,但显然没有显示我的预订事件。
到目前为止,我得到的结果让我想到 a) 我创建页面的方式是阻止通用查看器遍历整个树和/或 b) 分层查看器要么只运行几个级别很深,或者它也可能被阻止遍历树...当我编辑或查看这些 Web 部件时,没有记录任何事件。
知道我做错了什么吗?
【问题讨论】: