Урок - Структура шаблона в Drupal 6

Главная » Курсы » Курс Drupal 6, Управление » Урок - Структура шаблона в Drupal 6

Обучающий онлайн курс
Drupal 6, Управление

Лицензия: Копирование запрещено.

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

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

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

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

 Файл .info

Первый файл на который стоит обратить внимание это файл Chameleon.info. Файл .info присутствует в каждой теме, в нем содержиться информация о теме, CSSi, 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

Файл 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, а также обои рабочего стола с этими переменными:

Переменные файла 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

 

‹ Темизация Drupal (стилизация, шаблоны) Вверх Drupal темизация. Шаблон письма оповещения модуля Webform ›