retailCRM Документация

Twig

  1. Справочник доступных twig-фильтров
  2. Справочник доступных twig-функций
  3. Справочник доступных полей объектов
  4. Отмена генерации twig-шаблона
  5. Часто возникающие проблемы

Twig-шаблоны используются для подготовки шаблонов печатных форм, писем, SMS и оповещений. Представляют из себя html-верстку с вкраплениями twig-разметки, поэтому для создания шаблонов необходимы базовые знания html и twig. В системе, как правило, есть ряд заранее подготовленных шаблонов, которые вы можете брать за основу.

См. также:

В twig есть следующие основные конструкции языка:

Внутри функциональных блоков используются теги языка в виде {% tag %} ... {% endtag %}:

В официальной документации twig дана более полная информация по работе с шаблонизатором.

Ниже даны справочники по twig-фильтрам, twig-функциям, а также объектам, доступным в шаблонах системы.

Справочник доступных twig-фильтров

Фильтры можно применять к переменным через вертикальную черту. Примеры использования фильтров:

{{ name|striptags|title }}
{{ list|join(', ') }}

В шаблонах доступна большая часть стандартных фильтров, а также некоторые специальные фильтры. Общий перечень доступных фильтров приведен ниже.

Справочник доступных twig-функций

Пример использования функции range:

{% for i in range(0, 3) %}
    {{ i }},
{% endfor %}

Аналогично фильтрам в шаблонах доступна большая часть стандартных функций, а также некоторые специальные функции. Общий перечень доступных функций приведен ниже.

Справочник доступных полей и методов объектов

В шаблон в зависимости от его типа передается определенный набор объектов. Из объектов можно извлекать и выводить данные, обращаясь к полям и методам объектов.

См. Полный справочник объектов.

Примеры обращений:

{% if order.fromApi %}
    {{ order.getNickName() }}
{% endif %}

Объекты связаны между собой через поля, т.е., обращаясь к полю одного объекта, можно получить другой объект. В таких случаях описание поля в справочнике является ссылкой на объект, который возвращается при обращении к полю.

Пример обращения :

{% if order.getDeliveryType().getCode() == 'russian-post' %}
    {{ order.trackNumber }}
{% endif %}

Отмена генерации twig-шаблона

Могут возникать ситуации, когда требуется отменить генерацию шаблона. Например, мы на триггере хотим отправлять письмо с товарными рекомендациями, но, если никаких рекомендаций для клиента не найдено, то генерацию шаблона письма и его отправку производить не надо. Для отмены следует использовать тег {% cancel %}.

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

{% set recom = best_selling_products() %}
{% if recom|length > 0 %}
  {# выводим рекомендуемые товары #}
{% else %}
  {% cancel %}
{% endif %}

Если срабатывает {% cancel %}, то в журнале действий это будет зафиксировано:

В теге также можно указать сообщение, которое будет зафиксировано в журнале действий.

Пример использования с указанием сообщения:

{% set recom = best_selling_products() %}
{% if recom|length > 0 %}
  {# выводим рекомендуемые товары #}
{% else %}
  {% cancel "Не найдено рекомендованных товаров" %}
{% endif %}

В журнале действий в этом случае будет следующее:

В случае отмены генерации шаблона письма, SMS или печатной формы, которые генерируются вручную, пользователю будет выведено сообщение, указанное в теге {% cancel %}.

Часто возникающие проблемы

1. Как вывести в шаблоне значение пользовательского поля заказа

Для вывода данных из пользовательского поля используйте метод getCustomField. Пример:

{{ order.getCustomField('some_code') }}

В примере some_code — символьный код пользовательского поля.

2. Ошибка при попытке вывести поле заказа, содержащее дату

Речь о проблеме в случае, когда вы видите следующее сообщение об ошибке:

Calling "__tostring" method on a "DateTime" object is not allowed

Дело в том, что при выводе в twig-шаблоне полей заказа (или клиента), которые содержат дату, требуется применять фильтр date, чтобы указать формат вывода даты.

Пример:

{{ order.createdAt|date("d.m.Y") }}

3. Как вывести текущую дату

Для вывода текущей даты используйте фильтр date следующим образом:

{{ "now"|date("d.m.Y") }}

4. Как вывести штрихкод в печатной форме

Вы можете воспользоваться сервисом http://www.barcodes4.me/apidocumentation. Пример подстановки данных:

<img src="http://www.barcodes4.me/barcode/c39/{{ offer.article }}.png" />

Редакция от 12.07.2017 09:09