Romashov
экспериментатор
Свой шаблонизатор
Работаю над тремя ресурсами, использующими один двиг и контент, но 3 разных дизайна и домена. Проблема в интеграции дизайна в двиг. Хотелось бы иметь папочку (файлик шаблона), который бы обрабатывался ядром CMS. А так 3 двига, которые очень неудобно синхронизировать.
Посколько регулярные выражения скорее не знаю, чем знаю, то шаблонизатор делаю на str_replace(); По принципу: массив что заменять, массив замен, из папки шаблона берётся соответствующий файл, производятся замены и выводится в браузер результат.
Обнаружил недостатки:
- куча файлов, что неудобно
- сложность реализации иерархии (точнее огромный объём рутинной работы)
Страница => Логические блоки => Повторяющиеся части блока => Повторяющиеся элементы оформления.
Хотелось бы иметь один файл шаблона, размеченный приблизительно следующим образом:
То есть чистейшей воды аналог XML.
Вопрос один: как его пропарсить, так чтобы в массиве, например, template оказались соответствующие элементы. То есть $template['bottom'] содержал _END_ , а $template['newsdescription']=array("_TEXT_", "topшсlinks"=>array("_LINKS_"));
Очевидна несостыковочка с ключами (некоторые без них, как так?), но пока больше ничего не придумал.
Обработка была бы достаточно несложной - последовательный обход всего массива. Очень надеюсь на помощь, особенно по части регулярных выражений и идеи с ключами.
Работаю над тремя ресурсами, использующими один двиг и контент, но 3 разных дизайна и домена. Проблема в интеграции дизайна в двиг. Хотелось бы иметь папочку (файлик шаблона), который бы обрабатывался ядром CMS. А так 3 двига, которые очень неудобно синхронизировать.
Посколько регулярные выражения скорее не знаю, чем знаю, то шаблонизатор делаю на str_replace(); По принципу: массив что заменять, массив замен, из папки шаблона берётся соответствующий файл, производятся замены и выводится в браузер результат.
Обнаружил недостатки:
- куча файлов, что неудобно
- сложность реализации иерархии (точнее огромный объём рутинной работы)
Страница => Логические блоки => Повторяющиеся части блока => Повторяющиеся элементы оформления.
Хотелось бы иметь один файл шаблона, размеченный приблизительно следующим образом:
Код:
<TOP>
//соответственно вместо файла, отвечающего за верх страницы
_TITLE_ //в котором встречаются элементы для автозамены
</TOP>
<NEWSDESCRIPTION>//начало повторяющегося блока
_TEXT_
<TOPICLINKS>
_LINK_
</TOPICLINKS>//удобно реализуется иерархия
</NEWSDECRIPTION>
<SOFT>
_LINK_ - _TEXT_
</SOFT>
<BOTTOM>
_END_
</BOTTOM>
Вопрос один: как его пропарсить, так чтобы в массиве, например, template оказались соответствующие элементы. То есть $template['bottom'] содержал _END_ , а $template['newsdescription']=array("_TEXT_", "topшсlinks"=>array("_LINKS_"));
Очевидна несостыковочка с ключами (некоторые без них, как так?), но пока больше ничего не придумал.
Обработка была бы достаточно несложной - последовательный обход всего массива. Очень надеюсь на помощь, особенно по части регулярных выражений и идеи с ключами.
){placeholder} <a href=xxx.php?id={id}>bla-bla</a>