1

这是我第一次实现 Sitecore ECM 功能。我已经将一些 html 模板切割成布局和子布局,创建了我需要的数据源,并制作了一个分支模板,其中$name项目设置为模板“AB 可测试消息”。

按照 Frank Rooijen 的博客文章: http: //www.newguid.net/sitecore/2013/building-custom-newsletter-templates-for-sitecores-ecm-2-x/我已经在$nameto go to我的消息根子项,将所有子布局数据源设置为消息根的相关子项。

而且一切正常!

我真正想知道的是子布局的数据源路径在从 ECM Speak 页面的创建/插入操作实例化后如何派生到它们的新位置。

我一直在使用反射器来尝试获得一些洞察力,但我认为我没有在正确的地方寻找。

4

2 回答 2

2

ECM 包在/App_Config/Includes/Sitecore.EmailCampaign.config. 在该文件中,您可以看到添加了一些新的事件处理程序,最值得注意的是:

<event name="item:added">
    <handler type="Sitecore.Modules.EmailCampaign.Core.ItemEventHandler, Sitecore.EmailCampaign" method="OnItemAdded" />
</event>
<event name="item:copied">
    <handler type="Sitecore.Modules.EmailCampaign.Core.ItemEventHandler, Sitecore.EmailCampaign" method="OnMessageCopied" />
</event>

如果您反编译Sitecore.EmailCampaign.dll并查看相应的类并执行代码,您将看到调用MessageRelationsCorrector.CorrectItemRelations()它处理所有工作以替换新创建和复制的消息的数据源的 ID。

于 2014-04-09T16:19:13.847 回答
0

jammykam 恰到好处。

我要添加的一件事(在敲了一会儿头之后)是,即使处理首先对来自 AB 可测试消息或其他电子邮件类型的模板进行检查,项目关系的实际更正仅在以下情况下才会发生电子邮件模板正是AB Testable Message 等内置模板之一。不要尝试拥有自己的派生模板。叹。

于 2014-10-16T23:38:24.180 回答