Quote from: Mangust at Oct 16, 2010, 11:17 AM
Мне это надо и мне это интересно.
Дайте подсказку, как это сделать? С чего начать? Какие функции копать и какой алгоритм можете предложить.
Конкретные примеры относятся к MODx EVO... Общее направление (возможно, от идеала далёкое, но к решению приведёт... вопрос цены

)
Общий алгоритм простой - условиться, какие конструкции как обрабатываются ({for i=1;10}<li></li>{/for}) и написать функцию(несколько? класс? несколько?), которая будет их обрабатывать. Как шаблонизаторы писать - статей куча.. Копать в инете по запросу "пишем php шаблонизатор". Откидывать или нет готовых монстров типа Smarty - не знаю.. вдруг это именно то, что нужно... Можно за основу какой-нибудь простенький взять... главное, чтоб "спецсимволы" не пересекались с системными...
В MODx (EVO) за парсинг документа отвечает класс DocumentParser - искать в /manager/includes/document.parser.class.inc.php
около 1000 строки:
// replace HTMLSnippets in document
$source= $this->mergeChunkContent($source);
Вот в функции mergeChunkContent, можно "пошаблонить". (Например, можно перед
вставить обработку получившегося шаблона... остаётся придумать, где брать и как передавать для него различные данные:
В чанк вида
<ul>
{foreach data}
<li><a href="[[+link]]">[[+title]]</a></li>
{/foreach}
</ul>
надо передать несколько LINK-ов и столько же TITLE-ов.. Как? В каком виде их получить, например, от Ditto?
ps. Даже если ощутимого результата (в виде шаблонизатора) не будет, MODx станет намного ближе