Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll
19/04/2025, by Ivan

Menu

В этой статье мы рассмотрим форматтеры полей, которые позволяют нам редактировать отображение полей и выводить их на странице.

В предыдущих статьях мы создавали тип поля Link, а в этой статье мы посмотрим, как эти поля отображаются на странице и какой класс за это отвечает. Каждое поле, которое вы добавляете через Drupal, может быть отображено на странице, и его параметры можно редактировать на странице Управление отображением.

Страница управления отображением

В колонке Формат вы можете выбрать, как будет отображаться поле. Эта колонка формируется благодаря классам Field Formatter. Давайте посмотрим на класс из модуля Link, который отвечает за отображение ссылки на странице:

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

Аннотация класса показывает, к какому типу поля относится данный форматтер.

/**
 * Реализация плагина форматтера 'link'.
 *
 * @FieldFormatter(
 *   id = "link",
 *   label = @Translation("Ссылка"),
 *   field_types = {
 *     "link"
 *   }
 * )
 */

В этом файле нас в первую очередь интересует метод viewElements(), который отвечает за вывод данных на страницу. Обратите внимание, что форматтер не делает запросов к базе данных — он берет данные из переменной $items. В $items...