Темплейты MovableType
lexa - 03/Янв/2007 13:42
Меняя, в очередной раз, много темплейтов MT, задумался об более человечной их структуре.
Я уже писал, что темплейты MT расчитаны скорее на секретаршу, чем на программистов продвинутых пользователей. В то же время, позиционируется MT на продвинутый рынок.
Даже возможность прицепить к блогу весь набор темплейтов одним движением руки уже сильно бы полечила, появились бы генераторы темплейтов на препроцессоре и т.п.
На мой вкус, человеческая темплейтная система должна строиться от других принципов:
- Нужны layout-темплейты. Т.е. задание структуры (количество колонок, их состав и пр.) и общих по всему блогу элементов (header, footer, навигация) в одном месте. Конечно, в сложных случаях layout-ов будет много, но почти гарантированно один layout распространяется больше чем на одну страницу. Редактировать одно и то же в нескольких местах - глупо.
- Нужны блоковые темплейты. Очевидный пример блока - это представление первых строк записи в индексах. Оно повторяется во всех архивах, в результатах поиска и так далее. Редактировать такую кучу мест - не менее глупо, чем править заголовки по всему блогу
Comments
Когда вы говорите, что темлейты расчитаны на секретаршу, вы
Когда вы говорите, что темлейты расчитаны на секретаршу, вы преувеличиваете. :) У МТ очень мощная система шаблонов. Возьмите например Wordpress. Вы можете генерировать там только PHP. В МТ возможно практически все. Благодаря шаблонной системе МТ вы можете создавать не HTML-странички, а даже офисные документы.
Есть свои инклюды, можно инклюдить и средствами PHP (чтобы разместить там например сайдбар)
У MT - замечательная система шаблонов. Просто великолепная.
У 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, а про выбор
Я задал офтопичный вопрос :-) Он был не про MT, а про выбор темплейтного движка вообще.
P.S.
Бага.
Кликнул случайно на "Запомнить?" и вся инфа обо мне стёрлась :-( . Хотя думал, что просто не запомнит мои данные в куках.
Так ведь все от задачи зависит. По большому счету, я никакой
Так ведь все от задачи зависит. По большому счету, я никакой принципиальной разницы между темплейтными движками не вижу. Нужно то - циклы, условия, глобальные переменные.
А так, кому XSLT, кому ТТ, кому HTML::Template, кому Mason, кому PHP.
Ну задача например такая: дать юзерам настраивать дизайн, по
Ну задача например такая: дать юзерам настраивать дизайн, позволив им ручками редактировать шаблон. По секурности тут движки некоторые могут проиграть. Придётся парсер писать, отсекающий опасные конструкции.
Кроме того по скорости тоже вроде разница есть.
А может быть дать юзерам CSS ? Вот тот же MT в смысле наложе
А может быть дать юзерам CSS ? Вот тот же MT в смысле наложения дизайна - выше всяких похвал.
CSS не позвояет делать многие вещи - задать в каком окне отк
CSS не позвояет делать многие вещи - задать в каком окне открыть ссылку, добавить произвоный html, менять местами блоки и задавть количество колонок в том же блоге (2 или 3 колонки).
Не позволяет. Но мне вообще не кажется, что задача "дать юз
Не позволяет.
Но мне вообще не кажется, что задача "дать юзеру темплейты" имеет какое-то общее решение. Есть конечно XSLT, но сколько пользователей его осилит ?
Могу с уверенностью заявить, что на HTML многие юзеры вполне
Могу с уверенностью заявить, что на HTML многие юзеры вполне сносно верстают, а те что не умеют, имеют огромную мотивацию пробовать и учиться.
Насчёт XSLT - ИМХО, это не то, что надо давать редактивать юзеру.