


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.


Ora diciamo che vogliamo aggiungere la possibilità per il site builder di inserire una parte di configurazione per ogni istanza del nostro blocco personalizzato. Tenete sempre presente che tutte le configurazioni del sito in Drupal 8 possono essere esportate da un sito di sviluppo e importate su un sito di produzione (conosciuto come Gestione della configurazione).


Aggiungete il seguente metodo alla classe HelloBlock. In questo esempio si trova nel file src/Plugin/Block/HelloBlock.php, ma, man mano che iniziate a pensare in una modalità più orientata agli oggetti, la posizione fisica nella struttura delle cartelle è meno importante rispetto allo spazio dei nomi. Se siete programmatori OO molto attenti, terrete queste due cose strettamente allineate.


Per utilizzare la configurazione delle istanze del blocco, possiamo modificare il metodo build() della classe HelloBlock:
/** * {@inheritdoc} */ public function build() { $config = $this->getConfiguration(); if (!empty($config['hello_block_name'])) { $name = $config['hello_block_name']; } else { $name = $this->t('a nessuno'); } return [ '#markup' => $this->t('Ciao @name!', [ '@name' => $name, ]), ]; }


Parte V di Guida pratica alla creazione di moduli base in Drupal 8
Dallo .info ai test, solo le basi
Ricordate, all’inizio di questa lezione ho detto che avremmo definito un blocco con un form? Bene, è arrivato il momento di occuparci di questo.


Questa guida include i tutorial per creare un proprio tipo di campo, un widget e un formattatore in Drupal 8.


Questo tutorial è stato originariamente pubblicato su Web Wash. Tuttavia, Berdir ha chiesto se potevo pubblicarlo anche qui, quindi eccolo.
Il modulo in Drupal 7 permette di memorizzare esempi di codice/snippet in un campo. Viene fornito con un campo personalizzato chiamato “Campo snippet” e mostra tre elementi del form: descrizione, codice sorgente e modalità di evidenziazione della sintassi (cioè il linguaggio di programmazione).


In Drupal 8, tutti i tipi di campo, i widget e i formattatori sono plugin.
Vengono scoperti automaticamente se posizionati nella struttura di directory prevista e se usano la corretta annotazione.
La struttura di directory per un modulo che implementa tutti e tre appare così:
foo_bar_fields


I tipi di campo definiscono le proprietà e il comportamento dei campi. I tipi di campo sono definiti come plugin, quindi è consigliato leggere l’API dei plugin prima di iniziare a scrivere un nuovo tipo di campo.
Per creare un tipo di campo in Drupal 8, serve una classe con l’annotazione FieldType.
Percorso della classe del tipo di campo: MODULE_NAME/src/Plugin/Field/FieldType
/modules/foo/src/Plugin/Field/FieldType/BazItem.php
