Necesito generar algunas regiones en la plantilla html.tpl.php, ya que estas no cambian entre page.tpl.php y page-front.tpl.php (solo por nombrar dos). Básicamente quiero evitar la duplicación de código.
Sin embargo, parece que no hay nada asociado con las regiones en html.tpl.php, ni pude recuperar nada usando drupal_get_region_content (con y sin parámetros, solo devuelve una matriz vacía).
Ideas?
drupal_set_region_content()
configurar el contenido de la región?drupal_add_region_content()
pero no veo ningún punto en ello: configuro el contenido de las regiones a través de la interfaz de administración de bloques.drupal_add_region_content()
.Respuestas:
Resolví así:
y luego pude hacer
fuente
drupal_get_region_content()
devuelve el contenido que se configuró con llamadas anteriores adrupal_add_region_content()
, pero no incluye el contenido de los bloques, que se representan en la página a través de block_page_build () .Si busca "drupal_add_region_content" en el código fuente de Drupal, notará que la función es llamada por:
drupal_get_region_content()
install_display_output()
template_preprocess_maintenance_page()
update_task_list()
Lo que configura para los bloques en la página administrativa es en qué regiones se representarán los bloques, pero su contenido no se agrega
drupal_add_region_content()
; de hecho, ninguna de las funciones enumeradas anteriormente (que son las únicas funciones que llamandrupal_add_region_content()
, excepto el código para probar una instalación de Drupal) es para representar / agregar el contenido del bloque.Si necesita representar los bloques en su propio código, debe verificar el código utilizado en
block_page_build()
. En particular, este es el código que probablemente sea más útil para usted:Las primeras dos líneas verifican que la página que se muestra no es la página de demostración utilizada para mostrar dónde se ubican las regiones temáticas.
Si necesita renderizar los bloques de una manera diferente, es más probable que esté interesado en anular theme_block () en su tema, o (aún más probable) crear un archivo de plantilla block.tpl.php personalizado. Otra forma de alterar la forma en que se representan los bloques es usar una función de preproceso para los bloques ( hook_preprocess_block () ).
fuente