2
置換変数を使用してメールテンプレートを編集するためのユーザーフレンドリーなソリューションは何ですか?
私は、データベースからユーザーにメールを送信する多くの「管理者/マネージャー」に依存しているシステムに取り組んでいます。主な機能の1つは、同時に複数の人にメールを送信できることです。もう1つの重要な機能は、メールを手作業で作成できることです。これは、毎回わずかに変更する必要がある傾向があるためですが、基本的なテンプレートを使用すると、多くの時間を節約できます。 このため、典型的な「テンプレート」ソリューションがあり、次のようなテンプレートがあります。 Hello {{recipient.full_name}}, Your application to {{activity.title}} has been accepted. You have requested to participate on dates {{application.dates}}, in role {{application.role}} Blah blah blah 私たちが抱えている問題は、(予想どおり)マネージャーが「変数」のアイデア全体を理解していないこと、そしてそれらを上書きするようなことをしていることです。それらは置き換えられず、システムが壊れているか、または「こんにちは{{ジョン}}」のような不可解なものですらある。 大きな問題は、これがいつものように、自動的に送信されるテンプレートの編集にアクセスできるパワーユーザーが数人しかいない "admin"セクションに追いやられておらず、何をしているのかを知っていることが期待されることです。システムのすべてのユーザーがこの問題にさらされます。 明白な解決策は、ユーザーが編集できるようにこのテンプレートを表示する前に変数を置き換えることですが、複数の人にメールを送信する場合は機能しません。 これはかなり一般的な問題のようですが、誰かがすでに解決していることを期待しています。 この問題の適切な解決策をどこかで見た/作成した/思いつくことができますか? 更新 ダニエルBの答えに基づいて私が最終的に行ったのは、カーソル位置とコード内の{{}}の位置に基づいて、ユーザーが現在「変数内」か「外」かを検出することでした。内部では、大きなテキスト領域の下に小さなテキストを表示して、これが置き換えられること、および必要に応じて完全に削除できるが、編集できないことを説明しています。 私はこれをonClick、onChange、onKeyDown、onKeyUpで行います。「キー」イベントの場合、変数内にいる場合、keyCodeがいくつかの「ナビゲーション」キーの1つである場合にのみ、TRUEを返します。それ以外の場合は、FALSEを返します。これにより、その変数の編集が事実上防止されます。 完璧ではありませんが、とても安く、効果があるようです。