Kentico 10 - 页面更新的自定义操作

Kentico 10 - Custom action on page update

我希望在 Kentico 10 中的内容编辑器更新页面并最终发布时执行自定义操作。

更具体地说,我们有一个自定义产品页面类型,它也是一个 "Updated" 复选框,允许编辑器将其标记为已更新。当发生这种情况(被标记为已更新)时,我想向对该产品已更新的已注册兴趣的用户发送一封电子邮件。

我在浏览文档时发现了全局事件:https://docs.kentico.com/k10/custom-development/handling-global-events/reference-global-system-events#Reference-Globalsystemevents-DocumentEvents

我想知道当编辑器更新产品时使用全局事件拦截保存操作是这里的方法还是有更好的方法。

使用全局事件是一种方法,另一种方法是使用 Kentico 的高级工作流引擎(如果您有 EMS 许可证):

https://docs.kentico.com/k10/managing-website-content/configuring-the-environment-for-content-editors/configuring-workflows/designing-advanced-workflows

您可以创建一个自定义的工作流步骤和操作,编辑人员会将页面放入其中并向感兴趣的人发送电子邮件 - https://docs.kentico.com/k10/managing-website-content/configuring-the-environment-for-content-editors/configuring-workflows/designing-advanced-workflows/creating-custom-action-workflow-steps

如果您没有 EMS 许可证,使用全局事件似乎是可行的方法,但我没有看到必要的更新标志字段,如果产品到达,您可以轻松地检查全局事件处理程序在基本工作流程的 "Published" 工作流程步骤,然后将电子邮件发送给感兴趣的各方。

Kentico 没有开箱即用的这个功能,但我们可以通过为全局事件和调度程序编写自定义代码来实现(如果 No.of 邮件很大)

推荐步骤:

  1. 在事件后发布特定文档时将自定义代码附加到全局事件处理程序

public override void Init() { // Assigns custom handlers to the appropriate events
WorkflowEvents.Publish.After += new EventHandler(DocumentPublishCustomEvent); }

  1. 在自定义代码中,如果发布了所需的页面,则在自定义 table 中输入要发送的电子邮件 [此步骤是可选的,如果只有几封邮件,您可以直接从自定义事件处理程序发送邮件已发送]

3.Implement 自定义调度程序从自定义 table 中选择用户信息并向用户发送电子邮件。

注意:理想情况下,您可以使用电子邮件模板发送电子邮件