3

我正在考虑使用 Sitecore 6.4 的新克隆功能来帮助为多站点、多语言解决方案重用组件和内容。

基本思想是在 Sitecore 中创建一个中央内容存储库(可能有多种语言),然后可以将其克隆以提供区域站点,每个站点都有自己选择的受支持语言。这背后的想法是允许区域轻松复制他们需要的内容并获得所有权。通过克隆,他们将能够在不影响源数据的情况下在需要的地方编辑数据,选择省略与他们无关的项目(例如,在他们的国家/地区没有产品的地方),添加完全特定的新内容到他们的国家并翻译成他们希望支持的任何地区方言(例如瑞士法语:fr-CH)等。

尽管大多数语言版本控制在本地进行,但核心站点集将共享其大部分源数据。

有没有人有过这种 Sitecore 部署的经验?有哪些陷阱?

然而,一旦这种结构建立起来,开放式场景就会开始发挥作用。新站点,例如产品发布启动站点,可能会添加到 Sitecore 实例中,我们希望这些站点在适当的情况下共享内容、模板、演示文稿等(尽管程度远低于核心站点)。

虽然克隆允许复制内容,并且可以在其本地实例中修改该内容,但我正在尝试找到一种方法来允许对模板进行类似的过程。是否可以使用模板继承的基本模板功能来创建一层“抽象”模板,该模板将在用于创建项目的具体模板中实例化?同样,这里的想法是在共享核心功能的同时允许本地灵活性。我们的目标是保持一组干净的抽象模板,并且只在它们的本地实例化版本中引入修改。如果从抽象模板派生的所有模板都需要一个新字段,那么可以在抽象级别添加它。

我们希望尽可能使用 Sitecore 开箱即用的功能。

这种方法是否可行,还是我混合了我的范式?当我们仍处于预设计阶段时,我应该考虑什么?我需要为开发人员建立什么样的设计规则?

4

2 回答 2

2

回答我自己的问题,感谢约翰的一些指示。

经过一些研究,并在 SDN 论坛上留下了有用的评论,看来这种方法在很大程度上是可行的。

使用克隆可以创建一个中央数据存储库,而不是将数据物理复制到将共享它的站点。还可以覆盖克隆中的数据以提供本地特定内容。这可以在逐个字段级别上完成,以便克隆项目的一个字段保持从其父项继承,而另一个字段特定于出现克隆的站点。

这将允许本地站点复制默认站点的结构和布局,同时保持对自己的内容要求的灵活性。这也可以跨多种语言实现。

更新:未解决的一个主要问题是如何处理将格式化为 URL 的内部链接。例如,如果链接包含在富文本字段中,它将引用项目的 GUID。克隆时,此 GUID 将相同,即使它指向父结构,而不是克隆结构。编辑链接将破坏该字段的克隆引用,因此对父项的更新不会推送到克隆。这个问题没有简单的解决方法,尽管可以扩展 LinkManager 以查找克隆引用,而不仅仅是生成 URL。这是一个显着的缺点,甚至可能是一个阻碍。

似乎没有任何简单的方法可以实现真正的抽象模板(即没有项目的克隆方法),但可以提供基于一组干净的基本模板的中途解决方案,这些模板可以由本地版本继承。这样做的主要问题是克隆项目将自动与创建其父项的模板相关联,而不是本地版本。将克隆的项目模板更改为本地版本是可能的(如果我们对自定义 Sitecore 克隆过程感到满意,甚至可以自动化)。如果没有自动化,这将不可避免地导致站点维护的增加以及用户出错的可能性。由于本地模板仍将继承自基础“抽象”

这种架构的另一个挑战是确保所有项目引用都是相对的,以便每个站点上的产品链接将指向该站点的产品,而不是中央存储库中的产品数据集。开发人员的设计指南将要求所有数据源的路径都可以在 Sitecore 内直接配置(例如通过使用渲染的数据源字段)。

由于克隆功能仍然相对较新,因此似乎还没有太多经验。然而,这种类型的数据重用是向 Sitecore 添加克隆的原因。

这种方法的主要缺陷似乎是需要全面评估设计对不同本地站点的影响,从而导致开发和代码维护的复杂性增加。

于 2011-02-07T10:26:13.980 回答
1

Sitecore 开发人员网络 (SDN)论坛主题上的一些回复。

于 2011-01-21T18:23:56.680 回答