Как добавить регион в CMS Drupal очень просто. Сразу замечу, рассматривается 6-я версия Друпала (CMS Drupal 6.x).
Для этого достаточно прописать его в файле THEMENAME.info
regions[name] = Name region
Выводиться добавлением в файл page.tpl.php кода <?php print $name?> или правильней с проверкой на наличие блока в регионе:
<?php if ($name): ?> // проверяем есть ли блоки в регионе instory
<?php print $name ?> // печатаем регион instory
<?php endif; ?> // цикл завершен
А если надо вывести регион в файле node.tpl.php, то такой вариант уже не подойдет. Делается несколько иначе:
- так же прописывается в THEMENAME.info строка
- Добавляем в файле node.tpl.php код
- В файл template.php (если его нет, то создаем в папке с темой и вначале добавим код <?php ) варианты кода:
regions[name] = Name region
<?php print $name ?>
или
<?php if ($name): ?> // проверяем есть ли блоки в регионе instory
<?php print $name ?> // печатаем регион instory
<?php endif; ?> // цикл завершен
в месте, где будет выводиться регион.
- если регион нужен в тизере (анонсе):
function THEMENAME_pprocess_node(&$variables){
if(!$vars['teaser']) {
foreach (array('name') as $region) {
$variables[$region] = theme('blocks', $region);
}
}
}
- если регион не нужен в тизере (анонсе):
function THEMENAME_pprocess_node(&$vars) {
if (!$vars['teaser']){
foreach (array('name') as $region) {
$vars[$region] = theme('blocks', $region);
}
}
}
Теперь еще решение задачи в довесок:
Надо вывести какой-то конкретный код на странице (например АдСенс), но что б в анонсе его не было.
Ответ: добавляем в файл node.tpl.php код
<?php if ($page): ?>
<!-- тут любой html-код -->
<?php endif; ?>
Подсказывал пользователь форума Баблорубов: Emilio13