Динамический контент

Использование тегов для более мощного функционала

Даша Савицкая avatar
Автор: Даша Савицкая
Обновлено больше недели назад

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

Нашли ответ на свой вопрос?