Тринадцать значений доступны в любом шаблоне любого модуля —
передавать их через 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>Пока номер не изменился, браузер берёт файл из своего кеша; вырос — скачивает заново. Подробнее — в разделе «Сборка статики».
Системные теги разрешаются поздно — на готовом результате модуля, уже после кеша и после разбора данных самого модуля. Отсюда практические следствия:
{LANG|upper}) и
условия
({*TEMPLATE==mobi} … {TEMPLATE*}).{NULL}Особняком стоит {NULL} — зарезервированный тег,
доступный в любом шаблоне независимо от того, какие данные передал
модуль. Сам по себе он всегда выводит пустую строку и служит «носителем»
для модификаторов, которым не нужно значение переменной: так модификатор
применяют к статичным параметрам, а не к данным из базы (пример со
статическим файлом — у модификатора |webp в разделе
«Модификаторы»).
{NULL} — обычный тег шаблонизатора: сам по себе пустой,
но модификаторы на нём работают, ради этого он и существует.