首页 文章

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

提问于
浏览
0

我'm using October' s Mail服务,看起来不错 . 但是,我可以用插件甚至主题来创建新的 Mail Layout ,我相信将布局存储在数据库中并不是最好的方法,特别是在开发带有邮件布局的自定义主题或带有邮件布局的插件时(这是我的情况) .

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

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

1 回答

  • 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

    在邮件中,您可以使用迁移文件手动插入 layout name . 并将其用作布局 .

    在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.'
        ];
    }
    

    'rainlab.user :: mail.activate'=> :: {mail . <template-name>}然后提供您的主题 .

    现在当你安装插件时,

    • 迁移文件会将您的布局插入数据库

    • 插件注册将注册您在 registerMailTemplates 方法中定义的视图

    • 现在当您使用此模板时,他们将使用您的 Layouts ,因为您已在模板中设置 "layout='your-layout-code'" .

    您的所有布局和模板现在都在您的模板中,当您安装插件时,它也会注册您的布局和模板 .

    如果有任何疑问请评论 .

相关问题