Программный рендер меню в Drupal 9

Продолжаю публиковать сниппеты кода для drupal 9, на этот раз несколько полезных вещей, связанных с рендерингом меню.

Рендер меню по известному id меню

Вы знаете идентификатор, вам нужен рендер:

Рендер с использованием нужного шаблона

Вы хотите подменить шаблон при рендеринге, тогда его имя нужно указать перед выполнением функции render().

Но сначала нужно создать какой то кастомный шаблон. Дефолтовым считается шаблон /core/modules/system/templates/menu.html.twig, его можно использовать как отправную точку для ваших модификаций. Допустим, вы создали на его базе файл с именем menu—custom.html.twig, тогда предыдущая версия кода изменится следующим образом:

Использование active trail

Чтобы меню подсветило навигацию до текущей страницы, необходимо правильно подготовить параметры на этапе инициализации дерева меню.

Данные об активной цепочке в меню предоставляются службой ‘menu.active_trail‘.

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

Drupal Commerce - расчет доставки для выбранного района

Август 26, 2021 г.

Есть список районов города, доставка в которые имеет фиксированную ставку. Пользователь выбирает район - программа должна подставить цену доставки для ...

Читать

Проверка, что поле пустое в twig

Январь 28, 2022 г.

При переходе к Drupal 8/9 на twig шаблоны, часто возникает вопрос, как проверить что поле пустое. Наиболее точный ответ на мой взгляд помогает найти фильтр render, т.к. он позволяет получить результат рендера соответствующего поля, а не заниматься ...

Читать

Рендер ссылки в twig

Октябрь 3, 2021 г.

В шаблонах twig вы можете использовать функцию link, для рендера ссылки. Параметры вызова следующие - link($text, $uri, $attributes = {}), первые два - обязательные. [crayon-69e7b92197d83391633828/] Результатом будет следующий HTML код: ...

Читать

Создаём программно url alias в Drupal 9

Август 28, 2021 г.

Сниппет кода, демонстрирующий как alias создаётся в Drupal 9. Ранее (в 8й версии) это был сервис ядра path.alias_storage, и код выглядел так: [crayon-69e7b92197f72883147136/] В 9й версии хранилище перенесли в entityTypeManager и потому выглядит ...

Читать
 

Комментарии к «Программный рендер меню в Drupal 9»

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



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