УрокНеобходимые файлы для создания шаблона. 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

Комментарии

Аватар пользователя rihh
rihh написал:

На русском языке очень мало информации, спасибо большое

02.12.2010 09:02
Аватар пользователя Тайный поклонник
Тайный поклонник написал:

да чувак , ты крут !!! тебе можно задавать вопросы ?

03.12.2010 10:23
Аватар пользователя Spleshka
Spleshka написал:

конечно можно :) Посмотри - в верхнем меню даже раздел специальный есть "Задать вопрос" :) А если по теме - можно и сюда в комменты написать

03.12.2010 12:17
Аватар пользователя Тайный поклонник
Тайный поклонник написал:

ок , я начинаю делать сайт , вопросов будет много )))

07.12.2010 14:44
Аватар пользователя Денис
Денис написал:

Да, спасибо! Все понятно и интересно! Воодушевился самостоятельно сверстать тему...

18.02.2011 16:24
Аватар пользователя Sail
Sail написал:

Ну наконец-то я нашёл хороший мануал. Автору Аригато за подробное описание. Буду ботать.

05.03.2011 11:47
Аватар пользователя Тайный поклонник
Тайный поклонник написал:

Действительно неплохо.

07.03.2011 09:31
Аватар пользователя bel0m0r
bel0m0r написал:

У меня возникла проблема при выводе описания шаблона на русском языке (description = описание). На странице выбора шаблона в описании видны только английские символы. Может быть проблема в кодировке при создании файла?

08.05.2011 12:32
Аватар пользователя Spleshka
Spleshka написал:

Да, кодировка должна быть UTF8 (без BOM)

17.05.2011 14:58
Аватар пользователя vsevolod
vsevolod написал:

Да сайт супер. И статьи что надо. Спасибо. Что за редактор в комментах??

20.05.2011 12:11
Аватар пользователя Spleshka
Spleshka написал:

Спасибо. В комментах обычный bueditor с новыми кнопками

20.05.2011 17:38
Аватар пользователя twister
twister написал:

спасибо за информацию! тоже собираюсь делать сайт и остановился на друпале:)

а создавать info-файл можно с помощью Drupal Theme Starter, хотя и в обычном блокноте не долго:)

15.07.2011 16:48
Аватар пользователя Тайный поклонник
Тайный поклонник написал:

После долгих поисков тематической информации нашел действительно что-то стоящее. Молодец

09.10.2011 21:15
Аватар пользователя Habilis
Habilis написал:

Здравствуйте. Действительно у Вас очень хороший сайт и я присоединяюсь к поздравлениям:-) Но новую тему для меня создавать на Друпале рановато, поэтому я решил для начала пойти по более лёгкому пути, а именно взять и поставить существующий шаблон на движок Друпала:-) за образец я взял вот этот урок http://www.ra-don.ru/alexander/137. Тема подхватилась, спасибо добрые люди помогли, сказали, что кодировка должна быть UTF-8 а то так бы и продолжал мучиться, но дальше к сожалению дело не пошло:-( Не могли бы Вы помочь мне сделать следующий шаг в постижении этой замечательной CMS я был бы Вам очень благодарен:-)
С уважением С. Кондулуков

25.10.2011 22:35
Аватар пользователя Spleshka
Spleshka написал:

Здравствуйте. Скажите, а что вы хотите делать дальше на сайте ? :) И в какую тематику хотели бы углубиться?

26.10.2011 12:21
Аватар пользователя Habilis
Habilis написал:

SplasH добрый вечер. Большое спасибо Вам за ответ:-) На Вашем бы сайте я бы хотел углублённо изучать Друпал. С этой CMS я знаком весьма немного. Умею делать простые сайты, немного изменив тему. Мне бы хотелось бы пойти дальше. Сначала научиться ставить на Движок друпала шаблоны сайтов, а затем и создавать собственные темы. Конечная цель - создание хороших профессиональных сайтов, а значит и заработок себе на хлеб:-).
С уважением С.Кондулуков.

26.10.2011 19:34
Аватар пользователя Spleshka
Spleshka написал:

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

26.10.2011 20:13
Аватар пользователя Habilis
Habilis написал:

SplasH большое Вам спасибо. Завтра так и сделаю. А то от грохота прессов голова разламывается:-( Всё таки грохот прессов это не шум прибоя:-(

С уважением и благодарностью С.Кондулуков

26.10.2011 21:53
Аватар пользователя Наталья
Наталья написал:

Евгений, а подскажите, для создания и открытия info-файла нужна программа? смешной, видимо, вопрос, но какая?:))

10.12.2011 22:03
Аватар пользователя Spleshka
Spleshka написал:

