Регион на странице
Регионы определяются в двух файлах: template.php и page.tpl.php. Для того, чтобы добавить свой регион нужно определить этот регион в первом файле и задать расположение этого региона во втором.
template.php
Функция определяющая регионы выглядит следующим образом:
<?php
function НАЗВАНИЕ-ТЕМЫ_regions() {
return array(
'header' => t('header'),
'left' => t('left sidebar'),
'content' => t('content'),
'right' => t('right sidebar'),
'footer' => t('footer'),
);
}
?>Это классическая запись определяющая пять регионов, мы в эту запись добавим шестой регион. Наверное самый востребованный регион, который редко добавляют в темы которые можно загрузить с drupal.org — это регион позволяющий размещать блоки перед содержанием документа. Созданием такого региона мы и займёмся. Для этого добавим его описание аналогично существующим. Измененная запись будет выглядеть так:
<?php
function НАЗВАНИЕ-ТЕМЫ_regions() {
return array(
'header' => t('header'),
'left' => t('left sidebar'),
'befor_content' => t('Перед содержанием'),
'content' => t('content'),
'right' => t('right sidebar'),
'footer' => t('footer'),
);
}
?>Снимок ниже показывает как эта запись будет выглядеть в файле template.php для темы Garland:
Здесь мы просто добавили строку 'befor_content' => t('Перед содержанием'),, а в других строках заменили английские названия русскими. В левой части строк названия должны быть на английском и без пробелов, а справа можно писать как вам удобно. Эти правые названия на странице настройки блоков будут выглядеть следующим образом:
template.php в UTF-8. В редакторе Notepad++ для этого после открытия файла нужно выбрать меню Кодировки и в нём пункт Кодировать в UTF-8. Сделать это нужно до того, как вы стали писать на русском, если сделаете потом, то русский язык испортится.
page.tpl.php
После того, как регион определён в файле template.php, этот регион нужно добавить в файл page.tpl.php. Так как нам нужно, чтобы блок показывался перед содержанием страницы, то нужно его вставить перед переменной $content, которая занимается выводом содержания документа. Для этого вставляем такой код:
<?php print $befor_content ?>В стандартной теме Друпала Garland, переменная $content находится на 75 строчке. Снимок ниже показывает как эта запись будет выглядеть в файле page.tpl.php в этой теме (мы сдвинули переменную $content с 75 на 80 строчку, а перед ней вставили нашу $befor_content дав ей свой слой):
Зачем помещать регион в отдельный слой? Чтобы этот регион потом было проще оформлять через файл style.css, например добавив в него строчку:
#becon {
padding:10px;}Примечание


