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);
?>
$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;
?>
$block = block_load('module_name', 'block_name');
$output = drupal_render(_block_get_renderable_array(_block_render_blocks(array($block))));
print $output;
?>
Плюсы данного метода в том что будет виден заголовок блока и contextual link.
- Categories:
- heihachi's blog
- Add new comment
- 481 reads

Recent comments
5 hours 39 min ago
8 hours 31 min ago
1 day 10 hours ago
1 day 17 hours ago
4 days 2 hours ago
4 days 2 hours ago
2 weeks 1 day ago
3 weeks 7 hours ago
4 weeks 2 days ago
7 weeks 5 days ago