Зарегистрироваться Войти Редактировать К списку тем

Тестовый форум Still Life

Проблема структурирования шаблонов

Создана vitus-wagner.livejournal.com 02.04.2008 12:49

В шаблонах разных страниц неизбежно есть повторяющиеся элементы. В случае динамической генерации страниц, вынесение их в общую функцию решается просто. В Stilllife решить эту задачу несколько сложнее.

Высказаться
21.03.2008 17:02 (ссылка)
vitus-wagner.livejournal.com

Статус: Пользователь
Email: vitus@wagner.pp.ru

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

Кроме того, есть специфические для Stilllife вещи - например, встроенная в шаблон темы форма отправки реплики практически повторяет отдельный шаблон формы отправки реплики.

А набор полей для ввода информации о пользователе (user, openidsite, password) практичеки одинаковый в форме логина и в форме реплики).

(и, что самое обидное, именно в этом месте имеется список шаблонов openid-url для широкоизвестных сайтов, который хочется уметь оперативно изменять)

Есть еще операция переприменения измененного шаблона ко всем уже созданным статическим страницам. Но с ней более-менее все понятно - берем каждый содержательный элемент на странице на редактирование, и сохраняем уже в новый шаблон. Операция затратная, но, либо у нас дизайн форума находится в состоянии разработки, и содержательных элементов мало, либо форум живет, и операция изменения дизайна крайне редкая. На эти затраты можно пойти

Но вот вопрос со выделением общих элементов шаблонов и разработки и модификации его в одном месте в процессе разработки стоит остро.

Пока придумалась следующая концепция:

Имеем специальный шаблон оформления. В нем есть элемент с идентификатором content. Если этот шаблон изменился, берем все шаблоны, находим в них элемент с тем же идентификатором, и заменяем в копии шаблона оформления этот этот элемент на элемент из старого шаблона. С задачей хидера/футера эта операция справляется. А вот с задачей общих элементов вроде <div id="replyform"> - не очень. Во-первых, этот элемент нужен далеко не во всех шаблонах. Во-вторых кто сказал, что мы можем ограничиться положением этих элементов за пределами <div if="content">?

Одна из возникших мыслей - если в шаблоне оформления внутри <div if="content"> имеются элементы с явно прописанным id, то в каждом шаблоне, к которому применяется оформление, мы ищем аналогичный id внутри содержимого, и если он найден, заменяем его на соответствующий из шаблона.


--

04.04.2008 08:18 (ссылка) (в ответ на)
taris-marh.livejournal.com

Статус:
Email:

Можно использовать синтаксис типа SSI: при формировании новой темы страница будет создаваться из шаблона (всё равно скрипт запускается), а потом форма уже будет воткнута на место, в страницу. Внешняя форма же настраивается при установке нового дизайна.

04.04.2008 08:21 (ссылка) (в ответ на)
taris-marh.livejournal.com

Статус:
Email:

Кстати, эту форму вообще можно подгружать через AJAX (XMLHttpRequest).

04.04.2008 12:57 (ссылка) (в ответ на)
vitus-wagner.livejournal.com

Статус: Пользователь
Email: vitus@wagner.pp.ru

Можно использовать синтаксис типа SSI: при формировании новой темы страница будет создаваться из шаблона (всё равно скрипт запускается), а потом форма уже будет воткнута на место, в страницу. Внешняя форма же настраивается при установке нового дизайна.

В принципе, можно. Но нужно ли? Устанвка нового дизайна - вещь довольно редкая. И один раз при этой установке отпроцесированть шаблон темы, а потом при создании новой темы использовать только его, может оказаться осмысленным. Создание темы - куда более частая операция, чем смена дизайна


--

04.04.2008 13:00 (ссылка) (в ответ на)
vitus-wagner.livejournal.com

Статус: Пользователь
Email: vitus@wagner.pp.ru
Кстати, эту форму вообще можно подгружать через AJAX

То же самое. Можно. Но нужно ли? Что мы на этом теряем - лишний запрос к серверу. Что приобретаем - возможность не проверять когда изменился дизайн формы

Вот над идеей подгружать только список известных OpenID-сайтов я уже думал.


--

04.04.2008 13:05 (ссылка) (в ответ на)
vitus-wagner.livejournal.com

Статус: Пользователь
Email: vitus@wagner.pp.ru
Кстати, эту форму вообще можно подгружать через AJAX

Вообще, надо бы сделать набор шаблонов с подгрузкой этой формы по AJAX и подумать о том, как бы сравнить удобство использования того и другого.


--

08.04.2008 09:28 (ссылка) (в ответ на)
taris-marh.livejournal.com

Статус:
Email:

Думаю, это будет ясно только при большой нагрузке или плохом канале: тогда дополнительный запрос будет не в +. В остальных же случаях, как мне кажется, оно будет удобнее.