Работа с шаблонами
В October CMS компилирующий обработчик шаблонов Twig (opens new window) имеет дополнительные функции, теги, фильтры и переменные, которые помогают использовать возможности 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}}
. При попытке отобразить ее в шаблоне:
- Проверяется, является ли
foo
массивом, аbar
- допустимым элементом. - Если нет, и если
foo
является объектом, проверяется, чтоbar
является допустимым свойством. - Если нет, и если
foo
является объектом, проверяется, чтоbar
является допустимым методом (даже если bar является конструктором). - Если нет, и если
foo
является объектом, проверяется, чтоgetBar
является допустимым методом. - Если нет, и если
foo
является объектом, проверяется, чтоisBar
является допустимым методом. - Если нет, то возвращается
null
.
# Неподдерживаемые функции
Существуют некоторые функции, которые не поддерживаются в October CMS:
Тег | Аналог в October CMS |
---|---|
{% extend %} | Используйте Шаблоны (opens new window) или {% placeholder %} |
{% include %} | Используйте {% partial %} или {% content %} |