Как программно вывести блок в Drupal

Аватар пользователя artur.baranok
Опубликовано пн, 07/06/2015 - 16:23 пользователем artur.baranok
Форумы: 

Вывести содержание блока, созданного из админки (admin/build/block/add), с идентификатором 6:

$block = module_invoke('block', 'block', 'view', 6);
echo $block['content'];

Параметры функции module_invoke:

1. Название модуля в котором определён блок. Например для блока Сейчас на сайте, параметр будет равен user. Если блок создан через админку, то параметр будет равен block.

2. Название хука. Всегда block.

3. Название действия. Всегда view. Подробнее.

4. Идентификатор блока. Можно узнать на странице admin/build/block — нужно перейти в настройки блока и посмотреть последний параметр в адресной строке. Например для адреса admin/build/block/configure/menu/secondary-links, идентификатор будет равен secondary-links.

Парочка примеров:

// Вывести блок "Сейчас на сайте"
$block = module_invoke('user', 'block', 'view', 3);
echo $block['content'];

// Вывести блок "Основное меню"
$block = module_invoke('menu', 'block', 'view', 'primary-links');
echo $block['content'];