Системные константы

Тринадцать значений доступны в любом шаблоне любого модуля — передавать их через TplAssign не нужно, они подставляются платформой сами.

Их можно преобразовывать модификаторами и сравнивать в условиях. Передавать их через TplAssign не нужно, но в шаблоне они ведут себя как обычные переменные: {TEMPLATE|upper} применит модификатор, а {*TEMPLATE==mobi} … {TEMPLATE*} покажет блок только для нужной группы. Подставляются они поздно — на готовом результате модуля (см. «Когда происходит подстановка»).

Пути и оформление

Тег Значение
{ROOT} базовый путь сайта
{PATH} путь к текущей группе шаблонов, то же самое что {ROOT}templates/{TEMPLATE}
{TEMPLATE} имя текущей группы шаблонов
{MELBIS_COPY} готовая ссылка «Powered by Melbis Shop» с номером версии
<link rel="stylesheet" href="{PATH}/statics/bundle.base.css">
<img src="{PATH}/images/design/logo.png">

{PATH} — самый частый из всех: любая ссылка на статику, картинку или бандл строится от него, и при переключении группы шаблонов пути меняются сами.

Язык и локаль

Тег Значение
{LANG} текущий язык страницы
{CHARSET} кодировка проекта
{TIME_ZONE} часовой пояс проекта
<html lang="{LANG}">
<meta charset="{CHARSET}">

Язык и группу шаблонов можно переключить из кода — методами LanguageSet и TemplateSet до вызова Run (см. «Группы шаблонов»).

Сессия посетителя

Тег Значение
{CSRF_TOKEN} токен защиты форм
{PHP_SESS_ID} идентификатор сессии посетителя
<form method="post" action="/order/">
    <input type="hidden" name="csrf" value="{CSRF_TOKEN}">
</form>

Если вместо значения вывелось Hasn't session, значит в корневом скрипте не вызван DefineSession — см. «Сессии и CSRF».

Версии и кеш

Тег Значение
{BUILD} номер сборки проекта — параметр MELBIS_BUILD из config.json
{SCRIPT_VERSION} / {SCRIPT_BUILD} версия и сборка движка, заданы в самой платформе
{LAST_MODIFY} дата последнего обновления кеша страницы в формате HTTP

Различать первые два стоит твёрдо: {BUILD} — ваш проект, он растёт при сохранении файлов в среде разработки и служит меткой версии статики; {SCRIPT_*} — версия самого движка Melbis Shop, к вашему коду отношения не имеет.

<script defer src="{PATH}/statics/bundle.melbis.js?{BUILD}"></script>

Пока номер не изменился, браузер берёт файл из своего кеша; вырос — скачивает заново. Подробнее — в разделе «Сборка статики».

Когда происходит подстановка

Системные теги разрешаются поздно — на готовом результате модуля, уже после кеша и после разбора данных самого модуля. Отсюда практические следствия:

Служебный тег {NULL}

Особняком стоит {NULL} — зарезервированный тег, доступный в любом шаблоне независимо от того, какие данные передал модуль. Сам по себе он всегда выводит пустую строку и служит «носителем» для модификаторов, которым не нужно значение переменной: так модификатор применяют к статичным параметрам, а не к данным из базы (пример со статическим файлом — у модификатора |webp в разделе «Модификаторы»).

{NULL} — обычный тег шаблонизатора: сам по себе пустой, но модификаторы на нём работают, ради этого он и существует.