1

Тема: Разработка шаблона с нуля

Здравствуйте, уважаемые жители русского форума Movable Type. Есть у меня идея одного сайта, который очень хочется реализовать. Перепробовал множество движков, которые не подошли под довольно специфические требования и был приятно удивлён, случайно наткнувшись на Movable Type. Т.к. я только начинаю осваиваться в дебрях MT, то возникло несколько вопросов, по которым и хотелось бы попросить совета.

Как указано в названии темы, хочу узнать об особенностях разработки шаблона. У меня уже есть готовый дизайн, который планирую натянуть на движок. Как я поглядел, есть возможность редактирования шаблонов из админки. Достаточно удобный способ, с подсветкой. Но если сменить шаблон на стандартный, а затем обратно, то все изменения отменяются. Сами шаблоны лежат в папку themes/папка-моей-темы и напрашивается просто взять и отредактировать их ручками. Правильным ли будет такой подход? Или я что-то упустил в админке? Помимо того, при беглом осмотре выяснил, что парочка шаблонов мне не понадобятся. В частности, шапка и подвал. Стоит ли от них избавляться, либо всё же задействовать? Нужно ли хранить css в отдельном файле, или можно разместить прямо в соответствующем шаблоне? Какой вариант более оптимизированный? Какие теги точно необходимы для нормального функционирования сайта, а от каких можно смело избавиться? Хочется оставить пока только один шаблон index, а остальные прикручивать по мере необходимости. Опять же - правильно - не правильно?

Отдельный вопрос по виджетам. Можно ли их добавлять в шаблон напрямую? Или только связками? В документации тегов для прямого добавления не попалось.

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



2

Re: Разработка шаблона с нуля

Отдельный вопрос по виджетам. Можно ли их добавлять в шаблон напрямую? Или только связками? В документации тегов для прямого добавления не попалось.

совсем не обязательно связками, можно "по одному" например, если категория Новости, то добавить в шаблон содержимое виджета "news-ads-widget" можно так:

<mt:IfCategory label="News">
<mt:include widget="news-ads-widget">
</mt:IfCategory>

У меня уже есть готовый дизайн, который планирую натянуть на движок. Как я поглядел, есть возможность редактирования шаблонов из админки. Достаточно удобный способ, с подсветкой. Но если сменить шаблон на стандартный, а затем обратно, то все изменения отменяются. Сами шаблоны лежат в папку themes/папка-моей-темы и напрашивается просто взять и отредактировать их ручками. Правильным ли будет такой подход?

папку со стандартным стилем можете скопировать и переименовать, также изменив верхние строчки в файле *.css на свои.. всё, теперь при переключении стилей на другой и обратно всё будет как надо.
для создания-натягивания своего дизайна берёте любой html шаблон и разделываете как бог черепаху, в нужные места вставляете теги, куски кода, .. благо документации на все случаи жизни хватит - http://www.movabletype.org/documentation/designer/

Помимо того, при беглом осмотре выяснил, что парочка шаблонов мне не понадобятся. В частности, шапка и подвал. Стоит ли от них избавляться, либо всё же задействовать?

как хотите, движку от этого "не горячо, ни холодно"

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

тут не форум оптимизаторов, как Вам кажется правильнее, так и сделайте ;)
про  оптимизацию публикации есть тут http://movable-type.ru/wiki/Оптимизация_публикации

Какие теги точно необходимы для нормального функционирования сайта,

)) таких нет, но можно оставить <$MTBlogName encode_html="1"$>

а от каких можно смело избавиться?

от всех

Хочется оставить пока только один шаблон index, а остальные прикручивать по мере необходимости. Опять же - правильно - не правильно?

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

..всегда естьвозможность создать новый ...

Отредактировано liketts (21:11:2010 23:04:40)



3

Re: Разработка шаблона с нуля

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

Главным тегом у меня всегда был <mt:Entries> и прочие, связанные с ним (<$mt:EntryTitle$>, <$mt:EntryBody$>). В принципе, я не только новостные разделы на них делал, но и архивы документов, списки учебных групп и пр.



4

Re: Разработка шаблона с нуля

