Темизация сайта Drupal. Из чего состоит шаблон?

темы друпал drupal

Привет, Всем!

Я надеюсь вы уже посмотрели краткое вступление в HTML и CSS. И теперь готовы создавать темы друпала на основе PSD макетов. Вот ниже ссылки на "учебники" HTML и CSS:

HTML

CSS

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

 

Вывод любого контента сайта Друпал происходит через шаблон, будь то Page или товар из каталога. Такая система очень удобная, она позволяет разделить вывод из базы данных и отображение выводимых данных. Из чего же состоит шаблон Друпала? Давайте откроем папку themes и посмотрим какие шаблоны там есть по умолчанию.

 

 

У меня это 6 тем:

  1. Bluemarine.
  2. Chameleon.
  3. Garland.
  4. Pushbutton.
  5. Marvin (вложена в Chameleon).
  6. Minnelli (вложена в Garland).

Откройте папку с шаблоном Chameleon, посмотрим из каких файлов он состоит.

 

 Файл .info

Первый файл на который стоит обратить внимание - это файл Chameleon.info. Файл .info присутствует в каждой теме, в нем содержится информация о теме, CSS, javascript и некоторых других особенностях темы. Итак, изначально он выглядит так:
 

; $Id: chameleon.info,v 1.4 2007/07/01 23:27:31 goba Exp $
name = Chameleon
description = Minimalist tabled theme with light colors.
regions[left] = Left sidebar
regions[right] = Right sidebar
features[] = logo
features[] = favicon
features[] = name
features[] = slogan
stylesheets[all][] = style.css
stylesheets[all][] = common.css
version = VERSION
core = 6.x
; Information added by drupal.org packaging script on 2010-08-11
version = "6.19"
project = "drupal"
datestamp = "1281559292"

Давайте теперь подробно разберем, что значит каждая из строк.

; $Id: chameleon.info,v 1.4 2007/07/01 23:27:31 goba Exp $

Может отсутствовать в самодельных шаблонах.

name = Chameleon

Имя темы, читаемое, которое будет отображаться в админке при выборе темы.

description = Minimalist tabled theme with light colors.

Описание шаблона, также отображается при выборе темы.

regions[left] = Left sidebar
regions[right] = Right sidebar

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

features[] = logo
features[] = favicon
features[] = name
features[] = slogan

Дает возможность выбирать через панель администирования тем:

stylesheets[all][] = style.css
stylesheets[all][] = common.css

Так  подключаются таблицы стилей, Друпал автоматически пропишет путь к этим файлам и будет прикреплять к каждой странице.

; Information added by drupal.org packaging script on 2010-08-11

Информация добавленная при загрузке на Друпал.орг

version = 1.0

 Порядковый номер версии темы.

core = 6.x

Версия Друпала для которой сделан этот шаблон.

project = "drupal"
datestamp = "1281559292"

В документации по Друпалу отсутствует описание этого параметра, наверно он значит то что эта тема входит в Друпал. Однако настоятельно не рекомендуют писать project  в создаваемой теме. Также не рекомендуют писать datestamp.

Приведу краткий список свойств файла .info:

  • name имя темы
  • description описание
  • screenshot - скриншот темы
  • version версия
  • core для какой версии Друпала
  • engine Движок используемый темой
  • base theme - тема родитель
  • regions - регионы сайта
  • features - для изменения на странице настройки темы
  • stylesheets - подключение CSS к теме
  • scripts - подключение javascript к теме
  • php Определяет минимальную версию php

 Файлы .tpl.php

Откройте папку с другим шаблоном, например Garland. В папке будут лежать файлы вида имя_файла.tpl.php, это файлы шаблонов. То что файлы имеют такое расширение особенность файлов шаблонов не только в Друпале, но и в некоторых других шаблонизаторах. В теме Garland изначально присутствуют файлы с таким расширением: 

  1. page.tpl.php
  2. maintenance-page.tpl.php
  3. node.tpl.php
  4. comment.tpl.php
  5. block.tpl.php

Файл page.tpl.php

Это основной шаблон всех страниц. Через него выводится весь контент (наши ноды различных контент типов Page, Story и др).

Давайте рассмотрим один из главных шаблонов сайта page.tpl.php. По умолчанию через этот шаблон выводятся все страницы сайта. Я не буду приводить весь код этого файла, он длинный, Вы и так можете его посмотреть на своем сайте. Этот файл состоит из HTML-кода и со вставленными в него php-переменными. Через эти переменные выводятся регионы, меню (primary_links и $secondary_links), логотип ($logo), слоган($site_slogan), миссия ($mission), а также другие, полный список всех переменных я напечатаю ниже.

