Drupal добавление региона
RSS подписка

 

Введите Ваш e-mail:


 

Шаблоны для друпал на 6 регионов

 
Drupal добавление региона

Полезные сервисы

drivelink.ru - проверка ссылок
letusindex.com - ускорение индексации ссылок
sebot.in - автокомментарии ЖЖ
cooltext.com
- создание кнопок/лого
sayts.ru - автосоздание саттелитов
p9r.ru - поиск боусников
dropbox.com - онлайн флешка
share42.com - создание кнопок для соцзакладок
barykin.com/speed - Ускоритель Яндекса
pixlr.com/editor/ - онлайн фотошоп
domainexposer.com - подбор доменов
www.prospero.ru - дешевые твиты

Авторы скриптов


Добавление региона в теме для Drupal`a

Втр, 11/08/2011 - 01:10 - wshurik

Сразу следует отметить, что рассматриваемый метод подойдет для Друпала 6-й версии (Drupal 6.x).

Для начала еще раз кратко опишу задачу. Необходимо создать регион, в котором можно размещать блоки. Регион должен быть размещен только в ноде, сразу после текста (content), но до комментариев.

Все изменения, проводятся только на уровне темы оформления. В нашем случае это была тема Aurora, найденная на drupal.org. Но идея одинакова для всех тем.

Вначале необходимо определить новый регион в info-файле (в нашем случае - aurora.info). Добавляем в него следующую строчку:

regions[inline] = Inline

Затем указываем вывод региона в шаблоне ноды. Для этого в файле node.tpl.php необходимо прописать следующее:

<?php if ($inline && !$teaser): ?>
<?php print $inline ?>
<?php
endif; ?>

В нашем случае мы написали этот код в самом конце, после вывода links. Как видно, в первой строчке кода осуществляется проверка на тизер. Нам необходимо выводить регион только в полном выводе ноды, а не в тизере. Если не будет этой проверки, регион будет выводиться в любом отображении ноды. Кроме того, можно обернуть вывод региона (вторая строчка в нашем коде) в тег div, чтобы применить к нему класс из style.css. Но это уже по желанию.

И последнее, что необходимо сделать, - модифицировать функцию your_theme_preprocess_node (где your_theme - название вашей темы) в файле template.php. Добавляем в эту функцию следующее:

$vars['inline'] = theme('blocks', 'inline');

В нашем случае эта функция получила такой вид:

function aurora_preprocess_node(&$vars) {
// Send a new variable, $has_terms, to see wether the current node has any terms
$vars
['has_terms'] = count(taxonomy_node_get_terms($vars['node'])) > ;
$vars['inline'] = theme('blocks', 'inline');
return $vars;
}

После всех этих манипуляций рекомендую на всякий случай сбросить кэш в друпале. Теперь на странице конфигурирования блоков появится регион Inline.

Автора автора

Голосов пока нет