Drupal 7: Как вставить регион в ноду?

Drupal 7: Как вставить регион в ноду?

Я очень люблю использовать регионы ВНУТРИ ноды, т.е. например, между основным содержимым и комментариями. Недавно пришлось довольно долго гуглить, пока я не нашла работающий рецепт для Drupal 7.

Итак, во-первых, заявляем регион в файле theme.info...

regions[BLOCK_REGION_NAME] = Block region name

Во-вторых, добавляем следующий сниппет в ваш template.php, в функцию preprocess_node

/**
* Implements template_preprocess_node().
*/
function YOUR_THEME_preprocess_node(&$vars) {
  // Add 'After node' block region inside node.
  if ($block_region_name = block_get_blocks_by_region('BLOCK_REGION_NAME')) {
    $vars['BLOCK_REGION_NAME'] = $block_region_name;
  }
}

Тут главное не забыть поменять BLOCK_REGION_NAME на машинное имя региона, который вы указали на первом шаге. А то я вот поменять забыла и потратила еще минут 20 на отладку :)))

И третье - добавить следующий код в ваш node.tpl.php

<?php if ($BLOCK_REGION_NAME): ?>
  <div class="blablabla">
    <?php print render($BLOCK_REGION_NAME); ?>
  </div>
<?php endif; ?>

Спасибо, Kahthong.com за рецепт!!!

Главные темы