【发布时间】:2012-12-20 17:15:30
【问题描述】:
假设在一个项目中存在一个呈现无序列表的展示组件(可能称为 ListRenderer)。我们有几个选项可以向页面上的任何给定 ListRenderer 提供数据:
- 在内容项上有一个 TreeList(或 TreeListEx)字段,并让 ListRenderer 从中读取。
- 通过演示详细信息向 ListRenderer 提供数据源(或其他参数)。
我通常在我的项目中避免使用 #1,因为它将子布局绑定到模板,这会变得非常混乱。如果您沿着这条路走下去,最终您将拥有支持项目中每个潜在子布局的字段。
所以我的解决方案倾向于选项#2,它可以解决这个问题。但是,它确实有自己的问题。我应该将这些不同的“列表”放在哪里供给定的 ListRenderer 使用?为了最大限度地重用和共享,我通常在站点根目录附近创建一个包含所有这些类型的东西的组件目录,如果我预测列表将被共享。对于内容作者来说,这似乎不太容易找到并且更难使用,他们突然不知道他们的 ListRenderer 的来源在哪里,除非他们知道如何打开演示详细信息(这对我的普通用户来说有点高级)。
如果我觉得列表不会被共享,并且非常特定于页面,我会将它们直接放在相关项目的下方。但是,这会混淆内容树,并且任何动态生成的导航子布局都必须在生成指向它的链接之前检查项目是否是实际页面。我在 Sitecore 工作的越多,使用这种方法的次数就越少,但对内容作者来说似乎更容易。使用这种方法可以更轻松地获取信息。
是否有任何行业认可的方法来解决这个问题?它一直发生在项目中,在这种情况下,我很难平衡技术和内容作者问题。
【问题讨论】:
-
简单的答案是否定的,没有行业标准。您提到的一切都是常见的事情,即使是经验丰富的 Sitecore 开发人员也经常考虑。它主要基于要求,例如如果您支持这些模块化子布局的页面编辑器,那么您需要使用全局共享数据源文件夹的方法 #2。如果他们正在使用内容编辑器并且不喜欢演示详细信息,则有时子项目会更容易。您需要选择一种方法并将其强制用于每个项目,或者根据编辑的要求定义每个项目的方法(我的偏好)
标签: sitecore hierarchy sitecore6