Большое спасибо за ответы. Много полезной информации. Буду осваивать премудрости шаблоностроения. Очень радует гибкость шаблонов. Видел что-то подобное только в MODx, но там работа со вставками кода показалась мне куда сложнее, чем здешняя. Возможно, здесь более дружелюбная админка, и более понятные мне конструкции шаблонов. Немного удивлён, почему раньше ничего не слышал о Movable Type. Наткнулся на Pro-версию. Обновился по Wiki. Обрадовался ещё большим возможностям. Практически всё, что мне надо. Осталось только озаботится фотогалереей. Но это, пожалуй, уже другая тема.

Сел делать, но возник вопрос, который хотелось бы уточнить - откуда лучше редактировать тему? Прямо файлы в папке (к примеру) themes\classic_website\templates или через админку? Если через админку - можно ли будет потом вытащить созданную тему? Ситуация следующая - хочу сделать тему на локальном компьютере, затем на хост прозвисти чистую установку МТ, закинуть туда тему и уж затем производить дальнейшие действия.

Отредактировано Sheon (23:11:2010 16:57:07)



5

Re: Разработка шаблона с нуля

Все просто, берешь локально, стандартную папку с темой, допустим, minimalist-red, правишь в ней screen.css, не забудь в ней изменить название, автора, это что-бы ты свою тему узнавал в админке, потом эту папку скидываешь на хостинг. Потом в админке своего блога, увидишь свою тему. Выбираешь ее и трындец...



6

Re: Разработка шаблона с нуля

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

css правится и заливается по фтп вместе с графикой, а шаблоны (код) правятся из админки



7

Re: Разработка шаблона с нуля

Появился интересный вопрос:

Имеются шаблоны сайта - Сайт-[Шаблоны]
Имеются шаблоны блога - Сайт-Блог-[Шаблоны]
Необходимо подцепить в шаблон Сайт-Блог-[Шаблоны], модуль из Сайт-[Шаблоны].

Можно ли такое провернуть?

Нашёл для MT5 следующую конструкцию:

<mt:BlogParentWebsite><$mt:WebsiteID setvar="website_id"$></mt:BlogParentWebsite>
<$mt:Include module="Entry Metadata" blog_id="$website_id"$>

Теперь трабла в другом. Мучаю шаблон комьюнити блога. И что бы я не подставлял ему, он всё равно тянет стандартные шапку и подвал. Что я делаю не так?

Отредактировано Sheon (30:11:2010 15:32:42)



8

Re: Разработка шаблона с нуля

Трудно сказать. У меня такая конструкция работает без проблем на нескольких сайтах.

Вместо "Entry Metadata" подставлено имя нужного шаблона ("Шапка" или "Подвал")? Код вставляется в соответствующий шаблон блога (Шапка или Подвал)?



9

Re: Разработка шаблона с нуля

pishchour

Можно я уточню? Код <mt:BlogParentWebsite><$mt:WebsiteID setvar="website_id"$></mt:BlogParentWebsite> вставляю в шаблон главной страницы блога. <$mt:Include module="Header" blog_id="$website_id"$> ставляю туда, где должна висеть шапка. А движок, не взирая на website_id тянет глобальный модуль Header, а не модуль сайта (с аналогичным названием). Может я что-то неправильно задаю? Откуда берётся значение website_id? Автоматом?

Так же интересует, если я буду ссылаться на сайтовый модуль Header, в который вложен сайтовый шаблон стиля, то стиль будет браться из сайтового шаблона, или с блогового?



10

Re: Разработка шаблона с нуля

Вот это все

<mt:BlogParentWebsite><$mt:WebsiteID setvar="website_id"$></mt:BlogParentWebsite>
<$mt:Include module="Header" blog_id="$website_id"$>

вставляется в шаблон Header блога, в котором нужно использовать Header с сайта.

Стиль будет браться тот же, что для сайта, если явно указан его url. Если задано через

<$mt:Link template="styles"$>

, то будет браться из настроек блога.



11

Re: Разработка шаблона с нуля

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



12

Re: Разработка шаблона с нуля

pishchour

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

<mt:BlogParentWebsite> 
<$mt:Include module="Header" blog_id="19"$>
</mt:BlogParentWebsite> 

Не шибко элегантно, но работает. До того, как я выясню причину глюка с предыдущей конструкцией - вполне себе вариант.

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



13

Re: Разработка шаблона с нуля

Мне кажется, что здесь

<mt:BlogParentWebsite>

ни к чему, достаточно будет просто mt:Include с указанием номера блога.

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