Программный вывод блоков в CMS Drupal 7

Вывод произвольных блоков в любом количестве на заданные регионы темы оформления Drupal программным путем очень удобно использовать, если вам необходимо отобразить блок в теле определенной ноды или других регионах.

Для этого можно использовать следующую конструкцию module_invoke(). Пример вывода формы авторизации Drupal 7 в ноде
<?php
$module_name = 'user';   // - имя модуля, который отвечает за реализацию
$block_delta = 'login'; // - уникальный идентификатор блока в пределах модуля
$block = module_invoke($module_name, 'block_view', $block_delta);
print render($block['content']); // - вывод собранного блока на сайте
?>
Последнее, в чем необходимо разобраться - это именование названия модуля и дельта модуля.

Определение "Module Name" и "Delta block"

Самый правильный путь зайти в phpmyadmin базы данных mysql и найти таблицу block, в ней и будет отражено название полей module и delta.
Второй более простой способ, зайти в панель редактирования блока и найти в адресной строке браузера данные параметры.
Пример, admin/structure/block/manage/user/login/configure
Я использовал еще вот такой код:
<?php
$block = _block_get_renderable_array(_block_render_blocks(array(block_load('webform', 'client-block-69'))));
print render($block);
 ?>

Поделиться

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

Restricted HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.