使用 Swiftmailer 的自定义 Drupal 8 模块忽略树枝模板

dev*_*old 2 swiftmailer twig 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".
 *
Run Code Online (Sandbox Code Playgroud)

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

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

我已经使用 drush cr 清除了缓存,并清除了 config->performance 部分中的所有缓存。我也尝试清除主题注册表,但似乎没有任何区别,因为 swiftmailer 总是退回到使用其全局模板文件。

任何建议将不胜感激。

干杯,

德文

Phi*_*ael 7

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

在此处输入图片说明

如果您选择“当前”并在您位于管理页面时发送邮件,则只会使用管理主题中的 swiftmailer 模板。因此,请确保选择包含自定义 swiftmailer 树枝文件的主题。如果这是您的标准前端主题,您可以选择“默认”。

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