Наравне с классическими шаблонами тегов %ШАБЛОН% для персонализации (подробнее) наш сервис поддерживает теги в двойных фигурных скобках #{{ 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.