Drupal показывает данные блока в области шаблона

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

Теперь мой шаблон изменен, и я хочу интегрировать данные этого блока в один из моих файлов .tpl. Как я могу продолжить?


person shasi kanth    schedule 03.06.2011    source источник


Ответы (2)


Вы не указали используемую версию Drupal, для Drupal 6 это можно сделать:

$block = module_invoke('views', 'block', 'view', 'block_name');
print $block['content'];

Для drupal 7 вы можете попробовать этот (более громоздкий) подход:

$block = block_load('views', 'block_name');      
$output = drupal_render(_block_get_renderable_array(_block_render_blocks(array($block))));        
print $output;

Надеюсь, это поможет!

person stefgosselin    schedule 03.06.2011
comment
Спасибо, я использую drupal6, но фрагмент кода, который вы дали, не сработал... я получил решение отсюда: api.drupal.org/api/drupal/includes--module.inc/function/ - person shasi kanth; 03.06.2011
comment
Я собирался отредактировать ответ, чтобы исправить версию кода D6, но пример на этой странице такой же, как тот, который я опубликовал, единственная разница, которую я увидел, заключалась в параметре имени блока. Я что-то пропустил? Однако я должен обновить версию D7. - person stefgosselin; 03.06.2011
comment
Спасибо, и, наконец, это то, что я использовал, чтобы заставить его работать: module_invoke('‹my_module_name_that_has_block_code›', 'block', 'view', 0); Я полагаю, что первым параметром должно быть имя модуля . - person shasi kanth; 03.06.2011

В D6, если вы хотите, чтобы содержимое блока было тематическим как блок:

$block = module_invoke('views', 'block', 'view', 'block_name');
print theme('block', (object) $block);
person rcourtna    schedule 02.04.2013