Как добавить новую область для блока в Drupal

Если вам не хватает областей для размещения блоков с информацией на сайте, вы можете создать новую область для блока. Сначала область для блока нужно определить в файле template.php. Для этого нужно добавить в него строчку типа: 'tb' => t('Ваше название области для блока').

Вначале нужно добавить определение области (региона) в файле template.php. Для этого добавляем функцию НАЗВАНИЕ ТЕМЫ_regions() или модифицируем ее, если она уже существует. НАЗВАНИЕ ТЕМЫ в названии функции надо заменить на название используемой темы (к примеру, garland). В этом случае функция выглядит следующим образом в template.php:

"//-----------------------------------------------------------------| Используемые блоки
//------------------------------------------------------------------------------------------

function garland_regions() {
return array(
'banner' => t('Баннер'),
'lb' => t('Левый блок'),
'rb' => t('Правый блок'),
'content' => t('Контент'),
'tb' => t('Верхний блок меню'), -  а это, добавили вы.
'fb' => t('Подвал')
);
}
"
Затем регион (область для блока) нужно определить в page.tpl.php.

Добавьте в page.tpl.php строчку: <div class="top_menu"><?php print $tb ?></div>
В моем случае, это 36 строка. Вам же нужно экспериментировать. Здесь при выводе используется класс, который нужно описать в файле style.css.

В файл style.css нужно добавить следующее:


/**************************
TOP NAVIGATION MENU
(below horizontal menu)
**************************/
.top_menu{
position:absolute;
z-index: 1;
left: 0px;
width: 100%;
min-width: 1000px;
text-align:center;
margin:0;
padding:0;
margin-top: -15px;
}

.top_menu h2.title{
display: none;
}

Этот код нужно вставить перед этой секцией (если у вас такая есть):

/**************************
CONTENT AND COLUMNS
**************************/

Этот материал создал область (регион) для размещения блока вверху сайта. Код может изменяться по вашему желанию и в зависимости от знаний.

Экспериментируйте.