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

Scorri
04/10/2025, by Ivan

Menu

I blocchi in Drupal 8 sono istanze del plugin dei blocchi.
Il Block Manager di Drupal scansiona i vostri moduli alla ricerca di classi che contengono l’annotazione @Block.

L’esempio di codice riportato di seguito utilizza l’annotazione @Block insieme alle proprietà «id» e «admin_label» per definire un blocco personalizzato.

Create il file src/Plugin/Block/HelloBlock.php nello scheletro del modulo creato in precedenza e aggiungete il seguente codice.

Per fare in modo che il vostro sito Drupal riconosca questa nuova classe, è necessario svuotare la cache.

<?php

namespace Drupal\hello_world\Plugin\Block;

use Drupal\Core\Block\BlockBase;

/**
 * Provides a 'Hello' Block.
 *
 * @Block(
 *   id = "hello_block",
 *   admin_label = @Translation("Hello block"),
 *   category = @Translation("Hello World"),
 * )
 */
class HelloBlock extends BlockBase {

  /**
   * {@inheritdoc}
   */
  public function build() {
    return [
      '#markup' => $this->t('Hello, World!'),
    ];
  }

}

Per aggiungere l’«Hello block», potete andare su Struttura → Layout blocchi (admin/structure/block) e cliccare sul pulsante «Posiziona blocco» associato a ciascuna regione disponibile.

Cliccando sul pulsante «Posiziona blocco» per una qualsiasi regione, apparirà una finestra di dialogo con l’elenco di tutti i blocchi disponibili. Per trovare rapidamente il vostro blocco, utilizzate l’opzione «Filtra per nome del blocco» oppure scorrete l’elenco fino a trovare «Hello block». In questo modo potete aggiungere qualsiasi numero di istanze del blocco personalizzato ovunque sul vostro sito.

Risoluzione dei problemi

  • Il nome della classe e il nome del file devono essere identici (classe HelloBlock e /src/Plugin/Block/HelloBlock.php). Se il nome della classe è diverso, il blocco apparirà nell’elenco dei blocchi disponibili, ma non potrete aggiungerlo.
  • Controllate sempre due volte tutti i percorsi e i nomi dei file. Il vostro file .php deve trovarsi nella directory corretta (/src/Plugin/Block/), altrimenti Drupal non lo rileverà.
  • Se il vostro blocco non viene posizionato in una regione senza errori a schermo o nel watchdog, controllate i log degli errori PHP/Apache.
  • Se il vostro blocco non è presente nell’elenco, ricordate di ricostruire le cache di Drupal (ad esempio con drush cr).
  • Assicuratevi che il nome del modulo sia tutto in minuscolo. Alcuni utenti hanno segnalato che i blocchi non vengono visualizzati per moduli con nomi in camelCase. Ad esempio, myModule non mostrerà mai i blocchi definiti, mentre deve essere my_module. Questo è stato verificato l’ultima volta in Drupal 8.8.1

Nota: utilizzo dei template Twig con i blocchi personalizzati

1. Aggiungete l’hook_theme al vostro file .module.
Nota: non chiamate la funzione di tema come «block__...» – in questo modo non verranno passate variabili ai template dei blocchi. Invece potete usare il nome del modulo come prefisso.

2. Usate «#theme» nell’array di rendering nel metodo build() e passate le variabili allo stesso livello di «#theme», come «#varname».