【问题标题】:Sitecore ECM 2.1 - branches, sublayouts and dynamic datasourcesSitecore ECM 2.1 - 分支、子布局和动态数据源
【发布时间】:2014-04-09 07:48:39
【问题描述】:

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

按照 Frank Rooijen 的博文:http://www.newguid.net/sitecore/2013/building-custom-newsletter-templates-for-sitecores-ecm-2-x/ 我已将 $name 中的 body 字段设置为转到我的消息根子项,将所有子布局数据源设置为消息根的相关子项。

一切正常!

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

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

【问题讨论】:

    标签: sitecore datasource newsletter sitecore-ecm sublayout


    【解决方案1】:

    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。

    【讨论】:

      【解决方案2】:

      jammykam 恰到好处。

      我要补充的一件事(在我头疼了一会儿之后)是,即使处理首先检查模板来自 AB 可测试消息或其他电子邮件类型,但项目关系的实际更正仅当电子邮件模板完全是 AB 可测试消息等内置模板之一时才会发生。不要尝试拥有自己的派生模板。叹息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多