Итак, страница формируется через шаблон page.tpl.php посредством заполением переменных, а как заполняются переменные? Заполняют переменные ядро Друпала (те файлы которые лежат в папке /includes и /modules), а также стороние модули, которые мы устанавливаем.

 Файл maintenance-page.tpl.php

Копия page.tpl.php, служит для восстановления исходного шаблона. Возможно когда-нибудь и пригодится.

Файл node.tpl.php

Этот шаблон управляет выводом ноды или нескольких нод сразу. Ноды выводятся через переменную $content в файле page.tpl.php. Node.tpl.php какбы встраивается в Page.tpl.php.

Файл comment.tpl.php

Шаблон блока комментариев, через него определяется HTML-код комментариев.

Файл block.tpl.php

Выводит контент для блоков в заданном регионе. Этот шаблон необязательный и может быть переопределен копированием стандартного шаблона. 

Файл template.php

Еще один важный файл темы, через него можно, используя специальные функции, перехватить значение переменных выводимых в page.tpl.php и переопределить их. Этому файлу мы посвятим отдельный урок позднее.

 

Переменные шаблонов .tpl.php

Списки переменных Вы можете посмотреть здесь, либо скачать документ .doc, а также обои рабочего стола с этими переменными:

Переменные файла page.tpl.php

Основные переменные:
$base_path: URL-путь к папке с Drupal. Покрайней мере, он будет равен /.
$css: массив CSS файлов для данной страницы.
$directory: Путь к папке с текущей темой, например themes/garland или themes/garland/minelli.
$is_front: Истина, если это главная страница.  
$logged_in: Истина, если пользователь авторизован.
$is_admin: Истина, если пользователь авторизован под учетной записью администратора.

Метаданные страницы:
$language: (объект) Язык сайта. $language->language содержит текстовое обозначение. $language->dir Содержит директиву языка, принимает значение 'ltr' или 'rtl' . 
$head_title: модифицированная версия заголовка страницы, используется в теге TITLE.
$head: выводит секцию HEAD (включает в себя мета-теги, keyword tags).
$styles: CSS стили страницы.
$scripts: Файлы javascript, используемые на странице.
$body_classes: множество CSS классов для тега BODY. Содержит переменные определяющие текущую разметку (множественные столбцы, единичный столбец), текущий путь и тд.

Идентификационные данные:
$front_page: Адрес главной страницы. Так же включает языковой домен, или префикс.
$logo: Адрес логотипа.
$site_name: Название сайта, можно отключить в настройках темы.
$site_slogan: Слоган сайта, можно отключить в настройках темы.
$mission: Миссия сайта, можно отключить в настройках темы.

Навигация:
$search_box: HTML код формы поиска, пустой если поиск выключен.
$primary_links (array): Массив содержащий primary_links.
$secondary_links (array): Массив содержащий secondary_links.

Содержание страницы (в порядке появления в default page.tpl.php):
$left: Левая колонка.
$breadcrumb: «хлебные крошки» для текущей страницы.
$title: Заголовок старницы.
$help: Текст справки, в основном используется на страницах администрирования.
$messages: Статусные сообщения и сообщения об ошибках.
$tabs: закладки.
$content: основное содержимое текущей страницы.
$right: правая колонка.

Переменные подвала:
$feed_icons: RSS лента текущей страницы.
$footer_message: Текст подвала сайта.
$footer : регион footer.
$closure: Переменная определяющая конец страницы. Она должна быть после остального динамического содержимого.

Переменные файла block.tpl.php

$block->module - Модуль который создает блок
$block->delta - Числовой идентификатор прикрепленый к каждому модулю.
$block->subject - Заголовок блока.
$block->content - Содержимое блока.
$block->status - Статус блока (0 или 1)
$block->region - Регион, в котором находится текущий блок.

вспомагательные переменные:
$block_zebra: Выводит 'odd' и 'even' поочереди, взависимости от блока в регионе.
$zebra: выводит то же самое что и $block_zebra но независимо от региона.
$block_id: Счетчик зависящий от регионов.
$id: выводит то же что и $block_id но не зависит от региона.
$is_front: возвращает истину, когда вызывается на главной странице.
$logged_in: возвращает истину когда текущий пользователь авторизирован.
$is_admin: возвращает истину когда текущий пользователь администратор.

 

Список переменых в обоях рабочего стола (английская версия)

Список переменных Друпала в обоях рабочего стола 800X600  (русская версия)
Список переменных Друпала в обоях рабочего стола 1024X768 (русская версия)
Список переменных Друпала в обоях рабочего стола 1280X1024 (русская версия)
Список переменных Друпала в обоях рабочего стола 1920X1080 (русская версия) - русская версия обоев предоставлена сайтом www.fish-drink.ru

 

Комментарии

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook
(If you're a human, don't change the following field)
Your first name.
(If you're a human, don't change the following field)
Your first name.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Замечание по .info

Замечание по .info файлы.

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