Вы здесь

Добавление региона в node.tpl.php (Drupal)

Как добавить регион в 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, то такой вариант уже не подойдет. Делается несколько иначе:

  1. так же прописывается в THEMENAME.info строка 
  2. regions[name] = Name region

  3. Добавляем в файле node.tpl.php код
  4. <?php print $name ?>

    или

    <?php if ($name): ?>  // проверяем есть ли блоки в регионе instory

    <?php print $name ?> // печатаем регион instory

    <?php endif; ?>  // цикл завершен

    в месте, где будет выводиться регион.

  5. В файл template.php (если его нет, то создаем в папке с темой и вначале добавим код <?php ) варианты кода:
  • если регион нужен в тизере (анонсе):

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