Print block anywhere in tpl.php files

Есть 2 способа (По крайней мере - которые я знаю) при помощи которых можно программно вывести любой блок в шаблоне вашей темы, например page.tpl.php.

Способ №1. module_invoke()

<?php
$block = module_invoke('module_name', 'block_view', 'block_name');
print render($block);
?>

Минус данного метода заключается в том, если у вас включен модуль Contextual links, он не будет работать. Т.е. будет выведено только само тело блока.

Способ №2. block_load()

<?php
$block = block_load('module_name', 'block_name');
$output = drupal_render(_block_get_renderable_array(_block_render_blocks(array($block))));
print $output;
?>

Плюсы данного метода в том что будет виден заголовок блока и contextual link.