Если вы решили вывести блок, реализованный в каком либо модуле, программно, то следующие примеры кода помогут вам.
Используя block API
Запрашиваем данные блока через API, готовим массив для последующего рендеринга:
1 2 3 |
$block = block_load($module_name, $block_delta); $blocks = _block_render_blocks(array($block)); $blocks_build = _block_get_renderable_array($blocks); |
На этом этапе можно (если хотите) отключить стандартный wrapper блока, чтобы вывести только содержимое блока:
1 |
unset($blocks_build[$module_name . '_' . $block_delta]['#theme_wrappers']); |
Остаётся только выполнить рендеринг:
1 |
print drupal_render($blocks_build); |
Программный вывод блока, определенного через views
Если требуется вывести блок, определенный через модуль views, то можно использовать views API.
Вам нужно будет знать имя объекта views и имя отображения (display), т.к. в одном представлении может быть несколько отображений.
1 2 3 4 |
$view = views_get_view('machine-name'); $view->set_display('default'); $view->execute(); print $view->render(); |
или в одну строку:
1 |
print views_embed_view('machine-name', 'display_name'); |