Не отображается блок в определенном регионе

Главные вкладки

Аватар пользователя PetrChe PetrChe 1 марта 2009 в 19:37

Есть регион $block_top_right. В node.tpl.php прописываю:

<?php if ($block_top_right): ?>
  <?php print $block_top_right ?>
<?php endif; ?>

создаю блок, затем добавляю его в нужный регион и все выводится нормально. Но, когда я пытаюсь темизировать страницу определенного типа материала (создаю node-story.tpl.php), то блок перестает выводится.

Пробовал добавить вывод в сам файл node-story.tpl.php и блок вывелся, но вроде он должен и без этого выводится, если все это есть в node.tpl.php. Это нормально или я что-то не так делаю?

Комментарии

Аватар пользователя Мак Сим@drupal.org Мак Сим@drupal.org 2 марта 2009 в 13:31

Если в шестерке вы выводите созданный блок в ноде, то необходимо дописать в template.php

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'])) > 0;
  $vars['inline'] = theme('blocks', 'inline');

  return $vars;
}

Aurora в данном случае просто название моей темы. В вашем случае надо заменит inline на block_top_right. После этого ваш вызов региона будет работать.

Аватар пользователя PetrChe PetrChe 2 марта 2009 в 14:59

Мак Сим, спасибо за ответ. Как раз вот это и искал, но, к сожалению, найти не смог. Теперь ради интереса пытаюсь выяснить в чем разница между помещением вывода блока в node.tpl.php и page.tpl.php. В каких случаях используется первое и второе?