Сейчас я добрался до процессора шаблонов и ушел в ступор. Дело в том, что использовать Smarty я не хочу, для меня интереснее изобрести велосипед самостоятельно. Но с наскоку, как выяснилось, процессор шаблонов не сочинить.
Если бы все ограничивалось только простым отображением строковых переменных, весь процессор шаблонов выглядел бы так:
// $_tplvars = array(variable_name => variable_value); // $text - текст запарсиваемого шаблона $_keys = array_keys($_tplvars); for($i = 0; $i < count($_keys); $i++) { $text = preg_replace('`\{'.$_keys[$i].'\}`S', $_tplvars[$_keys[$i]], $text); } return $text;Но должны быть еще хотя бы две функции в шаблоне. Это цикл и ветвление, без них нормально ни массив отобразить, да и вообще ничего толком без них не сделать. А вот с этим уже начинается жопа. Пример:
{for ...} some text {for ...} some text {/for} {/for} some text {for ...} some text {/for}Тут мы видим обычный пример - два вложенных цикла и еще один просто так. Регулярное выражение не понимает, к какому циклу какой закрывающий тэг {/for} относится, и вырезает в качестве тела цикла все от начала первого до конца третьего. Я вижу тут один выход: без регулярных выражений перебирать весь текст самостоятельно. Ужас %F.
Ну а затем уже все будет просто.