Урок - Регионы

Обучающий онлайн курс
Drupal 7, Разработка модулей

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

Для использования регионов необходимо сделать два шага:

  • Определить регион в теме (в info-файле темы)
  • Указать место размположения региона в файле html.tpl.php

Определение региона теме.

Для определения регионов в файле темы используется секция regions:

; $Id: 
name = Ramech theme
description = Simple theme

version = 1.1

core = 7.x

regions[header] = Header

regions[content] = Content

regions[sidebar_first] = Sidebar first

regions[sidebar_second] = Sidebar second

regions[footer] = Footer
regions[page_top] = Page top
regions[page_bottom] = Page bottom

Если необходимо внести изменения в список регионов (добавить регион, удалить регион), то необходимо учитывать следующее:

  • Обязательно необходимо включить регион "content".
    Это связано с тем, что основное содержимое страницы, в Drupal 7, рассматривается как блок (блок называется Content). По умолчанию блок Content устанавливается в регион "content". Чтобы избежать пропадания содержимого при выводе регион content сделан обязательным.
  • Рекомендуется добавлять регион "help"(помощь)
    Регион "help" теперь обеспечивает вывод помощи как блочного элемента. Это также означает что содержимое ваших подсказок/помощи может описываться в block.tpl.php. По умолчанию, тема будет выводить текст помощи в этом регионе, но это может быть изменено в разделе администрированя блоков.
    Исключение региона "help" не приведет к нарушению работы сайта, но рекомендуется добавлять в тему.
  • Рекомендуется добавлять регион  "highlight"(выделение).
    Регион "highlight" является заменой устаревшего параметра "миссия сайта"($mission) предыдущих версий Drupal. Сейчас, если необходимо создать аналог текста "миссия сайта" на странице, достаточно создавать новый блок.
    Исключение региона "highlight" не приведет к нарушению работы сайта, но рекомендуется добавлять в тему.

Скрытые регионы.

Скрыте регионы - это регионы, которые используются для специфических задач ядра Drupal 7 или модулей Drupal 7 и не предназначены для отображения в панели администрирования.

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

; $Id: 
name = Ramech theme
description = Simple theme

version = 1.1

core = 7.x

regions[header] = Header

regions[content] = Content

regions[sidebar_first] = Sidebar first

regions[sidebar_second] = Sidebar second

regions[footer] = Footer
regions[page_top] = Page top
regions[page_bottom] = Page bottom
regions[secret] = Secret region

Далее необходимо поместить новый регион в секцию скрытых регионов:

regions_hidden[] = secret

Вместе будет выглядеть так:

; $Id: 
name = Ramech theme
description = Simple theme

version = 1.1

core = 7.x

regions[header] = Header

regions[content] = Content

regions[sidebar_first] = Sidebar first

regions[sidebar_second] = Sidebar second

regions[footer] = Footer
regions[page_top] = Page top
regions[page_bottom] = Page bottom
regions[secret] = Secret region

regions_hidden[] = secret

Теперь, когда вы знаете что такое скрытые регионы, пришло время рассказать о двух новых предопределенных скрытых регионах, которые вы могли заметить выше: page_top и page_bottom. Если вы переопределяете данные регионы, то вам не нужно определять их в секции regions_hidden[], так как они уже предопределены системой.

Регион "page_top" используется для вывода некоторых неконфигурируемых блоков ядра в начале HTML-документе. Регион "page_top" необходимо выводить в шаблоне html.tpl.php после открывающего тега <body>, перед любыми другими элементами разметки.

</head>
<body class="<?php print $classes; ?>">
<?php print $page_top; ?>

Регион "page_bottom" используется для вывода некоторых неконфигурируемых блоков ядра в конце HTML-документа. Регион "page_bottom" необходимо выводить в шаблоне html.tpl.php перед закрывающим тегом </body>, после всех элементов разметки. В drupal 6 аналогом такого действия являлась переменной $closure.

 <?php print $page_bottom; ?>
</body>
</html>

 

 

 

 

Во-вторых, упразднены некоторые переменные: $taxonomy, $mission (введен регион Hilited), $footer_message (выводится в регионе Footer), $help (введен регион Help). Соответственно, если этих регионов нет в вашей теме - надо добавить их в файл youtheme.info и затем вставить в нужное место файла page.tpl.php.

Кстати, переменные сайдбаров получили более логичные и понятные имена: вместо $right и $left - $sidebar_first и $sidebar_second. Так же изменились имена переменных prymary links и secondary links, теперь это $main_menu и $secondary_menu.