LINUX.ORG.RU

[php]Виджеты в шаблонах

 


0

0

Хочу реализовать вызов виджетов в шаблоне, шаблоны обрабатываются через отдельный класс, например:

<b>Title</b>
[NewsWidget]
В такой ситуации все просто, заменяем маркер на вывод виджета.

А как сделать передачу параметров в виджет? т.е.:

<b>Title</b>
[NewsWidget(width=100,float='left')]

В регулярке перехватить параметры и передать их хотябы строкой в вызов виджета не получается( Парсить сначала все такие маркеры в массив вида: виджет=>параметры? Кто нибудь пробывал так извращаться? Спасибо!

> [NewsWidget(width=100,float='left')]

и да, попахивает хтмл-быдлокодингом с табличной вёрсткой, тегами <FONT> и прочей веб-1.0-щиной.

static_lab ★★★★★
()

вот так будет проще парсить потом:

[NewsWidget:width=100,float=left]

isden ★★★★★
()
Ответ на: комментарий от static_lab

Нет прошу просто подсказать, правильно ли сначала найти все виджеты в шаблоне разобрать их в некий массив, а потом пробежаться еще и позаменяь на нужные выводы? или есть более изящный способ.

Вместо «быдлокодинга» можно просто передать имя класса из css файла, но я считаю задать тривиальные параметры такие как ширина в атрибуте <...style=«»></> вполне нормальным.

Спасибо.

Megamozg
() автор топика
Ответ на: комментарий от Megamozg

> правильно ли сначала найти все виджеты в шаблоне разобрать их в некий массив, а потом пробежаться еще и позаменяь на нужные выводы?

если не планируешь вложенных (т.е. многоуровневых) виджетов , то делай как тебе удобнее.
главное, не забудь сделать кэш, в который будут складываться «откомпилированные» файлы (и не компилировать их на каждый запуск скрипта, а только при модификации). а то потенциально можешь огрести сильные тормоза.

isden ★★★★★
()
Ответ на: комментарий от Megamozg

Еще вопросик, структура сайта лежит в таблице бд, нужно связать
путь<->шаблон, хранить ссылку на реальный файл и иметь в фс дерево шаблонов? Если так то можно редактировать шаблоны напрямую, без web-морды, но при манипуляции с деревом в бд придется дублировать действия и на фс, а по сути 1 запрос мы выполним в любом случае, может быть легче хранить сразу текст шаблона? Кешируется все равно по запросу url, а обновлять кеш можно будет при изменении шаблона в бд.

Суть в том, что нужно редактировать\добавлять страницы (разметка\хелпперы) через web-морду, как правильней\легче это делать на файлах или полях?
Спасибо.

Megamozg
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.