Часть 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.
Успехов в создании тем!