9.10.4. API de campos de Drupal 8. Formateador de Drupal: mostrar datos en la página.
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.
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.