我有大约 50 种不同的电子邮件模板,其文本会根据收件人的身份而动态变化。我不想为每个可能的案例制作不同的模板并在数十个不同的控制器文件中包含类似的逻辑,而是希望在每个模板中包含一些案例切换并将案例确定变量应用于每封电子邮件。
例如,典型的模板可能如下所示:
<? if ($case) { ?>
<p> text variation 1 </p>
<? } else { ?>
<p> text variation 2 </p>
<? } ?>
$case
将由一个函数设置,该函数beforeEmail($to_address)
根据收件人电子邮件对案例进行所有计算。这些计算对于每封电子邮件都是相同的。beforeEmail()
每次发送电子邮件时,我怎样才能被叫到?或者更准确地说,我在哪里放置一个beforeEmail()
函数?
通常我会将这种代码粘贴在视图文件控制器中,但电子邮件视图文件没有控制器。我已经尝试在beforeEmail()
某个地方创建一个静态函数并在每个视图文件中调用它,但这看起来很混乱和错误(它让我在视图文件中调用函数,并且在 50 多个文件中重复代码)。
编辑:我也尝试$case
在布局文件中设置变量,但事实证明布局是在电子邮件视图文件之后加载的,因此布局内设置的变量不能在视图文件中使用。