使用Swiftmailer的自定义Drupal 8模块忽略了twig模板

时间:2017-02-01 23:30:00

标签: twig swiftmailer drupal-8

我已经构建了一个非常简单的模块来学习如何集成swiftmailer模块来发送使用自定义树枝模板的电子邮件。

此处的默认swiftmailer twig模板的副本: http://cgit.drupalcode.org/swiftmailer/tree/templates/swiftmailer.html.twig稍作修改,并按照文件中包含的说明进行了重命名:

 * This template may be overriden by module and/or mail key, using any of the
 * following template names:
 * - swiftmailer.html.twig: global, used by default.
 * - swiftmailer--mymodule.html.twig: only emails sent by the module "mymodule".
 * - swiftmailer--mymodule--test.html.twig: only emails by the module
 *   "mymodule" with key "test".
 *

twig文件的名称是 swiftmailer - emailtester.html.twig ,它位于活动的themes / mytheme / templates文件夹中。

当我执行调用以在 emailtester.module 中发送电子邮件并完成在CoreManager中的ThemeManager.php,twig.engine.php和Render.php文件中进行的调用时,模板路径指向 /modules/contrib/swiftmailer/templates/swiftmailer.html.twig 文件,而不是 /themes/mytheme/templates/swiftmailer--emailtester.html .twig 档案。

我已使用drush cr清除了缓存,并清除了config->性能部分中的所有缓存。我也尝试过清理主题注册表,但似乎没什么好处,因为swiftmailer总是回到使用它的全局模板文件。

任何建议都将不胜感激。

欢呼声,

德文

2 个答案:

答案 0 :(得分:4)

您可能选择了错误的主题用于电子邮件模板:

enter image description here

如果您选择"当前"并且当您在管理页面上时发送邮件,将仅使用来自管理主题的swiftmailer模板。因此,请确保选择包含自定义swiftmailer树枝文件的主题。如果这是您的标准前端主题,您可以选择"默认"。

当然,您必须将Swiftmailer设置为Formatter。

答案 1 :(得分:0)

在您在let path = CGMutablePath() path.addRect(CGRect(origin: .zero, size: UIScreen.main.bounds.size)) path.closeSubpath path.addArc(center: CGPoint(x: 20, y: 20), radius: 10, startAngle: 0, endAngle: 2 * .pi, clockwise: false) path.closeSubpath path.addArc(center: CGPoint(x: 220, y: 20), radius: 10, startAngle: 0, endAngle: 2 * .pi, clockwise: false) path.closeSubpath path.addArc(center: CGPoint(x: 100, y: 300), radius: 12, startAngle: 0, endAngle: 2 * .pi, clockwise: false) path.closeSubpath 挂钩中指定content-type头之前,将不使用模板。喜欢:

module_mail