Доброго дня, товарищи!
На орге нашел решение по выводу региона в шаблон node.tpl.php, однако, у меня почему-то не сработало. По аналогии сделал так (код обновлен на корректный):
В template.php добавляем:
<?php
function mytheme_preprocess_node(&$vars) {
if ($blocks = block_get_blocks_by_region('my_region')) {
$vars['my_region'] = $blocks;
$vars['my_region'] = $blocks;
$vars['my_region']['#theme_wrappers'] = array('region');
$vars['my_region']['#region'] = 'my_region';
}
}
?>
В инфо файл темы:
<?php
regions[my_region] = My region
?>
В шаблон:
<?php
<div class="content-above">
<?php print render($my_region); ?>
</div>
?>
Однако, ничего не выводит, кроме пустого дива. В то же время на странице списка блоков есть выбор региона, но на странице просмотра регионов (admin/structure/block/demo/my_theme) регион не отображается. Возможно, есть ошибка в коде, добавляемом в template.php?
Комментарии
<variable_name>
замени на имя переменной
Спасибо!
Все равно не выходит - видимо, нужно что-то вместо
<?php print render($content_above); ?>
подставлять, но я уже все перепробовалUPD: проблема у мну была в том, что функцию обозвал 'preprocess_node (&$vars)', а в ней использовались '$variables'.
Нашол альтернативное решение которое намного проще этого, так как это у меня в упор не работало)))
Просто нужно вставить в node.tpl.php
<?php if (block_get_blocks_by_region('my_region')): ?>
<?php print render(block_get_blocks_by_region('my_region')); ?>
<?php endif; ?>
и все))) проверено, работает. И не нужно никаких хуков в template.php
У меня тоже работает, что-то всё как-то очень легко, в чём подвох?))
Надеюсь, не совсем некрофилия, но тут всплыло тоже.
Как сделано у меня:
theme.info
template.php
//бла-бла-бла
$variables['below_node'] = block_get_blocks_by_region('below_node');
}
node.tpl.php
<?php print render($below_node); ?>
<!--остальное бла-бла, в том числе и $content['comments']-->