Можливості Drupal 8 можна порівняти з безкрайніми колосистими полями — запрошуємо вас на ще одну прогулянку ними! Drupal 8 дозволяє підвищувати швидкість сайту з модулем BigPipe у ядрі, приводити сайт у відповідність з найновішими стандартами веб-доступності, покращувати SEO завдяки цілому ряду корисних модулів, полегшувати процес апгрейду сайтів, наводити ідеальний порядок в ролях та дозволах — і це лише початок списку. Окрім усього іншого, Drupal 8 дозволяє створювати кастомні форматери полів, тож сьогодні ми коротенько розглянемо, для чого вони потрібні і як їх будувати.
Форматери полів у Drupal 8 та що вони роблять
Згідно з архітектурою Drupal 8, форматери полів є плагінами, причому дуже корисними. Їхня основна місія — розповідати Drupal’у, в якому вигляді презентувати кінцевим користувачам сайту значення полів та опції з налаштування цих полів. Важливо, щоб це відображало ваші унікальні ідеї та задуми, а користувачам було зручно і цікаво. Щоб мати абсолютну свободу в реалізації цього, є можливість створювати кастомні форматери полів у Drupal 8.
Декілька порад щодо створення кастомних форматерів полів у Drupal 8
Створення модуля
Все починається з модуля — адже це Drupal! Отже, перш за все, потрібно створити модуль, в якому буде зберігатися код майбутнього форматера. Щоб реалізувати це, створіть наступну структуру папок в папці модуля:
MyModule/src/Plugin/Field/FieldFormatter
Створення файлу класу форматера полів
Чудово, папка готова, і тепер до неї потрібно додати новий файл класу форматера полів (по одному для кожного форматера, який ви хочете створити): MyModule/src/Plugin/Field/FieldFormatter/MyFormatter.php
Простір імен повинен бути таким:
Drupal\MyModule\Plugin\Field\FieldFormatter
Плагіни є класами, які наслідуються один від одного. Отже, клас форматера полів повинен наслідуватись від класу \Drupal\Core\Field\FormatterBase. Назва класу MyFormatter повинна відображати суть його діяльності, і, головне, мати суфікс “Formatter”.
Створення анотації
Анотації — чудовий приклад об’єктно-орієнтованого програмування в Drupal 8, адже вони містять метадані класів. Щоб оголосити про свій новий плагін, потрібно зробити анотацію @FieldFormatter. Вона повинна містити важливі дані про ваш форматер полів, такі як ID (машинне ім’я), мітка (ім’я, зручне для читання людиною) і типи полів, для яких він призначений.
Застосування методів
Метод settingsForm() дозволить вам визначити додаткові опції, а метод settingsSummary() відповідає за інформування кінцевих користувачів щодо налаштувань форматера. Метод viewElements() має справу з рендерингом даних полів.
Трішки далі «вглиб полів»
Якщо вас цікавлять більш детальні технічні огляди на теми Drupal-полів та їх форматування, читайте блоги наших розробників про Field API в Drupal 8 (кастомні форматери і віджети), а також про модуль Field Image Tooltips. Останній був створений однією з наших команд, має справу з додаванням зображень з pop-up підказками та є доступним як для Drupal 7, так і для Drupal 8.
Сподіваємось, вам сподобалася ця коротенка «прогулянка полями» в Drupal 8. Наші розробники готові допомогти вам у створенні кастомних форматерів полів, перенесенні сайту на Drupal 8 або створенні абсолютно нового сайту для вас. Давайте обговоримо це просто зараз!