【发布时间】:2011-05-12 13:22:04
【问题描述】:
我正在构建一个数据存储站点,然后我将对其进行整体克隆以提供多个克隆站点,从而实现全局内容的本地化。
我需要做的是确保在存储库站点中的项目之间的所有引用(富文本字段中的链接、用于拉入“相关项目”点的项目引用等)被覆盖以引用到相关的克隆而不是存储库中的原始项目。
这可能涉及例如使用一些额外的逻辑自定义 LinkManager 和 GetItem(itemID) 以找到正确的克隆。
我需要知道的是我需要担心 API 的哪些部分?是否有一个我可以进行的修改将继承链接到 .Net 组件中的富文本字段中的渲染、从下拉列表馈送到子布局的项目引用、通过 XSLT 的渲染等?在克隆站点的上下文中,我需要一个项目 ID 作为其克隆的别名。 Context.Database.GetItem(ID) 在克隆站点上下文中需要返回一个克隆。
我基本上是在寻找一种机制,可以将“Data/Home/Products/Product A”转换为“clone/Home/Products/ProductA”,无论何时何地我在克隆站点的上下文中使用它。
我需要在哪里实现这个逻辑,有多少地方?
交叉发布到 SDN http://sdn.sitecore.net/SDN5/Forum/ShowPost.aspx?PostID=35598
这与之前的问题Handling internal links in Sitecore 6.4 cloned sites 相关,但包含更多细节和更具体的问题。
编辑:虽然理想的解决方案会将此功能置于 Sitecore 深处,但重要的是这仅适用于在实际网站上查看的内容,即它不得干扰 Sitecore 管道,例如创建、克隆和删除项目。
【问题讨论】:
-
那么对于每个克隆的站点,您将在
web.config中创建一个新的<site>def'n 吗?我在这方面做得不多,所以我很好奇你的过程。 -
是的,每个站点都有自己的域(www.example.com、www.example.co.uk 等)和 web.config 中的站点节点。这个想法是能够将内容推送到本地子公司,但让他们控制本地化。我们不希望将所有引用更改为克隆站点内部的手动过程,并且我们不希望破坏从数据存储库的继承。
-
我正在寻找的信息是 sitecore 中确定的项目之间的引用。相对 Xpath 很好,因为数据存储库和克隆之间的内容结构不太可能有很大差异,但是任何存储为 GUID 的引用都需要解释并可能被覆盖。我们可能需要建立替代机制,例如GetItem 然后重新编码,但实际上我只想插入可以在一个地方完成工作的东西。
-
你看到这个项目镜像代码blog.capaxsolutions.co.uk/2010/06/09/…了吗?这并不完全符合您的要求,但它可能会给您一些关于您需要修改什么的想法。
-
谢谢詹姆斯,那里有一些有趣的代码。