Создание шаблона на Drupal7: page.tpl.php

Самый важный tpl-файл (tpl - сокращение от template, шаблон) это page.tpl.php. Он отвечает за построение каждой страницы сайта. Давайте разберёмся, из чего же состоит файл шаблона:

  • html код
  • php код
  • javascript код (необязательно)

В каждый файл шаблона друпал передаёт данные сайта в виде стандартных переменных. Для каждого файла шаблона существуют 2 вида переменных:

  • переменные, которые передаются только в этот файл
  • переменные, которые передаются во все файлы

Вот список всех переменных для page.tpl.php:

Общие переменные (для всех файлов):

  • $base_path - базовый путь, куда был установлен друпал
  • $css - массив css-файлов, подключенных к текущему файлу шаблона
  • $directory - путь к папке, в которую установлена тема
  • $is_front - возвращает значение ИСТИНА если вы находитесь на главной странице
  • $logged_in - возвращает значение ИСТИНА если вы залогинились
  • $is_admin - возвращает значение ИСТИНА если вы имеете доступ в админку

Метаданные страницы

  • $language - (объект) Текущий язык, который отображается на сайте
  • $language->language - содержит его текстовое представление
  • $language->dir - содержит направление языка. Это или будет 'ltr'(left-to-right) или 'rtl'(right-to-left)
  • $head_title - модифицированная версия заголовка страницы, для использования между тэгами <title> </title>
  • $head - вставляется между тэгами <head> </head>. Содержит мета тэги, ключевые слова и т.д.
  • $styles - служит для загрузки всех css-файлов в текущую страницу
  • $scripts - служит для загрузки всех javascript'ов в текущую страницу
  • $body_classes - набор классов css для тэга <body> </body>. Содержит в себе информацию о текущем расположении колонок на сайте, их количестве, текущем url'e и т.д.

Информация о сайте

  • $front_page - адресс главной страницы сайта. Лучше использовать эту переменную для ссылки на главную страницу, т.к. она включает в себя язык домена и преффикс
  • $logo - путь к логотипу сайта, если он включен на сайте
  • $site_name - имя сайта. Может быть пустым, если отключить его в фичах в info-файле. Настраивается в mysite.ru/admin/settings/site-information
  • $site_slogan - слоган сайта. Может быть пустым, если отключить его в фичах в info-файле. Настраивается в mysite.ru/admin/settings/site-information
  • $mission - миссия сайта. Может быть пустой, если отключить её в фичах в info-файле. Настраивается в mysite.ru/admin/settings/site-information

Навигация

  • $search_box - содержит в себе html код, отображающий строку поиска. Может быть пустым если выключить его в info-файле
  • $primary_links - массив, содержащий в себе навигационные ссылки для сайта, если они разрешены в фичах инфо-файла
  • $secondary_links - массив, содержащий в себе навигационные ссылки для сайта, если они разрешены в фичах инфо-файла

Содержимое страницы по умолчанию

  • $left - регион. Содержит в себе html код для левой колонки. Если в инфо-файле задать любые регионы, то он пропадает
  • $breadcrumb - "хлебные крошки" для текущей страницы
  • $title - заголовок страницы
  • $help - динамические подсказки, в основном показываются в админке
  • $messages - выводит сообщения об ошибках и предупреждениях на сайте
  • $tabs - ссылки (табы), связывающие текущую страницу с её подстраницами (к примеру для статьи - с её страницей редактирования)
  • $content - содержимое текущей страницы
  • $right - регион. Содержит в себе html код для правой колонки. Если в инфо-файле задать любые регионы, то он пропадает

Нижняя область/закрывающие данные

  • $feed_icon - строка со всеми иконками обратной связи для текущей страницы
  • $footer_message - сообщение внизу страницы. Настраивается в mysite.ru/admin/settings/site-information
  • $footer - регион. Содержит в себе html код для нижней части страницы. Если в инфо-файле задать любые регионы, то он пропадает
  • $closure - закрывающая метка для всех модулей, которые изменяли страницу. Эту переменну обязательно надо выводить после всего динамического содержимого. Лучше всего перед закрытием тэга BODY

Тут перечислены все стандартные переменные. Но вы можете добавлять сюда свои переменные либо в роли регионов через info-файл, либо в любой другой роли через файл template.php (о нём чуть позже).

Теперь я покажу какой код должен находиться в page.tpl.php и в какой код он потом интерпретируется браузерами. Перед вами кусок кода из page.tpl.php:

<?php if (!empty($title)): ?>
   <h1 class="title" id="page-title">
      <?php print $title; ?>
   </h1>
<?php endif; ?>

В первой строке идёт проверка, есть ли вообще заголовок у текущей страницы. Если его нет - то отладчик просто пропустит этот код, и не будет заходить внурть его. Если же заголовок существует, то в html код страницы добавятся тэг <h1 class="title" id="page-title">, после него будет напечатан заголовок страницы, и всё это закроется тэгом </h1>. Если смотреть код этой страницы в браузере, то он выглядел бы так:

<h1 class="title" id="page-title">
    Урок 4. Необходимые файлы для создания шаблона. Page.tpl.php
</h1>

Таким образом оборачиваются почти все переменные сайта. Это делается для того, чтобы мы могли прописывать стили для контента, заранее не зная, какой он будет.


Надеюсь статья была полезна для вас.

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

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
5 + 3 =

Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

Поделиться...

Группа вконтакте

Поделиться

Написать нам