Темплейты MovableType

Меняя, в очередной раз, много темплейтов MT, задумался об более человечной их структуре.

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

На мой вкус, человеческая темплейтная система должна строиться от других принципов:

  • Нужны layout-темплейты. Т.е. задание структуры (количество колонок, их состав и пр.) и общих по всему блогу элементов (header, footer, навигация) в одном месте. Конечно, в сложных случаях layout-ов будет много, но почти гарантированно один layout распространяется больше чем на одну страницу. Редактировать одно и то же в нескольких местах - глупо.
  • Нужны блоковые темплейты. Очевидный пример блока - это представление первых строк записи в индексах. Оно повторяется во всех архивах, в результатах поиска и так далее. Редактировать такую кучу мест - не менее глупо, чем править заголовки по всему блогу

Comments

Когда вы говорите, что темлейты расчитаны на секретаршу, вы преувеличиваете. :) У МТ очень мощная система шаблонов. Возьмите например Wordpress. Вы можете генерировать там только PHP. В МТ возможно практически все. Благодаря шаблонной системе МТ вы можете создавать не HTML-странички, а даже офисные документы.

Есть свои инклюды, можно инклюдить и средствами PHP (чтобы разместить там например сайдбар)

У MT - замечательная система шаблонов. Просто великолепная.

Вот я ровно в настоящее время вставляю один и тот же блок MTMacro в 5 секций head (3 типа архивов, individual entry и шаблон поиска) и дописываю один атрибут к MTEntryBody (apply_macros=1) тоже в пяти темплейтах.

При нормальной организации, я бы записал блок MTMacro в одном месте - системном head и атрибут приписал бы в двух местах - в полном представлении записи и в кратком.

И за последние несколько дней я проделывал данную операцию несколько раз - когда приделывал листалку, когда менял подвал сообщения, когда относил навигацию в левую колонку. Меня явно считают секретаршей.

Заметим, что параметризуемый темплейт архива (куда передавался бы тип архива и можно было бы делать If) уже поэкономил бы половину работы.

Да, и про PHP. Если мы публикуем в статике - значит мы осознанно хотим, чтобы было в статике, а не в PHP. Если мы публикуем в динамике - значит тоже есть причины.
Но если причина выбора типа публикации - это возможность вставить сайдбар, то архитекторам системы - место в картонной коробке под мостом, на квартиру не заработали (была бы версия 1.0 - я бы простил).
А инклуды через PHP - тут же ломают динамическую публикацию.

Свое отношение к динамической публикации на PHP для системы, написанной на Perl я озвучил несколько текстов назад.

Коль скоро речь зашла о темплейтах, то хотел узнать у Вас, что такое layout-темплейты? Rакой темплейтный движок по Вашем ближе всех приблежен к идеалу? Например, с http://www.clearsilver.net/ стоит начинать связывать свою жизнь?

P.S.
Форма длля постинга коммента различается кнопочками на странице с топиком и на странице с предпросмотром.

Дело не столько в движке, сколько в идеологии, которая сверху накручена.

В MT движок - хороший (нормальный). А вот навернутая сверху система управления темплейтами имеет ложную идеологию.

Вот берем этот сайт. У него:
- шапка внешне везде одинаковая, отличается title и адреса RSS-потоков
- подвал везде просто одинаковый
- навигация двух типов.

Вот мне и нужно три темплейта (с параметрами) - заголовок, левая колонка, подвал.

И еще два темплейта (с параметрами) для представления записи в блоге: полная и только верх.
Про специальные представления (RSS, Atom) пока забудем.

Из этих пяти элементов и лепится весь сайт.

А MT предлагает ровно другое - под каждую страницу (тип страницы) - отдельный темплейт. Архив по дате и архив по категории - редактируются отдельно.

Я тут уже писал, что body class=.... исправлял в 5 или 6 местах. Ну не глупо ?

Я задал офтопичный вопрос :-) Он был не про MT, а про выбор темплейтного движка вообще.

P.S.
Бага.
Кликнул случайно на "Запомнить?" и вся инфа обо мне стёрлась :-( . Хотя думал, что просто не запомнит мои данные в куках.

Так ведь все от задачи зависит. По большому счету, я никакой принципиальной разницы между темплейтными движками не вижу. Нужно то - циклы, условия, глобальные переменные.

А так, кому XSLT, кому ТТ, кому HTML::Template, кому Mason, кому PHP.

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

Кроме того по скорости тоже вроде разница есть.

А может быть дать юзерам CSS ? Вот тот же MT в смысле наложения дизайна - выше всяких похвал.

CSS не позвояет делать многие вещи - задать в каком окне открыть ссылку, добавить произвоный html, менять местами блоки и задавть количество колонок в том же блоге (2 или 3 колонки).

Не позволяет.

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

Могу с уверенностью заявить, что на HTML многие юзеры вполне сносно верстают, а те что не умеют, имеют огромную мотивацию пробовать и учиться.

Насчёт XSLT - ИМХО, это не то, что надо давать редактивать юзеру.