Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll

Inserción de un bloque en cualquier plantilla (Drupal – insertar bloque en plantilla)

11/05/2025, by Ivan

Drupal 8

En un template Twig no puedes ejecutar código PHP, por lo que debes pasar el bloque ya renderizado al template. Si necesitas pasar una variable al template de nodo, usa la función themename_preprocess_node() en tu tema; para la página usa themename_preprocess_page(). Asigna la variable en PHP y luego la muestras en Twig.

Bloques creados desde la administración

$block = \Drupal\block\Entity\Block::load('your_block_id');
$variables['block_output'] = \Drupal::entityTypeManager()
  ->getViewBuilder('block')
  ->view($block);

En themename_preprocess_node() (template de nodo) se haría así:

function themename_preprocess_node(&$variables) {
  $block = \Drupal\block\Entity\Block::load('your_block_id');
  $variables['block_output'] = \Drupal::entityTypeManager()
    ->getViewBuilder('block')
    ->view($block);
}

Y en node.html.twig:

{{ block_output }}

Bloques creados vía plugins

Se muestran como los anteriores, pero con este código:

$block_manager = \Drupal::service('plugin.manager.block');
// Configuración del bloque si es necesario.
$config = [];
$plugin_block = $block_manager->createInstance('system_breadcrumb_block', $config);
// Comprobación de acceso.
$access_result = $plugin_block->access(\Drupal::currentUser());
if ($access_result->isForbidden()) {
  return [];
}
$render = $plugin_block->build();
return $render;

Drupal 7

En Drupal 7 la función es la misma, solo cambia la llamada:

print render(module_invoke('block', 'block_view', '12'));

Para un bloque de Views:

print render(module_invoke('views', 'block_view', 'feedbacks-block'));

Drupal 6

Para insertar un bloque en el lugar deseado usa module_invoke():

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

Para un bloque estándar:

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

Donde 12 es el delta del bloque.

Y para un bloque de Views:

$block = module_invoke('views', 'block', 'view', 'feedbacks-block_1');
print $block['content'];

Donde feedbacks-block_1 es el nombre del bloque en la vista (feedbacks = nombre de la vista, block_1 = display).