需要明确Sitecore模板值,标准值和分支模板

时间:2015-08-12 13:20:12

标签: templates sitecore sitecore8

相对较新的Sitecore dev在这里,我试图澄清一些简单的主题,所以我有几个问题。

创建数据模板时:仅填写模板上的值和添加标准值之间的区别是什么?每当您创建该模板的实例时,都不会成为默认值?如果我想确保模板的每个项目都有一定的值,我应该使用哪个以及为什么?什么时候只是填写模板上的值,而不是添加标准值?

分支模板:我需要在创建单个项目时创建一组项目,听起来分支模板非常适合这一点。但是,我最近读到,分支模板中的实例化项目会停止继承它们创建的那一刻。

例如,我有一个名为Store的分支模板,并根据此名称创建一个名为Walmart的项目。然后我通过添加新项目向商店添加功能,但沃尔玛没有获得这些更改?如果这对我的情况有问题。我真的需要保持所有实例化的项目与分支模板一致,并为它们提供新功能。如果我的理解是正确的,我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:4)

<强>模板即可。对于成熟的.NET开发人员来说,将模板视为关于C#类是有意义的 - 它们定义了将在该特定模板上创建的项的数据结构。与C#中的类一样,它们可以被继承,但与C#不同,它们支持多重继承。 关于模板的官方文档非常具有描述性和便利性:https://sdn.sitecore.net/upload/sitecore7/70/data_definition_api_cookbook_sc70_a4.pdf

标准值是模板的一种蓝图原型项。您创建一些默认值,只要您创建该特定模板的项目,就会自动填充这些值。 “标准值”项是模板定义项的子项。您还可以使用令牌 - 动态值,如$ name,$ parentname,$ date,$ time,$ now,$ id和其他(您也可以创建自己的令牌)。请详细了解标准值:http://goo.gl/uUZJZf

enter image description here

分支模板允许您在实例化中重新生成子树,而不仅仅是在分支模板本身中指定的一个项目,还有一些子项(以及这些子项的子项)。如下面的屏幕截图所示,作为分支模板实例化的结果,将创建红框内选择的任何内容:

enter image description here

此外,Sitecore项目不能从分支模板中设置的值继承。它们将始终默认为原始模板的标准值中的值。这是分支的限制(如本SO问题所述:http://goo.gl/PSElYy

据我了解你的情况,你应该有一个名为Store的分支模板(位于/ sitecore / templates / Branches下面的某个地方),并在该项目内重现将在模板用于复制到新模板时创建的确切结构在你的内容中分支。同样,您可以使用遍布分支模板(在任何级别) - 它们将被替换为实际值。同样,当您使用商店分支模板创建Walmart时,您可以使用$ name令牌自动将其显示名称设置为Walmart。