用于定制摘要和通知邮件的钩子

我有一位客户希望在摘要邮件和通知邮件中包含广告。我“制作”了一个插件,允许在摘要邮件中添加一些文本(我认为该插件需要更新,以跟上模板的变更)。

我不喜欢为了自定义这些邮件而必须覆盖整个模板的做法。

是否有可能提供一种方式,在不覆盖模板的情况下向这些邮件添加内容?

该插件的工作原理是:通过自定义字段获取一个主题 ID,并将该主题中最新帖子的 raw 内容作为文本添加到邮件中(位于标题之前或之后)。虽然我认为这是一个相当巧妙的技巧,但似乎作为核心功能建议添加显得过于繁琐。也许可以让广告插件能够向摘要和汇总邮件应用内部广告?

管理脆弱的插件

也许我应该编写一个测试规范,比较开启插件但未配置添加任何内容时的摘要邮件,与关闭插件时的摘要邮件?这样我就能捕捉到核心模板的变更。

6 个赞

嘿 Jay

这个插件支持 Discourse 3.1 吗?或者值得测试吗?

你可以试试。我想我自从收到这条消息后就没再收到过他们的消息了,所以我想他们从那时起就没有升级过。

如果它坏了,你可以告诉我。我可能没时间免费修复它,但我也许会。

2 个赞

据我所知,digest_custom_htmldigest_custom_text 已经为 digest.html.erbdigest.text.erb 实现了钩子。那么,实现此请求的基本方法是否涉及添加更多此类钩子?

更高级的实现可以提供子模板,用于向插件作者提供由 Discourse 维护的样式和格式代码。

我是否正确理解,您的实现可以通过在 digest.html.erb 中添加一个 digest_custom_html("before_preheader") 来实现?

我也这么认为。我多年来没有仔细看过它是如何工作的。

@thoka,你通过那些钩子实现了什么吗?我们目前正在通过那些钩子注入一些简单的赞助内容。

我已经完成了。只要你使用 html_safe 生成注入内容,你就没问题了。

相关讨论请参见 Fixing digest_custom_html to be treated as HTML (was: Overriding digest.html.erb)

2 个赞