这是我第一次实施Sitecore ECM功能。我已经将一些html模板切割成布局和子布局,创建了我需要的数据源,并创建了一个分支模板,$name
项设置为模板" AB Testable message"。
关注Frank Rooijen的博文:http://www.newguid.net/sitecore/2013/building-custom-newsletter-templates-for-sitecores-ecm-2-x/我已将$name
中的正文字段设置为转到我的留言根子,将所有子布局数据源设置为相关消息根的子项。
Andit一切正常!
我真正想知道的是,在从ECM Speak页面的创建/插入操作实例化之后,如何将子布局的数据源路径导出到新位置。
我一直在使用反射器来尝试获得一些洞察力,但我不认为我正在寻找合适的位置。
答案 0 :(得分: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()
,它处理所有工作以替换新创建和复制的消息的DataSource的ID
答案 1 :(得分:0)
jammykam就是现场。
我添加的一件事(在敲了一下我的脑袋之后)是,即使处理首先检查模板来自AB Testable Message或其他电子邮件类型,实际更正项目关系仅在电子邮件模板完全其中一个内置模板(如AB Testable Message)时发生。不要尝试拥有自己的模板。叹息。