Создание кастомных хлебных крошек в 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 г.

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

Читать

Получить код оригинального языка сущности в Drupal

Октябрь 18, 2023 г.

Сущность возвращает язык в контексте выбранного языка, но иногда нужно получить оригинальный язык node или другой entity. Вот так выглядит запрос в контексте: [crayon-68e66cb187416966381094/] А так можно получить код языка оригинальной версии ...

Читать

Создание администратора через drush, Drupal 9

Сентябрь 22, 2023 г.

Полезные команды для создания пользователя с админ правами, используя drush. Для начала нужно создать пользователя (пусть это будет yury): [crayon-68e66cb187602232735999/] Далее назначим ему роль администратора: [crayon-68e66cb18760d483420735/] ...

Читать

Настройка редиректов в Drupal

Октябрь 5, 2024 г.

Речь пойдет о модуле redirect, который, несмотря на свои простые функции, не всегда понятен редакторам сайта. После установки модуля, на сайте появляется ...

Читать
 

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

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



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