iqdev / mail.mjml
Module for generating emails from components
This package's canonical repository appears to be gone and the package has been frozen as a result.
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
В перечень обрабатываемых файлов twig добавить расширение mjml.twig
$arCustomTemplateEngines['twig'] = [
'templateExt' => ['mjml.twig', 'twig'],
];
Использование
В шаблоне письма выбрать режим "Визуальный редактор" и подключить компонент. Например:
$APPLICATION->IncludeComponent(
'iqdev:mail.test',
'',
[
'username' => ['Иван', 'Петр']
]
);
При использовании компонентов в шаблоне использовать файл template с расширением mjml.twig
Файл должен начинаться с тега `
{% 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']`