Перейти к основному содержимому

Язык шаблонизатора MULTIPUSHED

Введение

Язык шаблонизатора MULTIPUSHED позволяет создавать динамические шаблоны для push-уведомлений. С его помощью вы можете персонализировать сообщения, вставляя динамические данные, использовать условные выражения и циклы для создания сложных шаблонов.

Основные возможности

Шаблонизатор MULTIPUSHED поддерживает три основные функции:

  1. Вставка переменных
  2. Условные выражения
  3. Циклы обработки коллекций

Синтаксис

Вставка переменных

Для вставки значения переменной используйте двойные фигурные скобки:

Здравствуйте, {{name}}!

При обработке шаблона {{name}} будет заменено на соответствующее значение из переданных данных.

Можно использовать вложенные свойства объектов, обращаясь к ним через точку:

Ваш заказ №{{order.id}} на сумму {{order.amount}} руб. оформлен.

Условные выражения

Для добавления условной логики используйте конструкцию @if...@else...@endif:

@if(user.isVip)
Благодарим за лояльность! Ваша скидка составляет {{discount}}%.
@else
Оформите заказ сегодня и получите скидку 5%!
@endif

Поддерживаются следующие операторы сравнения:

  • == - равно
  • != - не равно
  • > - больше
  • < - меньше
  • >= - больше или равно
  • <= - меньше или равно

Логические операторы:

  • && - И
  • || - ИЛИ

Примеры использования:

@if(order.amount > 5000 && order.isRepeated)
Ваша скидка на следующий заказ составит 10%!
@endif
@if(user.lastVisit < "2023-01-01")
Мы скучали по вам! Возвращайтесь в наш магазин.
@else
Спасибо, что вы с нами!
@endif

Циклы

Для обработки коллекций данных используйте конструкцию @for...@endfor:

Вы заказали:
@for item in order.items
- {{item.name}}: {{item.quantity}} шт. - {{item.price}} руб.
@endfor
Итого: {{order.total}} руб.

Внутри цикла вы можете обращаться к элементу коллекции, используя имя переменной, указанное после @for.

Примеры использования

Простой шаблон с переменными

Здравствуйте, {{user.name}}!

Ваш заказ №{{order.id}} успешно оформлен.
Ожидаемая дата доставки: {{order.deliveryDate}}.

С уважением,
Команда MULTIPUSHED

Шаблон с условной логикой

Здравствуйте, {{user.name}}!

@if(order.status == "completed")
Ваш заказ №{{order.id}} успешно выполнен!
@else
Статус вашего заказа №{{order.id}}: {{order.status}}.
@endif

@if(order.amount > 10000)
Вам начислено {{order.bonusPoints}} бонусных баллов!
@endif

С уважением,
Команда MULTIPUSHED

Шаблон с циклом

Здравствуйте, {{user.name}}!

Спасибо за ваш заказ №{{order.id}}!

Состав заказа:
@for product in order.products
• {{product.name}} - {{product.price}} руб. ({{product.quantity}} шт.)
@endfor

Общая сумма: {{order.total}} руб.

@if(order.discount > 0)
Ваша скидка: {{order.discount}}%.
Сумма к оплате: {{order.finalAmount}} руб.
@endif

С уважением,
Команда MULTIPUSHED

Передача данных в шаблон

При отправке push-уведомления вы можете передать данные для шаблона в формате JSON. Например:

{
"user": {
"name": "Иван Петров",
"isVip": true
},
"order": {
"id": "ORD-12345",
"status": "completed",
"amount": 12500,
"discount": 10,
"finalAmount": 11250,
"bonusPoints": 125,
"deliveryDate": "15.06.2023",
"products": [
{
"name": "Смартфон XYZ",
"price": 10000,
"quantity": 1
},
{
"name": "Защитное стекло",
"price": 1000,
"quantity": 2
},
{
"name": "Чехол",
"price": 500,
"quantity": 1
}
]
}
}

Ограничения

  1. Ограничение длины: Учитывайте, что push-уведомления имеют ограничение по длине. Не создавайте слишком длинные шаблоны, особенно при использовании циклов.

  2. Значения по умолчанию: Всегда проверяйте данные на наличие значения. Если переменная не определена, шаблонизатор заменит её пустой строкой.