REMO, почитай страницу по ссылке, что дал
Фанат. там -- полезная инфа по шаблонам.
на самом деле, в моей личной практике ещё ни разу не доводилось "дизайнеру работать отдельно от программера", так что я очень близок к тому, чтобы считать это утверждение очередным мифом.
почему? потому что шаблон -- это всё равно код, а у подавляющего большинства дизайнеров в с кодом дела обстоят плоховато. на то они и дизайнеры. =)
тем не менее, работать с шаблонами очень и очень удобно тебе же самому в первую очередь потому, что когда клиент просит тебя заменить что-то на странице, чаще всего достаточно лишь влезть в шаблон и поправить всё там, и для этого не нужно разбираться в очередной раз в логике работы скрипта, написанного тобой (или даже не тобой) полгода-год назад. и даже если требуется немножко изменить логику, то опять же чаще всего сработает какой-нибудь quick and dirty hack, когда ты просто добавляешь ещё одно поле в массив с данными для шаблона вместо того, чтобы править несколько строчек вывода ХТМЛ-таблицы.
а ещё, клиенты любят сменить полностью дизайн сайта раз в год-два. ты не представляешь, какой это геморрой, когда всё построено не на шаблонах. =)
допустим в шаблон необходимо добавить или убрать какие то псевдотеги...
кажется здесь ты имеешь в виду то, что я называю Driven controller architecture, т.е. когда Контроллер -- твой код -- смотрит в шаблоне список тэгов, которые нужно обработать и генерит данные только для них, не напрягая лишний раз сервер и БД для тэгов, которые не пригодятся.
по-моему такой фичи нет в большинстве шаблонизаторов, написанных на РНР. в своём же
php_templates я ввёл ф-цию tmpl_structure() специально для этого.
совсем недавно я наткнулся на интересную идею реализовать шаблонизатор на DOM-функциях. это может сработать, т.к. Дизайнер будет делать странички в том же Дримвивере, лишь назначая нужные ID разным DIV'ам (а это там делается вполне легко и визуально без надобности лезть в код), а Программер грузит ХТМЛ в DOM и легко меняет содержимое нужных элементов:
PHP:
$dom->getElementById('name')->nodeValue = "Petrov";
к тому же DOM вполне предоставляет возможность посмотреть: какие тэги определены, а какие -- отсутствуют в шаблоне.
-~{}~ 03.06.04 12:28:
Фанат, неа, нет правеньев. обращайся к модерам, а я уже давно как не.