Регион на странице

Регионы определяются в двух файлах: 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:

Регион на странице (Друпал 5)

Здесь мы просто добавили строку 'befor_content' => t('Перед содержанием'),, а в других строках заменили английские названия русскими. В левой части строк названия должны быть на английском и без пробелов, а справа можно писать как вам удобно. Эти правые названия на странице настройки блоков будут выглядеть следующим образом:

Регион на странице (Друпал 5)
Для того, чтобы использовать русские буквы в названиях, нужно предварительно перевести кодировку файла template.php в UTF-8. В редакторе Notepad++ для этого после открытия файла нужно выбрать меню Кодировки и в нём пункт Кодировать в UTF-8. Сделать это нужно до того, как вы стали писать на русском, если сделаете потом, то русский язык испортится.
Регион на странице (Друпал 5)

page.tpl.php

После того, как регион определён в файле template.php, этот регион нужно добавить в файл page.tpl.php. Так как нам нужно, чтобы блок показывался перед содержанием страницы, то нужно его вставить перед переменной $content, которая занимается выводом содержания документа. Для этого вставляем такой код:

<?php print $befor_content ?>

В стандартной теме Друпала Garland, переменная $content находится на 75 строчке. Снимок ниже показывает как эта запись будет выглядеть в файле page.tpl.php в этой теме (мы сдвинули переменную $content с 75 на 80 строчку, а перед ней вставили нашу $befor_content дав ей свой слой):

Регион на странице (Друпал 5)

Зачем помещать регион в отдельный слой? Чтобы этот регион потом было проще оформлять через файл style.css, например добавив в него строчку:

#becon {
  padding:10px;}

Примечание