OctoberCMS创建自定义邮件布局/邮件部分

时间:2017-12-16 10:08:20

标签: octobercms

我使用十月的Mail服务,看起来不错。但是,我无法在文档中看到它是否可以使用插件甚至主题创建新的Mail Layout,我相信将布局存储在数据库中并不是最好的方法。这样做,特别是在开发具有邮件布局的自定义主题或带有邮件布局的插件时(这是我的情况)。

有没有办法通过代码从头开始创建自定义Mail LayoutsMail Partials(无需使用后端)?

注意:我真的知道邮件模板和邮件(布局/部分)之间的区别,它通过后端与我合作,我只需要一种方法将它们与我的插件捆绑在一起。

1 个答案:

答案 0 :(得分:1)

您可以使用插件迁移文件注册邮件布局,因为现在无法直接从插件配置文件注册它们。

如何插入布局 参考:https://github.com/octobercms/october/issues/2000

  

你可以为邮件部分做同样的事情。它的模型是 System \ Models \ MailPartial

\System\Models\MailPartial::create([
    'is_custom'    => true,
    'name'         => 'Default',
    'code'         => 'default',
    'content_html' => $html,
    'content_text' => $text,
]);

对于模板/视图,您可以将邮件模板放在插件的视图目录中的 mail 目录中。

参考:https://octobercms.com/docs/services/mail#mail-views

在邮件中,您可以使用迁移文件手动插入布局名称。并将其用作布局。

  

plugin.php 配置文件中注册邮件模板。

public function registerMailTemplates()
{
    return [
        'rainlab.user::mail.activate' => 'Activation mail sent to new users.',
        'rainlab.user::mail.restore'  => 'Password reset instructions for front-end users.'
    ];
}
  

<强>&#39; rainlab.user :: mail.activate&#39; =&GT; {plugin-name} :: {mail。&lt; template-name&gt;} 然后提供您的主题。

现在安装插件时,

  1. 迁移文件会将您的布局插入数据库
  2. 插件注册将注册您在 registerMailTemplates 方法中定义的视图
  3. 现在,当您使用此模板时,他们将使用您的布局,因为您已经设置了&#34; layout =&#39;您的布局代码&#39;&#34 ; 在模板中。
  4. 您的所有布局和模板现在都在您的模板中,当您安装插件时,它也会注册您的布局和模板。

    如有任何疑问请发表评论。