Коллекция материалов и статей для веб разработчиков


Программно вывести блок на Drupal - module_invoke, block_load

Для программного вывода блоков на drupal необходимо использовать ф-ыю module_invoke. Сразу оговорюсь, что эту функцию можно использовать не только для вывода блоков. Что нам нужно знать чтобы вывести блок? Функция принимает 3 параметра:

$module: Модуль к которому принадлежит блок.
$hook: Хук который мы вызываем, для вывода блока "block_view".
$block_name: Имя блока.

В итоге получаем для вывода блока, созданного модулем views с именем "news-block", необходимо написать следующий код:

$block = module_invoke('views', 'block_view', 'news-block');
echo $block['subject']; //Заголовок блока
echo $block['content']; //Содержимое

Для вывода блока webform с именем client-block-6:

$block = module_invoke('webform', 'block_view', 'client-block-6');
echo $block['subject'];
echo $block['content'];

Для drupal 6 это будет выглядеть немного по другому:

$block = module_invoke('views', 'block', 'view', 'news-block');
echo $block['subject'];
echo $block['content'];

Более подробное описание ф-ыи можно посмотреть тут drupal.org - module_invoke

Есть второй метод вывода блока используя block_load(), на мой взгляд он лучше тем что выводит полностью с Contextual links и с учетом кеша. Нужных параметра только два: имя блока и имя модуля.

$block = block_load('webform', 'client-block-6');
$block_content = _block_render_blocks(array($block));
$build = _block_get_renderable_array($block_content);
print drupal_render($build);

Более подробное описание ф-ыи можно посмотреть тут drupal.org - block_load

Tags: 

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA