Изменения

Перейти к: навигация, поиск

Шаблонизатор VMX::Template/Старая версия

387 байтов добавлено, 12:42, 20 июня 2016
Шаблонизатор VMX::Template [[Шаблонизатор VMX::Template/Старая PHP версия|зародился ]] реализованным на языке PHP, как адаптация шаблонизатора из phpBB2. Далее был развит и переписан на Perl. Далее был [[Шаблонизатор VMX::Template|развит ещё больше]] и переписан с нуля.
VMX::Template — простой и быстрый шаблонизатор, выросший из шаблонизатора phpBB2.
=== Подстановки переменных ===
<code>{переменная} </code> или <code>{переменная->путь} </code> или <code>{переменная/преобразование}</code>
Где переменная — цепочка идентификаторов, разделённая точками. Все, кроме последнего — имена блоков, последний — имя переменной. После имени переменной может идти путь по ней, если она представляет собой хеш или массив. Путь — цепочка идентификаторов или чисел, разделённая стрелками -> Например, <code>{DOMAIN}</code> — подстановка корневой переменной DOMAIN. А <code>{site.url.DOMAIN}</code> — подстановка переменной DOMAIN блока url, вложенного в блок site. А <code>{site.url.CONFIG->rules->0/s}</code> — подстановка первого элемента массива, вложенного в переменную CONFIG блока url, вложенного в блок site, по ключу rules, в HTML-безопасном виде (то есть с преобразованием s, см.ниже).
А преобразование — одно из:
</pre>
Где подстановка — любая допустимая в <code>{фигурных.скобках} </code> подстановкабез фигурных скобок.
Тесты:
</pre>
Конец блока — всегда <code><nowiki><!-- END block --></nowiki></code>.
Пример:
</pre>
И специальный случай: внутри внутреннего блока <code>{inner_block.#} </code> имеет значением номер текущей итерации внутреннего блока, считающийся с 1. Именно <code>{inner_block.#}</code>, а не <code>{block.inner_block.#}</code>.
=== Автоматические контекстные переводы ===
Они доступны в двух вариантах: <code>%Переводимая строка% </code> и <code>{переменная/L}</code>.
Идея в том, чтобы автоматически заменять строки на другие строки в зависимости от их расположения в файле шаблона (контекста).
Соответственно и загружаемые файлы переводов должны содержать просто код, возвращающий хешреф. То есть в простейшем случае — просто хешреф.
 
[[Категория:Sway]]
[[Категория:Perl]]
[[Категория:Архив]]

Навигация