Наравне с классическими шаблонами тегов %ШАБЛОН% для персонализации (подробнее) наш сервис поддерживает теги в двойных фигурных скобках {{ name }} для формирования дополнительного мощного функционала по динамическому контенту.
ВНИМАНИЕ! Чтобы пользоваться данным функционалом, необходимы базовые знания HTML и хотя бы общее представление о том, что такое языки программирования и шаблонизаторы ;)
Условные операторы
Условные выражения просты и удобны в использовании. Мы позволяем использовать стандартные if, elseif и else, но также добавляем if и elseunless.
Если и elseunless являются ТОЧНЫМ, то и использование {{if! (выражение)}} и {{elseif! (выражение)}} соответственно. Они добавлены как более удобный и понятный синтаксис.
Все блоки if должны быть закрыты тегом {{endif}}.
Переменные внутри условных выражений if не используют и не должны использовать разделители тегов (это может вызвать проблемы с финальной версткой).
Условное выражение может содержать любые операторы сравнения, которые вы бы использовали в языках программирования (==,! =, ===,! ==,>, <, <=,> =). Вы также можете использовать любой из логических операторов (!, not, ||, &&, and, or).
Примеры:
{{ if show_name }}
<p>My name is {{real_name.first}} {{real_name.last}}</p>
{{ endif }}
{{ if user.group == 'admin' }}
<p>You are an Admin!</p>
{{ elseif user.group == 'user' }}
<p>You are a normal User.</p>
{{ else }}
<p>I don't know who you are.</p>
{{ endif }}
{{ if show_real_name }}
<p>My name is {{real_name.first}} {{real_name.last}}</p>
{{ else }}
<p>My name is John Doe</p>
{{ endif }}
{{ unless age > 21 }}
<p>You are to young.</p>
{{ elseunless age < 80 }}
<p>You are to old...it'll kill ya!</p>
{{ else }}
<p>Go ahead and drink!</p>
{{ endif }}
Оператор not
Оператор not эквивалентен использованию оператора !. Они полностью взаимозаменяемы (фактически not переводятся на ! перед тем, как выполняться).
Неопределенные переменные в условных выражениях
Неопределенные переменные в условных выражениях оцениваются как null. Это означает, что вы можете делать такие вещи, как {{if foo}} и не беспокоиться о том, определена ли переменная или нет.
Проверка существования переменной
Чтобы проверить, существует ли переменная в условном выражении, вы используете ключевое слово exists.
Примеры:
{{ if exists foo }}
Foo Exists
{{ elseif not exists foo }}
Foo Does Not Exist
{{ endif }}
Вы также можете комбинировать его с другими условиями:
{{ if exists foo and foo !== 'bar' }}
Something here
{{ endif }}
Выражение exists foo оценивается как истинное или ложное. Следовательно, работает и что-то вроде этого:
{{ if exists foo == false }}
{{ endif }}
Как использовать динамический контент в редакторе?
Чтобы функция динамического контента работала, для полей адресной базы необходимо настроить английские теги (например, сделать тег %NAME% вместо %ИМЯ%):
После этого в письме новый синтаксис {{NAME}} эквивалентен %NAME% (работают оба варианта) и доступны все эти новые возможности с динамическим контентом.
ВНИМАНИЕ! Для использования динамического контента необходимо использовать теги только на латинице. Регистр тега можно делать любой, но соблюдать его при дальнейшей работе. Т.е. если в настройках прописан тег %NAME%, то в новом синтаксисе это {{NAME}}. Если {{name}} - в настройках %name%.
Рассмотрим пример использования тега test в адресной базе:
В редакторе вставляем блок "HTML-код" и переходим в режим редактирования HTML:
Добавляем условия:
В самом редакторе блок с текстом будет выглядеть при редактировании так:
В зависимости от значения поля "test" в базе адресат получит свой вид текста в рассылке.
Помимо обычного текста, функцию динамического контента можно использовать и для визуальных блоков редактора, добавляя в редактировании HTML значения if.