logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builder❗

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

❗Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

GLightbox is a pure javascript lightbox (Colorbox alternative without jQuery)❗

It can display images, iframes, inline content and videos with optional autoplay for YouTube, Vimeo and even self-hosted videos.

Demo GLightbox Download GLightbox

Scorri

Inserire un blocco in qualsiasi template (inserimento di un blocco Drupal in un template)

11/10/2025, by Ivan

Drupal 8

Nel template Twig non è possibile richiamare codice PHP, quindi è necessario passare il blocco già pronto al template. Se devi passare una variabile a un template di tipo nodo, puoi utilizzare la funzione themename_preprocess_node() nel tema; per il template della pagina, invece, themename_preprocess_page(). Passi la variabile al template Twig e poi la stampi direttamente al suo interno.

Blocchi creati tramite l’interfaccia di amministrazione

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

Per la funzione themename_preprocess_node() (il preprocess del template del nodo), puoi visualizzare il blocco in questo modo:

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

Nel template node.html.twig puoi ora mostrare il blocco così:

{{ block_output }}

Blocchi creati tramite plugin

Questi blocchi possono essere visualizzati nello stesso modo di quelli creati tramite l’interfaccia amministrativa, ma il codice da usare è leggermente diverso:

$block_manager = \Drupal::service('plugin.manager.block');
// Puoi definire qui le impostazioni del blocco.
$config = [];
$plugin_block = $block_manager->createInstance('system_breadcrumb_block', $config);
// Alcuni blocchi possono avere restrizioni di accesso.
$access_result = $block_plugin->access(\Drupal::currentUser());
// Restituisce un array vuoto se l’accesso è negato.
if ($access_result->isForbidden()) {
  return [];
}
$render = $plugin_block->build();
// È possibile aggiungere tag o contesti di cache qui.
// Puoi anche aggiungerli nei metodi render(), ::getCacheTags, ::getCacheContexts.
return $render;

Lo stesso codice senza commenti:

$block_manager = \Drupal::service('plugin.manager.block');
$config = [];
$plugin_block = $block_manager->createInstance('system_breadcrumb_block', $config);
$access_result = $block_plugin->access(\Drupal::currentUser());
if ($access_result->isForbidden()) {
  return [];
}
$render = $plugin_block->build();
return $render;

Drupal 7

In Drupal 7 la funzione è simile, ma con parametri leggermente diversi: invece dei due parametri block e view, si usa un solo block_view:

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

Per inserire un blocco di tipo Views, si scrive così:

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

In questo modo, in Drupal 7 inseriamo un blocco View; nota che nella delta del primo blocco non c’è un numero, ma scriviamo semplicemente feedbacks-block.

Drupal 6

Per inserire un blocco nel punto desiderato, usa la funzione module_invoke():

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

Ad esempio, per inserire un blocco creato tramite l’interfaccia amministrativa, usa il seguente codice:

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

Dove 12 è l’ID (delta) del blocco.

Se vuoi inserire un blocco di tipo Views, scrivilo così:

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

Dove feedbacks-block_1 è il nome del blocco nella View: feedbacks è il nome della View e block_1 è il nome del display all’interno della View.