【发布时间】:2013-05-10 11:42:42
【问题描述】:
我正在使用 CakePHP 1.3 和documentation 中描述的内置电子邮件功能。我有位于 app/views/elements/email/html/reservation.ctp 中的模板的 html 版本,它按预期工作。
$this->Email->template = 'reservation'; // no '.ctp'
我也有一个主题设置,并且大多数主题文件都正确地覆盖了默认文件。我的问题是从主题站点调用时未使用主题电子邮件模板,它仍在使用默认路径中的电子邮件模板文件。
默认在:app/views/elements/email/html/reservation.ctp
主题位于:app/views/themed/myTheme/elements/email/html/reservation.ctp
电子邮件模板分配是否应该自动使用主题而不需要硬编码路径,还是有其他解决方案?其他人有这个问题吗?
【问题讨论】:
-
您是从控制器内部发送电子邮件吗?如果是这样,
view类是否设置为Theme?电子邮件组件将使用与控制器相同的视图类,并且应该也使用相同的主题:参见源代码here。附带说明:您正在从事的项目是新 项目吗? CakePHP 1.3 真的变老了,并且在 CakePHP 2.x 中进行了很多的改进(也在主题上) -
是的,视图在 AppController 中设置为主题。我看到了这个问题。我根据 AppController beforeRender 函数中的 url 设置主题。发送电子邮件永远不会调用 beforeRender 函数,因此永远不会设置主题。创建了一个新函数来设置主题,然后我在 beforeRender 或根据需要调用该函数。感谢您的评论,帮助我澄清了问题。
-
希望我将其发布为答案?
标签: cakephp cakephp-1.3