受信者に基づいてテキストが動的に変化する約 50 の異なる電子メール テンプレートがあります。考えられるすべてのケースに対して異なるテンプレートを作成し、数十の異なるコントローラー ファイルに同様のロジックを含めるのではなく、各テンプレート内にケースの切り替えを含め、ケースを決定する変数をすべてのメールに適用したいと考えています。
たとえば、典型的なテンプレートは次のようになります。
<? if ($case) { ?>
<p> text variation 1 </p>
<? } else { ?>
<p> text variation 2 </p>
<? } ?>
$case
beforeEmail($to_address)
受信者の電子メールに基づいてケースのすべての計算を行う関数によって設定されます。これらの計算は、すべてのメールで同じです。beforeEmail()
メールが送信されるたびに呼び出されるようにするにはどうすればよいですか? より正確には、関数をどこに配置すればよいでしょうか?beforeEmail()
通常、この種のコードはビュー ファイル コントローラーに貼り付けますが、電子メールのビュー ファイルにはコントローラーがありません。どこかで静的関数を作成しbeforeEmail()
て各ビューファイルで呼び出してみましたが、それは面倒で間違っているようです (ビューファイル内での関数呼び出しと、50 以上のファイルでのコードの重複が残ります)。
編集:$case
レイアウトファイルで変数を設定しようとしましたが、電子メールビューファイルの後にレイアウトが読み込まれることが判明したため、レイアウト内に設定された変数はビューファイルで使用できません。