drupal_get_region_content()
retorna o conteúdo que foi definido com as chamadas anteriores para drupal_add_region_content()
, mas não inclui o conteúdo dos blocos, que são renderizados na página por meio de block_page_build () .
Se você procurar "drupal_add_region_content" no código fonte do Drupal, notará que a função é chamada por:
drupal_get_region_content()
install_display_output()
template_preprocess_maintenance_page()
update_task_list()
O que você define para os blocos na página administrativa é em quais regiões os blocos serão renderizados, mas seu conteúdo não será adicionado drupal_add_region_content()
; de fato, nenhuma das funções listadas acima (que são as únicas chamadas de funções drupal_add_region_content()
, exceto o código para testar uma instalação do Drupal) é para renderizar / adicionar o conteúdo do bloco.
Se você precisar renderizar os blocos em seu próprio código, verifique o código usado no block_page_build()
. Em particular, este é o código que provavelmente é mais útil para você:
// Fetch a list of regions for the current theme.
$all_regions = system_region_list($theme);
$item = menu_get_item();
if ($item['path'] != 'admin/structure/block/demo/' . $theme) {
// Load all region content assigned via blocks.
foreach (array_keys($all_regions) as $region) {
// Assign blocks to region.
if ($blocks = block_get_blocks_by_region($region)) {
$page[$region] = $blocks;
}
}
// …
}
As duas primeiras linhas verificam se a página exibida não é a página de demonstração usada para mostrar onde as regiões temáticas estão localizadas.
Se você precisar renderizar os blocos de uma maneira diferente, é mais provável que você esteja interessado em substituir theme_block () no seu tema ou (ainda mais provavelmente) em criar um arquivo de modelo block.tpl.php personalizado. Outra maneira de alterar a maneira como os blocos são renderizados é usar uma função de pré-processamento para os blocos ( hook_preprocess_block () ).
drupal_set_region_content()
para definir o conteúdo da região?