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

9.10.4. API dei campi di Drupal 8. Formatter di Drupal - visualizzare i dati nella pagina

16/10/2025, by Ivan

Menu

In questo articolo prenderemo in esame i Field Formatter, che ci permettono di modificare la modalità di visualizzazione dei campi e mostrarli nella pagina.

Negli articoli precedenti abbiamo creato un campo di tipo Link; in questo articolo vedremo come questi campi vengono visualizzati nella pagina e quale classe è responsabile della loro rappresentazione. Ogni campo che aggiungi tramite Drupal può essere mostrato nella pagina e le sue impostazioni possono essere modificate nella sezione Manage display.

Pagina Manage display

Nella colonna Format puoi scegliere come visualizzare il campo. Questa colonna è generata grazie alle classi Field Formatter. Vediamo un esempio di classe proveniente dal modulo Link, che si occupa della visualizzazione dei collegamenti nella pagina:

core/modules/link/src/Plugin/Field/FieldFormatter/LinkFormatter.php

L’annotazione della classe mostra a quale tipo di campo appartiene questo formatter.

/**
 * Implementazione del plugin 'link' formatter.
 *
 * @FieldFormatter(
 *   id = "link",
 *   label = @Translation("Link"),
 *   field_types = {
 *     "link"
 *   }
 * )
 */

In questo file, il metodo che ci interessa maggiormente è viewElements(), poiché è il metodo responsabile della visualizzazione dei dati nella pagina. È importante notare che il formatter non invia richieste al database, ma utilizza i dati provenienti dalla variabile $items.