Создание кастомных хлебных крошек в Drupal

С 8й версии друпал предлагает механизм переопределения/задания хлебных крошек через реализацию сервиса breadcrumb_builder.

Немного теории

При создании хлебных крошек, Drupal вызывает объявленные сервисы в порядке их приоритетов, и опрашивает их, определяя кто будет наполняют бредкрамб ссылками.

Каждый из сервисов должен реализовывать интерфейс BreadcrumbBuilderInterface. У него всего два метода: applies и build, и оба получают объект, совместимый с RouteMatchInterface.

Первый (applies) служит для того, чтобы сигнализировать, что маршрут может быть обработан данным сервисом. Он возвращает boolean значение. Тот сервис (в порядке приоритетов), который вернет true, будет вызван далее через метод build.

Build должен создать и вернуть крошки в виде объекта Drupal\Core\Breadcrumb\Breadcrumb.

Чуть чуть практики

Когда стало ясно, как это работает, покажу пример из своей практики.

Мне нужно было вывести хлебные крошки (breadcrumbs), основанные на категории для страницы товара модуля Commerce. Т.к. категории могли быть вложенными, то требуется построить иерархический бредкрамб, включающий родительские страницы таксономии.

Реализацию я сделал в виде модуля, названного custom_blocks. Для модуля нужен описатель, файл custom_blocks.info.yml. Я разместил его в /modules/custom/custom_blocks:

Чтобы объявить ядру о наличии сервиса, его описание требуется добавить в файл custom_blocks.services.yml в том же каталоге модуля (/modules/custom/custom_blocks):

Теперь Drupal ожидает, что вы разместите реализацию BreadcrumbBuilderInterface в файле /modules/custom/custom_blocks/src/ProductBreadcrumbBuilder.php

Мало букафф? Читайте есчо !

Подключить скрипт / библиотеку в шаблоне twig

Ноябрь 5, 2023 г.

Подключение скрипта или стилей "по-месту", на мой взгляд, не плохая практика, т.к. соответствующие файлы не будут подключаться, если в них нет необходимости. От вас потребуется объявить нужный скрипт и/или стили как библиотеку. Это можно сделать ...

Читать

Проверить роль пользователя в twig

Август 16, 2023 г.

Многие стандартные шаблоны в Drupal содержат вывод переменной пользователя (user), что делает возможным реализацию различной логики, в том числе и проверку роли пользователя. Например, вы желаете показывать какой-то элемент шаблона, только для ...

Читать

Получение и рендеринг списка дочерних терминов в Drupal

Апрель 27, 2023 г.

Небольшой примера кода для работы с таксономией в Drupal 10. Мы запросим дерево дочерних терминов и произведем их рендеринг. Для начала загрузим какой-либо термин [crayon-69e7ef1cd59a2718249091/] Следующий шаг - получение дочерних элементов ...

Читать

Drupal checkbox field form API

Март 18, 2024 г.

Drupal интерпретирует чекбокс как integer. Это вызывает некоторое непонимание при работе с полем через Drupal form API. Давайте рассмотрим пример объявления и чтения данных поля формы. Объявление checkbox поля в вашей форме: [crayon-69e7ef1cd5b37654787587/] ...

Читать
 

Комментарии к «Создание кастомных хлебных крошек в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: