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

Обновлено Jan 19, 2026

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