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

Need clarity on Sitecore template values, standard values, and branch templates

这里是相对较新的 Sitecore 开发人员,我想弄清楚一些简单的主题,所以我有几个问题。

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

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

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

谢谢

模板。对于成熟的 .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

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

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

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