![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| drLans |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 11.8.2006 Репутация: нет Всего: нет |
Народ, хочу написать свою систему шаблонов (в качестве самообразования хотя бы).
Так что готовые не предлагать. В чем суть проблемы. Например у меня есть файл шаблона:
Написал так же парсер на PHP, котоый грузит себе этот шаблон, подставляет вместо {что-то} осмысленный текст. Например после прогона вышеуказанного мною шаблона получается html страница:
В общем статические шаблоны мой шаблонизатор прекрасно обрабатывает и я счастлив. Однако проблемы начинаются, когда нужно разместить динамический текст на странице (как у автора этой темы). Если непонятно, приведу пример. Например на главную страницу нужно вывести список новостей. Само собой, количество новостей не задано жестко - их может быть хоть 0, хоть 10. Поэтому тут нельзя обойтись такой конструкцией:
Причем новости у меня содержаться в таблице, а атрибуты таблицы определяет дизайнер, так что нельзя просто <table>...</table> добавлять в PHP коде - все должно быть определено в шаблоне. Но как? Шаблон статический, а код динамический! Подобный пример можно привести и в меню - элементов меню может быть от одного до бесконечности.. Вопрос: как реализовать отображение подобных динамически данных в статическом шаблоне? |
||||||
|
|||||||
| szz |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1289 Регистрация: 31.5.2005 Где: Moscow, Jerusalem Репутация: 8 Всего: 33 |
Вообще-то после уймы разных фреймворков, которые я писал и участвовал в разработке оных, мы пришли к тому, что лучше всего использовать... PHP. РНР - сам по себе изначально - язык шаблонов.
А если все-таки хочешь сам дойти до этого, то, конечно, пиши шаблонизатор. То, что ты описал - это циклический вывод однотипного массива называется. Делают его кто как хочет, вот например вариант:
как пропарсить такое, думаю, сам без труда поймешь - если сам написал первую часть, которую ты описал --------------------
|
||||
|
|||||
| drLans |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 11.8.2006 Репутация: нет Всего: нет |
Спасибо, сейчас буду думать..
Понять то я это могу, а вот реализовать в коде.. Сомневаюсь.. Придется регулярные выражения учить.. |
|||
|
||||
| drLans |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 11.8.2006 Репутация: нет Всего: нет |
В общем, если кому надо: тут человек популярно объясняет как сделать свою простую систему шаблонов
|
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |