УрокНеобходимые файлы для создания шаблона. Info-файл
Краткий курс молодого бойца пройден - теперь вы знаете что такое друпал и как с ним работать. Настало время рассказать о том, ради чего был создан этот сайт - о создании шаблонов(тем) для друпала.
Итак, создадим в каталоге C:\WebServers\home\mysite.ru\www\sites\all папку themes, переходим в неё. Здесь создадим ещё одну папку с названием нашей темы - к примеру mytheme.
Теперь поговорим о том, что в ней должно находиться. Если вы хотите посмотреть как выглядят профессиональные темы - то добро пожаловать сюда. Но там слишком много файлов, будет сложно разобраться что к чему, так что давайте по порядку.
Файл, без которого друпал не поймёт что это шаблон для него - это файл названиеТемы.info, в нашем случае - mytheme.info. Внутри него содержится вся информация о вашей теме. Его можно разбить на 4 подчасти:
Описательная часть
Она выглядит следующим образом :
- name = mytheme (имя вашей темы)
- description = my first theme (описание, можно на русском языке)
- screenshot = screenshot.png (файл с маленьким скриншотом темы)
- version = 1.0 (версия темы - для разработчиков, можно убрать)
- core = 6.x (Версия друпала, для которой создана тема)
- engine = phptemplate (ядро друпала)
Эту часть можно просто скопировать и вставить в начало файла. Она является обязательной. Без остальных можно жить, а без этой - никак.
Создание регионов
Регион - это место для помещения блоков из друпала. Т.е. на сайте можно будет создавать блоки, и помещать их в регионы, описанные в info-файле.
Синтаксис описания блоков следующий:
regions[имя_региона] = имя региона
потом имя_региона будет доступно в шаблоне в качестве пхп-переменной, т.е. $имя_региона
Пример
regions[right] = right sidebar
Нам будет доступна переменная $right, которую мы можем выводить в файле page.tpl.php (о нём мы поговорим чуть пожже) следующим образом:
<?php print $right; ?>
или же обернув в хтмл-код, чтобы этим регионом можно было управлять:
<?php if ($right): print '<div id = "right-sidebar">'. $right .'</div>'; endif; ?>
Объясняю откуда появилось столько кода: часть if ($right) проверяет, есть ли в нашем регионе хотя бы 1 блок. Если нет - то в финальном коде программы никакого текста, в том числе и хтмл-кода нет. Если же в регионе есть 1 или более блоков, то они автоматически окажутся между тэгами <div id = "right-sidebar"> и </div>, что в дальнейшем позволит нам управлять стилями этого блока из css-файла.
"Подключательная" часть
Здесь к теме подключаются дополнительные файлы, будь то css-файлы или javascripts-файлы.
Для css синтаксис следующий:
stylesheets[all][] = файл.css или stylesheets[all][] = путь к файлу/файл.css
Пример
stylesheets[all][] = style.css
Для JavaScript'ов синтаксис такой:
scripts[] = scripts.js
Пример
scripts[] = js/jquery-1.2.3.min.js
Файлы ещё можно подключать в файле page.tpl.php между тэгами <head></head>, однако этот способ считается некошерным для друпала.
Часть, в которой описываются "примочки" сайта
Она необязательная. В ней описываются фишки сайта, которые будут доступны.
синтаксис:
features[] = название фичи
Все доступные фичи сайта:
- features[] = logo (разрешает логотип на сайте)
- features[] = name (разрешает отображать имя сайта через переменную $site_name)
- features[] = slogan (разрешает отображать слоган сайта через переменную $site_slogan)
- features[] = mission (разрешает отображать миссию сайта через переменную $mission)
- features[] = node_user_picture (разрешает показывать в статьях аватарку автора)
- features[] = comment_user_picture (разрешает показывать в коментариях аватарку автора)
- features[] = search (разрешает использовать поиск на сайте)
- features[] = favicon (позволяет подключать свою иконку к сайту)
- features[] = primary_links (разрешает использовать первичное меню)
- features[] = secondary_links (разрешает использовать вторичное меню)
Эти настройки можно найти по адрессу http://mysite.ru/admin/build/themes/settings/mytheme/.
Если убрать эти настройки из info-файла, то по этому адресу будут доступны все возможные фичи сайта. А если из списка выше убрать какую-то фичу, то она будет недоступна в настройках сайта.
Итак, я перечислил всё содержимое info-файла. Теперь я покажу как в целом виде обычно состоит его начинка на примере файла из темы fervens:
name = Fervens description = Fervens is a 3 column theme that has a base idea of "freshness". Originally designed by <a href="http://designdisease.com">Design Disease</a> for WordPress and released by <a href="http://smashingmagazine.com">Smashing Magazine</a>.<br />Ported to Drupal theme by <a href="http://kahthong.com">Leow Kah Thong</a>. screenshot = screenshot.png version = VERSION core = 6.x engine = phptemplate regions[header] = Header regions[wrapper_top] = Wrapper top regions[sidebar_left] = Sidebar left regions[content_top] = Content top regions[content] = Content regions[content_bottom] = Content bottom regions[sidebar_right] = Sidebar right regions[wrapper_bottom] = Wrapper bottom regions[footer] = Footer features[] = logo features[] = name features[] = slogan features[] = mission features[] = node_user_picture features[] = comment_user_picture features[] = search features[] = favicon features[] = primary_links features[] = secondary_links stylesheets[all][] = style.css stylesheets[all][] = style-custom.css scripts[] = script.js
- Spleshka
- 06.08.2010
- 29547
Комментарии
На русском языке очень мало информации, спасибо большое
да чувак , ты крут !!! тебе можно задавать вопросы ?
конечно можно :) Посмотри - в верхнем меню даже раздел специальный есть "Задать вопрос" :) А если по теме - можно и сюда в комменты написать
ок , я начинаю делать сайт , вопросов будет много )))
Да, спасибо! Все понятно и интересно! Воодушевился самостоятельно сверстать тему...
Ну наконец-то я нашёл хороший мануал. Автору Аригато за подробное описание. Буду ботать.
Действительно неплохо.
У меня возникла проблема при выводе описания шаблона на русском языке (description = описание). На странице выбора шаблона в описании видны только английские символы. Может быть проблема в кодировке при создании файла?
Да, кодировка должна быть UTF8 (без BOM)
Да сайт супер. И статьи что надо. Спасибо. Что за редактор в комментах??
Спасибо. В комментах обычный bueditor с новыми кнопками
спасибо за информацию! тоже собираюсь делать сайт и остановился на друпале:)
а создавать info-файл можно с помощью Drupal Theme Starter, хотя и в обычном блокноте не долго:)
После долгих поисков тематической информации нашел действительно что-то стоящее. Молодец
Здравствуйте. Действительно у Вас очень хороший сайт и я присоединяюсь к поздравлениям:-) Но новую тему для меня создавать на Друпале рановато, поэтому я решил для начала пойти по более лёгкому пути, а именно взять и поставить существующий шаблон на движок Друпала:-) за образец я взял вот этот урок http://www.ra-don.ru/alexander/137. Тема подхватилась, спасибо добрые люди помогли, сказали, что кодировка должна быть UTF-8 а то так бы и продолжал мучиться, но дальше к сожалению дело не пошло:-( Не могли бы Вы помочь мне сделать следующий шаг в постижении этой замечательной CMS я был бы Вам очень благодарен:-)
С уважением С. Кондулуков
Здравствуйте. Скажите, а что вы хотите делать дальше на сайте ? :) И в какую тематику хотели бы углубиться?
SplasH добрый вечер. Большое спасибо Вам за ответ:-) На Вашем бы сайте я бы хотел углублённо изучать Друпал. С этой CMS я знаком весьма немного. Умею делать простые сайты, немного изменив тему. Мне бы хотелось бы пойти дальше. Сначала научиться ставить на Движок друпала шаблоны сайтов, а затем и создавать собственные темы. Конечная цель - создание хороших профессиональных сайтов, а значит и заработок себе на хлеб:-).
С уважением С.Кондулуков.
Добрый вечер. Вы можете перейти в раздел уроки, и начиная со второй статьи начать читать про создание и установку тем для Друпала :)
SplasH большое Вам спасибо. Завтра так и сделаю. А то от грохота прессов голова разламывается:-( Всё таки грохот прессов это не шум прибоя:-(
С уважением и благодарностью С.Кондулуков
Евгений, а подскажите, для создания и открытия info-файла нужна программа? смешной, видимо, вопрос, но какая?:))
Нет, никаких программ не нужно. Создайте новый документ в любом тестовом редакторе (хоть в блокноте, я предпочитаю notepad++) и сохраните с расширением .info. И не переживайте по поводу смешных вопросов - блог для этого и предназначен :)
ага..., спасибо)
Спасибо за полезную информацию. Разрешите вопрос?
Я Друпал 7 залила сразу на хостинг, минуя "C:\WebServers\home\...". теперь не могу найти настройку, для того чтобы установить собственную тему, помимо стандартного набора. Есть видео уроки по Друпал 6, в ранней версии это легко обыграно через "дополнительные темы". В семерке только ссылка на темы, ну допустим скачали мы... На этом мысль останавливается. Установить то как?
Заранее спасибо, буду рада, если у вас найдется время, для ответа.
Все темы надо закидывать туда же, куда и в Друпале 6 - в папку sites/all/themes/. А включаются они на странице сайта /admin/appearance/list.
Спасибо!
Здравсвуйте, подскажите пожалуйста,
адаптирую 1 шаблон для друпал 7 и
столкнулся с таким моментом.. Создал файл
инфо и файл page.tpl.php подключил стили через
инфо файл всё работает нормально, шаблон
выводится, но заметил что друпал в
заголовке страницы прописывает все мета
теги и всю остальную информацию наподобие
title страницы, хотя я в page.tpl.php этого не
указывал, как убрать от туда всё лишнее ? и
самому всё прописать?
Все данные на сайте выводятся шаблоном html.tpl.php. Можете его открыть и посмотреть на вывод, там всё предельно просто.
Чтобы изменить данные правильным было бы воспользоваться имплементацией хука hook_html_head_alter() в template.php темы. Там как раз даже пример использования есть.
Делаю первые шаги, и столкнулся с проблемой, на которую не могу найти ответ, нужна подсказка:
регион для вывода меню создал как top_menu. В блоке для вывода меню прописал
print $top_menu
, для этого блока в файле css прописал свой стиль, носсылки выводятся с "мусором" - вот так:
◦ *О нас ◦ *Фотогалерея ◦ *Контакты
где * - это мной заданный стиль css, а ◦ - фиг знает откуда взявшийся символ. Видимо цепляется из системных файлов. Как от него избавиться?
Если я правильно понял суть вопроса, то так:
Не совсем. Стиль списка меню навигации на странице сайта задан в css (значок * напротив каждого пункта). Меню в блоке выводится с заданым стилем, но к нему откуда-то цепляется лишний знак о (как будто из файла системных стилей друпала).
Лучше объясню предисловие. Есть собственный шаблон сайта. Создаю файл темы info, в нем задаю регион для вывода меню навигации по сайту - top_menu. Естественно прописываю свой файл стилей.
Создаю файл page.tpl.php, в нужном блоке пишу
print $top_menu
Все работает, но к заданному мной стилем css значку разделения* при отображении добавляется посторонний знак о...Упс, сорри, это я тупанул, все получилось, спасибо, дружище!
ul li {
list-style: none;
}
чувак. ты крут :)
Скажите, а как порядок в теме навести в 6-ке? Допустим у меня много типов материалов и они все темизированны, так же темизированно много других конкретных страниц, я хочу создать папку вида "nodetheming" и туда всё спихать, делаю это и он перестаётвидеть шаблоны, при этом корневой шаблон (node.tpl.php) я оставляю чтоб он перехватывал - нифига. В 7-ке знаю можно создать папку "templates" - и там он будет всё перехватывать, в 6-ке не получается так сделать, подскажите где ответ искать? P.S. С вьюсами эта фишка срабатывает.
Комментировать