![]() |
Работа с темплейтами
Как лучше организовать роботу с темплейтами?
Видел такие варианты: 1. Вместо переменный пишут %some_var%, потом реплейсом заменяют их на значения. 2. Пишут $some_var, и выводят с помощью eval. И как реализовать такое: темплейт HTML код:
<table> Легко написать PHP код:
|
Цитата:
А вообще в чем проблема - Вы собираетесь писать свой шаблонизатор, или спрашиваете, как работать с разными готовыми? |
Strange_V
а почему не использовать стандартный шаблонизатор, к примеру XSL ? |
mar
Хочу написать сам. Это для гостевой, там всего то до 10 темплейтов. Цитата:
Vlad Drakula Боюсь стандартный мне слишком громаден, да и интересно сделать самому… Может кто делал или где почитать? |
Strange_V
посмотри в качестве примера код соответствующего файла из библиотки phplib (не в smarty же посылать :)) |
mar
боюсь проще сразу повесится…, чем разобрать этот класс :wacko: Если не сложно, напишите кто какие шаблонизаторы использовал (желательно с ссылками), попробую поковырять. Но неужели все используют готовые (и сложные) решения? |
Strange_V
а какой смысл изобретать свой шаблонизатор когда для этого уже есть специальный(стандартный) шаблонный язык? и при этом написан на С а не на PHP (работает достаточно быстро) вот какой смысл??? |
Strange_V
Vlad Drakula хочет сказать, что использует XML + XSLT + XSL аргументация-объяснения-советы-рекомендации - в упомянутой теме :) я использовала phplib-овские пассивные шаблоны (потому, что они уже использовались в тех проектах, к которым я тогда подключилась) и продолжала их использовать до недавнего времени, поскольку они меня вполне устраивали. Последние пол-года работаю с активными шаблонами smarty (опять-таки, потому, что подключилась к крупному проекту, который живет на smarty). У smarty есть плюсы, но есть и набор минусов. Из моих знакомых-друзей-коллег (кроме варианта, указанного Владом) были еще люди, использущие fastTemplates и php-templates из-за их быстродействия (Последнее, кстати, написано на C, так что работать должны реально очень быстро, но, етественно, из-за этого требуют специальной установки). Цитата:
|
Strange_V,
Цитата:
Vlad Drakula, Цитата:
|
Вложений: 1
Strange_V
Можно выдрать из phpBB. Исходник - смотри прикрепленый файл. Посмотри как он работает и напиши свой! Как работать - там все в комментариях написано. |
Про смешивание кода и дизайна на phpclub-е спорили старожилы, кажется в итоге решили, что без него никак. А стоит начать писать какие-то функции, так получаем php написанный на php :) Так смысл, если сам php и разрабатывался для использования вместе с html кодом. Можно, допустим, загнать таблицу в массив, а в потом его выводить при помощи foreach.
А вообще есть резон и писать велосипеды, и использовать сложные решения. |
Vlad Drakula
Во первых, использую то что хотя б немного знаю (чего не могу сказать о XML + XSLT + XSL) т.е. PHP+HTML. Во вторых, отвечу цитатой с твоего же поста Цитата:
mar Толковое разъяснение, спасибо. benya Может и правильно на счет не заглядывайте к ним внутрь. Хотя я так и не люблю… но наверное придется. Arrest Спасибо, уже смотрю. жаль комменты не русские Igor_I Цитата:
|
Strange_V
Кстати есть совсем простая система темплейтов(даже и не темплейтов, а вывод от PHP): Значится у нас есть некий index.php: PHP код:
Для этого создаем файлик index_design.php, кидаем его в ту же папку где index.php, и в него(index_design.php) пишем: PHP код:
PHP код:
Код:
<html> Что-то очень много написал. Ну ладно. |
Strange_V
1) у меня был коллега который не очень хорошо знал XSL... и вместо него использовал JS... в итоге весь его код был викинут... и заменен на XSL... 2) был опыт написания шаблинизатора который на XML лейаут натянет скин... по разработывали... а потом выкинули и стали использовать стандартный XSL... 3) XSL позволит легко интегрировать разные XML в системму, к примеру ленты новостей в RSS. |
Vlad Drakula,
Цитата:
|
benya
Цитата:
|
Цитата:
|
Vlad Drakula
Цитата:
Знаю, не подходит. Нужны блоки. mar Цитата:
Немного переделал парсер с miniBB (сделал поддержку блоков). Результат не ахти, но в принципе мне подходит (и не надо бросать в меня камнями, что на XSL выйдет много лучше и быстрее :tomato2: ) про скорость, при небольшом темплейте, скрипт крутится около 250 раз в секунду (Cel 1.7, 256MB, WinXP) |
Vlad Drakula,
Ну примерно так... ;)) Код:
#!/usr/bin/perl А на XSL где-то так (||apply-templates): Код:
<xsl:template match="/"> |
benya
а если чтонибуть по сложне... например с группировкой по дню недели? |
Vlad Drakula,
;) 1) День недели представлен в виде "Mon, 18 Sep 2006 14:55:57 +0300" нужно разбирать в любом случае, легче на XSL не будет. 2) Дописать кусочек и складывать все, к примеру, в хэш - ключом которого будет день недели, потом всю структуру распечатать вот и будет у нас все отгруппировано ;) 3) Группировка в XSL 1.0 не такая уж и простая. Особенно если не по одному ключу, а больше 1-го. |
benya
Цитата:
Цитата:
|
Время: 17:12. |
Время: 17:12.
© OSzone.net 2001-