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

9.10.4. API de campos de Drupal 8. Formateador de Drupal: mostrar datos en la página.

04/05/2025, by Ivan

Menu

En este artículo consideraremos los Field Formatters, que nos permiten editar la visualización de los campos y mostrarlos en la página.

En artículos anteriores creamos el tipo de campo Link; en este artículo veremos cómo se muestran estos campos en la página y qué clase es responsable de ello. Cada campo que agregas a través de Drupal puede visualizarse y configurarse en la pestaña Manage display.

Página de visualización de campos

En la columna Format puedes elegir cómo se visualizará el campo. Esta columna se genera gracias a las clases de Field Formatter. Veamos la clase del módulo Link que se encarga de mostrar el enlace en la página:

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

La anotación de la clase muestra a qué tipo de campo pertenece este formatter:

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

En este archivo, el método que más nos interesa es viewElements(); este método es responsable de la salida de datos en la página. Ten en cuenta que el formatter no realiza consultas a la base de datos, toma los datos de la variable $items. En $items se pasan los datos renderizados de la entidad. Esto permite separar las responsabilidades entre el Widget (entrada de datos), el Storage (almacenamiento en BD) y el Formatter (salida de datos), lo cual es muy útil para el rendimiento y el mantenimiento del código.