2. Определение шаблона

Мы разработаем сообщение для создателя бронирования, которое состоит из шаблона темы и шаблона основной части.

Создание шаблона темы

Давайте создадим шаблон для темы сообщения, которое будет отправлено создателю бронирования. Этот шаблон будет динамически включать название бронирования, делая тему сообщения персонализированной и релевантной.

Перейдите в экран Message Templates в вашем приложении. Нажмите кнопку Create, чтобы начать создание нового шаблона.

После нажатия кнопки Create, откроется конструктор шаблонов. Вот как настроить шаблон:

  • Name: Введите удобочитаемое название для шаблона, например, Booking Email Subject. Это название поможет вам легко идентифицировать шаблон в списке.

  • Code: Установите код шаблона равным booking-email-subject. Этот код будет использоваться позже для программной ссылки на шаблон.

  • Type: Выберите Plain text в качестве типа шаблона, поскольку строка темы не требует HTML-форматирования.

  • Content: Определите содержание шаблона. Для строки темы используйте следующий формат:

    Booking confirmation for ${booking.title}

    Здесь ${booking.title} - это плейсхолдер Apache FreeMarker, который будет заменен фактическим названием бронирования при создании сообщения.

template subject

После того, как шаблон темы настроен, сохраните его.

Создание шаблона тела письма

Далее мы перейдем к созданию шаблона, который будет формировать тело нашего сообщения. Еще раз нажмите кнопку Create, а затем укажите следующие значения для атрибутов шаблона:

  • Name: Введите удобочитаемое название для шаблона, например, Booking Email Body.

  • Code: Установите код шаблона равным booking-email-body. Этот код будет использоваться позже для программной ссылки на шаблон.

  • Type: Выберите HTML в качестве типа шаблона. Это указывает на то, что шаблон будет содержать HTML-разметку.

  • Content: Определите содержание шаблона. Для этого просто перетащите необходимые элементы из палитры, расположенной в правой части конструктора, непосредственно на холст.

    Создайте шаблон, расположив элементы из палитры так, чтобы он соответствовал следующему содержанию:

    Hello ${booking.creator.firstName}!
    
    Thank you for booking your date and time for ${booking.title}.
    Your time starts at ${booking.startDate?datetime} and ends at ${booking.endDate?datetime}
    
    The booking took place ${today?date}.
    The penalty for false is ${penalty?string.currency}.
    
    Have a nice day,
    Developer team.
    
    Developer
    www.jmix.io

    Этот шаблон отформатирован с использованием принципов шаблонизатора Apache FreeMarker.

    Давайте разберем выражение ${booking.startDate?datetime} в Apache FreeMarker:

    • ${…​}: Это синтаксис интерполяции в FreeMarker. Он указывает FreeMarker оценить выражение внутри фигурных скобок и вставить результат в вывод. Рассматривайте это как плейсхолдер, который будет заменен динамическим значением.

    • booking.startDate: Это ссылка на переменную. В данном случае предполагается, что у вас есть переменная с именем booking, которая является объектом (JPA-сущностью), и у этого объекта есть свойство с именем startDate. FreeMarker использует точечную нотацию для доступа к свойствам объектов.

    • ?datetime: Это встроенная функция в FreeMarker. Она используется для форматирования значения как даты и времени. Символ ? используется для применения встроенной функции к значению слева от него.

      Для получения более подробной информации, пожалуйста, обратитесь к документации FreeMarker.

      template body

Сохраните шаблон.

Резюме

Подводя итоги, в этом разделе вы узнали, как: