iqdev / mail.mjml
从组件生成电子邮件的模块
1.1.1
2023-04-05 19:58 UTC
Requires
- php: >=7.3
- eloquent/composer-npm-bridge: ^5.0.1
- twig/twig: *
Requires (Dev)
- roave/security-advisories: dev-latest
README
Mjml 模板生成器 https://documentation.mjml.io
与其他渲染器一起使用
如果项目连接了其他 twig 模板处理器,则需要禁用模块处理器的注册。需要进入模块设置并禁用“连接模板处理器”属性。
在需要的 twig 对象中注册扩展,通过方法 \Mail\Mjml\Mjml\Service\ExtensionService::compileTwigExtension
获取
在处理文件列表中添加扩展 mjml.twig
$arCustomTemplateEngines['twig'] = [
'templateExt' => ['mjml.twig', 'twig'],
];
使用
在邮件模板中选择“可视化编辑器”模式并连接组件。例如
$APPLICATION->IncludeComponent(
'iqdev:mail.test',
'',
[
'username' => ['Иван', 'Петр']
]
);
在模板中使用组件时,使用扩展名为 mjml.twig 的 template 文件
文件应从 `
{% apply mjml_to_html %} 开始,并以
{% endapply %}`
结束
例如
{% apply mjml_to_html %}
<mjml>
<mj-body>
<mj-section>
<mj-column>
<mj-text>Hello {{ username }}</mj-text>
</mj-column>
</mj-section>
</mj-body>
</mjml>
{% endapply %}
模板中的 Twig
在模板中除了 mjml 语法外,还可以使用 twig 构造,例如循环
<mj-column>
{% for user in username %}
<mj-text>Hello {{ user }}</mj-text>
{% endfor %}
</mj-column>
组件参数传递到模板
template.mjml.twig 模板将接收来自 `
arResult['TEMPLATE_DATA']`
的数据