Нет, никаких программ не нужно. Создайте новый документ в любом тестовом редакторе (хоть в блокноте, я предпочитаю notepad++) и сохраните с расширением .info. И не переживайте по поводу смешных вопросов - блог для этого и предназначен :)

10.12.2011 22:06
Аватар пользователя Наталья
Наталья написал:

ага..., спасибо)

10.12.2011 22:07
Аватар пользователя Иванова
Иванова написал:

Спасибо за полезную информацию. Разрешите вопрос?
Я Друпал 7 залила сразу на хостинг, минуя "C:\WebServers\home\...". теперь не могу найти настройку, для того чтобы установить собственную тему, помимо стандартного набора. Есть видео уроки по Друпал 6, в ранней версии это легко обыграно через "дополнительные темы". В семерке только ссылка на темы, ну допустим скачали мы... На этом мысль останавливается. Установить то как?
Заранее спасибо, буду рада, если у вас найдется время, для ответа.

05.01.2012 22:13
Аватар пользователя Spleshka
Spleshka написал:

Все темы надо закидывать туда же, куда и в Друпале 6 - в папку sites/all/themes/. А включаются они на странице сайта /admin/appearance/list.

05.01.2012 22:19
Аватар пользователя Иванова
Иванова написал:

Спасибо!

07.01.2012 08:42
Аватар пользователя Сергей
Сергей написал:

Здравсвуйте, подскажите пожалуйста,
адаптирую 1 шаблон для друпал 7 и
столкнулся с таким моментом.. Создал файл
инфо и файл page.tpl.php подключил стили через
инфо файл всё работает нормально, шаблон
выводится, но заметил что друпал в
заголовке страницы прописывает все мета
теги и всю остальную информацию наподобие
title страницы, хотя я в page.tpl.php этого не
указывал, как убрать от туда всё лишнее ? и
самому всё прописать?

01.02.2012 02:13
Аватар пользователя Spleshka
Spleshka написал:

Все данные на сайте выводятся шаблоном html.tpl.php. Можете его открыть и посмотреть на вывод, там всё предельно просто.
Чтобы изменить данные правильным было бы воспользоваться имплементацией хука hook_html_head_alter() в template.php темы. Там как раз даже пример использования есть.

02.02.2012 16:31
Аватар пользователя serval
serval написал:

Делаю первые шаги, и столкнулся с проблемой, на которую не могу найти ответ, нужна подсказка:
регион для вывода меню создал как top_menu. В блоке для вывода меню прописал print $top_menu, для этого блока в файле css прописал свой стиль, но
ссылки выводятся с "мусором" - вот так:

◦ *О нас ◦ *Фотогалерея ◦ *Контакты

где * - это мной заданный стиль css, а ◦ - фиг знает откуда взявшийся символ. Видимо цепляется из системных файлов. Как от него избавиться?

06.03.2012 16:49
Аватар пользователя Spleshka
Spleshka написал:

Если я правильно понял суть вопроса, то так:

ul li {
 list-style: none;
}
06.03.2012 17:08
Аватар пользователя serval
serval написал:

Не совсем. Стиль списка меню навигации на странице сайта задан в css (значок * напротив каждого пункта). Меню в блоке выводится с заданым стилем, но к нему откуда-то цепляется лишний знак о (как будто из файла системных стилей друпала).

06.03.2012 17:40
Аватар пользователя serval
serval написал:

Лучше объясню предисловие. Есть собственный шаблон сайта. Создаю файл темы info, в нем задаю регион для вывода меню навигации по сайту - top_menu. Естественно прописываю свой файл стилей.
Создаю файл page.tpl.php, в нужном блоке пишу print $top_menu Все работает, но к заданному мной стилем css значку разделения* при отображении добавляется посторонний знак о...

06.03.2012 17:50
Аватар пользователя serval
serval написал:

Упс, сорри, это я тупанул, все получилось, спасибо, дружище!
ul li {
list-style: none;
}

09.03.2012 16:26
Аватар пользователя zlodey.ykt
zlodey.ykt написал:

чувак. ты крут :)

01.11.2012 07:06
Аватар пользователя chelwolf
chelwolf написал:

Скажите, а как порядок в теме навести в 6-ке? Допустим у меня много типов материалов и они все темизированны, так же темизированно много других конкретных страниц, я хочу создать папку вида "nodetheming" и туда всё спихать, делаю это и он перестаётвидеть шаблоны, при этом корневой шаблон (node.tpl.php) я оставляю чтоб он перехватывал - нифига. В 7-ке знаю можно создать папку "templates" - и там он будет всё перехватывать, в 6-ке не получается так сделать, подскажите где ответ искать? P.S. С вьюсами эта фишка срабатывает.

09.12.2012 23:44

Комментировать