Изменения

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

Шаблонизатор VMX::Template

14 байтов убрано, 11:21, 13 июля 2009
Нет описания правки
Уйти от assign_vars(), assign_block_vars(). Передавать, как и в обычных движках, просто хеш с данными $vars. Как, например, в Template::Toolkit. При этом сохранить данные методы для совместимости.
Почистить синтаксис: ликвидировать "преобразования"«преобразования», "вложенный «вложенный путь по переменной" переменной» (->key->index->key->и ти т.п п.), специальный синтаксис для окончания SET, неочевидное обращение к счётчику block.#, tr_assign_* и ти т.п п.
Переписать с нуля компилятор.
== Реализация ==
Путь к переменной теперь может включать в себя числа. Это будут обращения к элементам массивов, в то время как всё остальное - остальное — обращения к элементам хешей.
Вне блока {block} будет иметь значение ARRAY(0x...0x…) т.е. то есть массив всех итераций блока block, а {block.0} будет иметь значение HASH(0x...0x…), т.е. то есть первую итерацию блока block.
<nowiki><!-- BEGIN block --></nowiki>
А внутри блока {block} теперь будет иметь значение HASH(0x...0x…), т.е. то есть уже значение текущей итерации блока block, а {block.#} будет иметь значением номер текущей итерации блока, отсчитываемый с 0, а не с 1, как в старой версии.
<nowiki><!-- END block --></nowiki>
На <nowiki><!-- END другоеимя --></nowiki> после <nowiki><!-- BEGIN block --></nowiki> шаблонизатор выдаст ошибку, "ибо нефиг" «ибо нефиг» (c). Если block в хеше данных - данных — не массив, а хеш - хеш — это значит, что итерация у блока только одна, и тогда <nowiki><!-- BEGIN block --></nowiki> работает как for($expression) {} в Perl.
Операторов '''нет''', но есть функции. Пример:
<!-- IF function(block.key) --><!-- ELSEIF ... --><!-- END -->
<!-- IF NOT block.key -->...<!-- END -->
</pre>
Запись значения переменной:

Навигация