Работа с шаблонами

В October CMS компилирующий обработчик шаблонов Twig имеет дополнительные функции, теги, фильтры и переменные, которые помогают использовать возможности CMS и получать доступ к информации о страницах внутри ваших шаблонов.

Переменные

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

{{ variable }}

Вы можете использовать выражения в качестве переменных:

{{ isAjax ? 'Yes' : 'No' }}

Вы можете соединять строки при помощи символа ~:

{{ 'Your name: ' ~ name }}

Вы также можете использовать глобальные переменные, которые находятся в переменной this, и перечислены в разделе Переменные.

Теги

Теги являются уникальной особенностью Twig и обернуты символами {% %}.

{% tag %}

Теги обеспечивают более понятный способ описания логики:

{% if stormCloudComing %}
    Stay inside
{% else %}
    Go outside and play
{% endif %}

Используйте тег {% set %} для инициализации переменных внутри шаблона:

{% set activePage = 'blog' %}

Теги имеют разный синтаксис, с которым Вы можете ознакомиться в разделе Теги.

Фильтры

Фильтры действуют как модификаторы переменных и применяются с использованием символа |, за которым следует имя фильтра.

{{ 'string'|filter }}

Фильтры могут принимать аргументы:

{{ price|currency('USD') }}

Фильтры могут применяться последовательно:

{{ 'October Glory'|upper|replace({'October': 'Morning'}) }}

Фильтры перечислены в разделе Фильтры.

Функции

Функция возвращает некоторое значение в результате выполнения фрагмента программного кода.

{{ function() }}

Функция может принимать аргументы:

{{ dump(variable) }}

Функции перечислены в разделе Функции.

Логика доступа

Самое важная вещь, о которой нужно знать при работе с Twig, - это то, как он взаимодействует с PHP. Рассмотрим переменную {{foo.bar}}. При попытке отобразить ее в шаблоне:

  1. Проверяется, является ли foo массивом, аbar - допустимым элементом.
  2. Если нет, и если foo является объектом, проверяется, чтоbar является допустимым свойством.
  3. Если нет, и если foo является объектом, проверяется, чтоbar является допустимым методом (даже если bar является конструктором).
  4. Если нет, и если foo является объектом, проверяется, чтоgetBar является допустимым методом.
  5. Если нет, и если foo является объектом, проверяется, чтоisBar является допустимым методом.
  6. Если нет, то возвращается null.

Неподдерживаемые функции

Существуют некоторые функции, которые не поддерживаются в October CMS:

Тег Аналог в October CMS
{% extend %} Используйте Шаблоны или {% placeholder %}
{% include %} Используйте {% partial %} или {% content %}