Тех возможностей, которые предоставляет twig из коробки недостаточно для полноценного функционирования в битриксе, поэтому библиотека предоставляет ряд дополнительного функционала, который реализован с помощью расширений для twig.
APPLICATION
- экземпляр класса \CMain, который хранится в глобальной переменной$APPLICATION
USER
- экземпляр класса \CUser, который хранится в глобальной переменной$USER
app
- экземпляр класса \Bitrix\Main\Application, если библиотека работает в битриксе с d7result
- массив $arResult, сформированный в компоненте. См. примечания по настройкеextract_result
params
- массив arParams, содержащий параметры компонентаtemplate
- экземпляр класса \CBitrixComponentTemplate для данного шаблонаcomponent
- экземпляр класса \CBitrixComponent для текущего компонента. Следует учитывать, что это не тот класс, который определен в компоненте, а именно \CBitrixComponenttemplateFolder
- путь до директории текущего шаблона относительно DOCUMENT_ROOTparentTemplateFolder
- путь до директории шаблона родительского компонента, если используется комплексный компонент. Эта переменная не учитывает родство шаблонов при использовании, например, функцииextends
в twiglang
- массив языкозависимых переменных текущего шаблона. Будет удалено в версии 1.1
showComponent()
- аналог\CMain::IncludeComponent()
. Данная функция только подключает компонент, но не возвращает результат работы компонента. Если вызывать подключение компонента с помощью объектаAPPLICATION
, то twig пытается вывести возвращаемое этим методом значение, что приводит часто к появлению артефактов в шаблонах.getMessage()
- синоним для функцииGetMessage()
или метода\Bitrix\Main\Loc::getMessage()
, если проект работает с d7bitrix_sessid_post()
иbitrix_sessid_get()
- переменные для генерации подписи с ID сессии в формах, синонимы одноименных функций в битриксеshowNote()
,showError()
иshowMessage()
- синонимы функцийShowNote()
,ShowError()
иShowMessage()
К сожалению, в Битрикс иногда сложно обойтись без использования суперглобальных переменных напрямую в шаблонах, поэтому все суперглобальные переменные из php пробрасываются в каждый шаблон и доступны по именам _SERVER, _GET, _POST, _REQUEST, _SESSION, _COOKIE, _FILES, _ENV и _GLOBALS
С версии 0.5 в библиотеке появились дополнительные удобные функции для работы с шаблонами. На данный момент функция только одна, но их перечень постоянно будет пополняться.
russianPluralForm(int $num, array $words)
Функция помогает в выводе множественного числа для русских слов. К примеру, вам нужно вывести строку "21 билет". Для этого нужно воспользоваться функцией с такими параметрами в twig:
{% set ticketsCount = 21 %}
{{ russianPluralForm(ticketsCount, ['билетов', 'билет', 'билета']) }}
Порядок словоформ запомнить достаточно просто: 0 билетов, 1 билет, 2 билета. Для большинства слов такой порядок будет работать корректно.