20
Mayo
2011
Papaya Media

¿Cómo insertar un bloque de Drupal por medio de PHP en medio del contenido de un nodo?

Algunas veces nos encontramos con la necesidad de insertar un bloque en medio del contenido de un nodo en Drupal. O necesitamos publicar el mismo bloque varias veces dentro de la misma página, entonces usar las opciones que Drupal ofrece para mostrar bloques no es suficiente.

Con un poco de PHP se puede solucionar esto:

<?php
  $block
= module_invoke($module, 'block', 'view', $delta);
  print
theme('block', (object) $block);
?>

La variable $module será el nombre del módulo que implementa el bloque. Y la variable $delta hace referencia al ID del bloque dentro del módulo (en este enlace pueden leer la documentación acerca de cómo crear bloques en un módulo).

Los bloques creados por medio del sistema de administración de bloques de Drupal son creados por el módulo block, y el delta de cada uno es el id del bloque. Por ejemplo, para imprimir el bloque personalizado # 7 usamos el siguiente código:

<?php
  $block
= module_invoke('block', 'block', 'view', 7);
  print
theme('block', (object) $block);
?>

En realidad esto puede usarse en cualquier parte a donde tengamos acceso con PHP. Puede ser en el contenido de otro bloque, en el archivo page.tpl.php del tema, o cualquier otra parte del sitio.

Lo malo es que al hacerlo así

Enviado por Andy Garcia (no verificado) el Jue, 07/14/2011 - 09:46.

Lo malo es que al hacerlo así se inserta un div con ID igual para todos los bloques así que si tienes más de 1 te dará error de validación W3.

Pero de eso se encarga el

Enviado por Papaya Media el Jue, 07/14/2011 - 09:55.

Pero de eso se encarga el tema con la función theme_block

Simplemente genial, gracias.

Enviado por Andy Garcia (no verificado) el Vie, 07/08/2011 - 09:42.

Simplemente genial, gracias.

Enviar un comentario nuevo

El contenido de este campo se mantiene privado y no se mostrará públicamente.
  • No se admite ninguna etiqueta HTML
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato

CAPTCHA de imagen
Ingrese los 3 caracteres de la imagen. No hay diferencia entre mayúsculas y minúsculas.