Sitecore内容树体系结构
假设在一个项目中存在一个呈现无序列表的表示组件(可能称为ListRenderer)。我们有两个选项可以向页面上的任何给定ListRenderer提供数据:Sitecore内容树体系结构,sitecore,hierarchy,sitecore6,Sitecore,Hierarchy,Sitecore6,假设在一个项目中存在一个呈现无序列表的表示组件(可能称为ListRenderer)。我们有两个选项可以向页面上的任何给定ListRenderer提供数据: 在内容项上有一个TreeList(或TreeListEx)字段,并从中读取ListRenderer 通过演示文稿详细信息向ListRenderer提供数据源(或其他参数) 我通常在项目中避免使用#1,因为它将子布局绑定到模板,这会变得非常混乱。如果您沿着这条路走下去,最终您将拥有支持项目中每个潜在子布局的字段 因此,我的解决方案倾向于选项2,
有没有行业公认的方法来解决这个问题?它总是发生在项目中,在我的头脑中,我很难在这样的情况下平衡技术和内容作者的关注。正如Mark所评论的,没有真正的行业标准 我觉得这是需要改进的。 特别是当您使用DataSource选项时,事情对编辑器的透明性会降低,而且随着站点的大小增加,复杂性也会增加 我能告诉你的就是我会怎么做,这很可能和你现在做的很像 1) 对于新闻、事件和faq项目等概述页面,我将把这些项目放在概述项目下面,并使用NewsMover共享源模块自动创建层次结构 2) 我将创建一个全局站点,其中包含跨站点或页面共享的项目。组件的数据源项将放在这里 3) 对于标准值上存在的组件,我将向模板添加一个列表字段(例如,当您在内容页上显示相关项时) 大多数情况下,这是一个合乎逻辑的选择,有时只是品味的问题 我想补充一点,我已经写了一篇关于如何为基于标准值设置的组件自动创建数据源项的文章。如果您正在使用这些,这可能会对您有所帮助 编辑: “我通常在项目中避免使用#1,因为它会将子布局绑定到模板,这会变得非常混乱。如果沿着这条路走下去,最终会有字段来支持项目中的每个潜在子布局。”
今天,我介绍了一种在内容编辑器中隐藏字段和节的方法,如果项目上没有设置需要这些字段的子布局,这有助于避免项目上有大量未使用字段的混乱情况。好问题。我已经使用了你提到的所有技术,这取决于观众和项目的具体情况。问题是,与Sitecore的所有内容一样,它们都是实现相同目标的有效方法,您将很难找到一个在任何情况下都适用的答案 我几乎总是使用#2,但一些内容作者再培训可能是必要的,并确保您为内容作者能够选择的目标添加限制。我已经(在同一个项目中)在根目录附近(在共享内容文件夹中)和相关项下组织了这些项,这取决于我认为可以提供最佳上下文的内容 此外,如果该项目和列表项目下还存在其他子页面,那么我会将列表项目放在一个单独的文件夹中(带有一个常见的“列表项目”图标),并将其重新排序为第一个项目,以便于分离和清晰 如果您想使用任何类型的个性化和DMS,那么您将需要能够切换出数据源,因此您不应该硬编码位置
你也可以(如果你还没有)想考虑使用:
如果您以后需要重新构建内容,此功能非常有用
对于需要进行克隆的多站点情况非常有用,或者当列表直接位于项目下方时,可以将其设置为标准值中的默认数据源值,但可以灵活地进行更改
我更喜欢亲自使用可伸缩的数据源,我发现XPath语法更合乎逻辑。
简单的答案是“否”,没有行业标准。你提到的所有东西都是常见的东西,即使是经验丰富的SITECORE开发人员也经常考虑。这很大程度上是基于需求的,例如,如果你支持这些模块化子页面的页面编辑器,那么你是WAW。nt方法#2,具有全局共享的数据源文件夹。如果他们使用内容编辑器并且不喜欢演示细节,有时子项会使其更容易。您需要选择一种方法并在每个项目上强制使用它,或者根据对编辑器的要求定义每个项目的方法(我的首选)你会得到关于这个问题的创造性解决方案的检查和建议。我很想听听其他人对此的看法——这似乎是一个相当可靠的想法。