ダイジェストと通知メールのカスタマイズ用フック

クライアントから、要約メールや通知メールに広告を含めたいという要望がありました。私は、ダイジェストメールにテキストを追加できるプラグインを「作成」しました(ただし、そのテンプレートに変更が加えられたことに追随させるため、更新が必要だと考えています)。

私は、これらのメールをカスタマイズするためにテンプレート全体を上書きしなければならないことが好きではありません。

テンプレートを上書きすることなく、これらのメールに何かを追加する方法を追加することは可能でしょうか?

このプラグインは、カスタムフィールドにトピックIDを受け取り、そのトピックの最後の投稿のrawをメールに追加するテキストとして使用します(ヘッダーの直前または直後)。これはかなり巧妙なハックだとは思いますが、コア機能として追加するには少し手間にすぎる解決策のように思えます。もしかすると、広告プラグインがダイジェストメールや要約メールにハウス広告を適用できるようにする方法があるかもしれません。

脆弱なプラグインの管理

プラグインをオフにした場合のダイジェストメールと、プラグインをオンにしたがメールに何も追加するように設定されていない場合のダイジェストメールを比較する仕様(spec)を書くべきでしょうか?そうすれば、コアテンプレートの変更を捕捉できるかもしれません。

「いいね!」 6

ジェイさん

このプラグインはDiscourse 3.1で「動作」しますか?それともテストする価値はありますか?

試してみて。このメッセージ以降、彼らから何も聞いていないので、それ以来アップグレードしていないと推測します。

壊れている場合は教えてください。無料では直す時間がないかもしれませんが、直せるかもしれません。

「いいね!」 2

私の理解では、digest_custom_htmldigest_custom_text はすでに digest.html.erb および digest.text.erb のフックを実装しています。したがって、このリクエストの基本的な実装は、これらのフックをさらに追加することになるのでしょうか?

より高度な実装では、サブテンプレートを提供でき、これによりプラグイン作成者は Discourse によって管理されるスタイルとフォーマットのコードを提供できます。

あなたの実装は、digest.html.erbdigest_custom_html("before_preheader") を追加することで可能になると理解していますか?

そう思います。何年もその仕組みを詳しく見ていません。

@thokaさん、フック経由で何か実装できましたか?現在、これらのフックを介して簡単なスポンサーセグメントを挿入することを検討しています。

それを実行しました。html_safe を使用してインジェクションを生成する限り、問題ありません。

Fixing digest_custom_html to be treated as HTML (was: Overriding digest.html.erb) で議論が行われています。

「いいね!」 2