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

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

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

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

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

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

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

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

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

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

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

Рендер ссылки в Drupal 9

Август 5, 2021 г.

В Drupal 7 вы могли использовать функцию l($text, $url, $options) для генерации HTML кода тега <A>. В Drupal 9 подход коренным образом изменился, и прямого "наследника" устаревшей функции нет. Чтобы получить примерно тот же функционал придется ...

Читать

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

Август 28, 2021 г.

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

Читать

Установим контекстные фильтры в drupal views программно

Август 30, 2021 г.

Пример кода как рендерить блок views с программной установкой contextual filters. Контекстные фильтры устанавливаются методом ViewExecutable::setArguments(array $ARGS). В примере я передаю пару аргументов в качестве значений контекстных фильтров. ...

Читать

Drupal 9 за БН amazon cloudfront

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

Типичная проблема сайта, когда тот оказывается за балансировщиком нагрузки (load balancer), это несоответствие части заголовков запроса клиента и тех заголовков, которые передаются балансировщиком серверу. Чаще всего мы сталкиваемся с этим при запуске ...

Читать
 

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

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



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