Pull to refresh

Создаём тему для Drupal. Часть 3

Drupal *
image
Часть 1, Часть 2

Шаблоны


Шаблоны мы будем складывать в sites/all/themes/mytheme/templates. Создадим шаблоны page.tpl.php — для страниц, node.tpl.php — для контента, block.tpl.php — для блоков, comment-wrapper.tpl.php — для блока с комментариями, comment.tpl.php — для одного комментария, header.tpl.php — для шапки, footer.tpl.php — для подвала, region.tpl.php — для регионов. Также, по аналогии с препроцессами, мы можем создавать файлы типа node-story.tpl.php для отображения материала типа story или block-user.tpl.php для блока user. Это позволяет темизировать отдельно разные типы содержимого сайта.

Не буду приводить HTML шаблонов. Верстайте на свой вкус. Расскажу лишь о переменных, доступных для каждого шаблона.

page.tpl.php


Основной шаблон для страницы.
Доступные переменные:
  • $head_title — заголовок страницы
  • $head — вся информация в head
  • $styles — стили
  • $scripts — скрипты
  • $classes — классы для body
  • $header — шапка, которую мы вынесли в отдельный шаблон
  • $REGION_NAME — переменные с именами регионов
  • $messages — системные сообщения
  • $tabs — табы
  • $content — контент
  • $feed_icons — иконки RSS
  • $footer — подвал, который мы вынесли в отдельный шаблон
  • $base_path — базовый путь сайта
  • $is_front — главная страница или нет
  • $logged_in — залогинен ли пользователь
  • $is_admin — админ или нет
  • $language — объект, содержащий данные о текущем языке
  • $node — нода
  • $front_page — ссылка на главную
  • $logo — логотип
  • $site_name — имя сайта
  • $site_slogan — слоган сайта
  • $mission — миссия сайта
  • $search_box — блок поиска
  • $closure — переменная вставляется перед закрывающим тэгом /body, в неё некоторые модули пишут скрипты. Спасибо хабраюзеру juliv


node.tpl.php


Шаблон вывода контента.
Доступные переменные:
  • $node — объект ноды
  • $classes — классы для ноды
  • $user_picture — аватар пользователя
  • $picture — картинка ноды, переопределяется модулями
  • $page — страница ноды или список тизеров
  • $unpublished — опубликована или нет
  • $display_submitted — кем и когда опубликована
  • $terms — категории
  • $content — контент
  • $links — ссылки
  • $title — заголовок
  • $date — дата создания
  • $name — имя автора
  • $node_url — ссылка на ноду
  • $comment_count — количество комментов
  • $type — тип материала
  • $uid — id автора
  • $zebra — класс для зебры
  • $teaser — тизер или целая нода
  • $sticky — прилеплена или нет
  • $status — статус ноды
  • $comment — включены ли комменты
  • $is_front — на главной или нет
  • $logged_in — залогинен или нет
  • $is_admin — админ или нет


region.tpl.php


Шаблон вывода региона.
Доступные переменные:
  • $classes — классы для региона
  • $content — контент
  • $region — название региона
  • $is_front — на главной или нет
  • $logged_in — залогинен или нет
  • $is_admin — админ или нет


block.tpl.php


Шаблон вывода блока.
Доступные переменные:
  • $block — объект блока
  • $classes — классы блока
  • $title — заголовок
  • $content — контент
  • $edit_links — ссылки редактирования блока
  • $zebra — зебра
  • $block_id — id блока
  • $is_front — на главной или нет
  • $logged_in — залогинен или нет
  • $is_admin — админ или нет


comment-wrapper.tpl.php


Шаблон блока вывода комментариев.
Доступные переменные:
  • $classes — классы
  • $node — нода
  • $content — контент
  • $display_mode — способ отображения комментов
  • $display_order — порядок отображения комментов
  • $comment_controls_state — есть ли форма управления комментамми


comment.tpl.php


Шаблон отображения одного комментария.
Доступные переменные:
  • $classes — классы
  • $picture — аватар автора
  • $title — заголовок
  • $new — новый или нет
  • $unpublished — опубликован или нет
  • $author — автор
  • $created — дата создания
  • $content — контент
  • $links — ссылки


header.tpl.php


Шаблон шапки сайта. Все переменные для этого шаблона мы определили сами в preprocess-header.inc
Доступные переменные:
  • $front_page — главная страница или нет
  • $logo — логотип сайта
  • $search_box — блок поиска
  • $header_line — регион с именем header_line


footer.tpl.php


Шаблон подвала сайта. Все переменные для этого шаблона мы определили сами в preprocess-footer.inc
Доступные переменные:
  • $footer_line — регион с именем footer_line
  • $page_bottom — регион с именем page_bottom


Что в итоге


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

Откуда это


Большая часть информации и идей взята из тем ZEN и SKY.

Успехов в создании тем!
Tags:
Hubs:
Total votes 61: ↑47 and ↓14 +33
Views 31K
Comments Comments 38