Иногда бывает потребность создать ссылку из кода. Структура ссылки довольно сложная на этапе препроцессинга шаблона меню, делюсь сниппетом кода.
Потребуются следующие зависимости:
|
|
use Drupal\Core\Template\Attribute; use Drupal\Core\Url; |
Добавим ссылку в меню main. Делается это через реализацию хука hook_preprocess_menu__NAME, где NAME — это системное имя меню.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
/** * Implements hook_preprocess_menu__MENU_NAME(). */ function THEME_preprocess_menu__main(&$vars) { $vars['items'][] = [ 'title' => t('Текст ссылки в меню'), 'attributes' => new Attribute([ 'class' => 'menu-item', ]), // например, ссылка на главную страницу 'url' => Url::fromUri('internal:/', [ "attributes" => [ "class" => ["custom-link-front-page"] ] ]), ]; } |
Drupal 10/11
Данная запись опубликована в 17.03.2025 00:32 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Март 11, 2025 г.
В Drupal 10/11 поддержка Oembed провайдеров в ядре (модуль media) позволяет легко и непринуждённо читать данные о медиа прямо из провайдера.
Ранее я рассказывал как зарегистрировать oembed для rutube, чтобы иметь возможность оперировать видео контентом ...
Читать
Сентябрь 12, 2025 г.
В Drupal контроллеры чаще всего возвращают Renderable-массивы. Такие массивы автоматически проходят через систему рендеринга и подставляются в базовый шаблон темы (page.html.twig). Но иногда бывает нужно получить полный Response с темизацией вручную — ...
Читать
Май 7, 2025 г.
Иногда модуль в Drupal требует наличия специфических сущностей или конфигураций, например — определённого текстового формата. Поскольку текстовые форматы являются конфигурационными сущностями (entities), напрямую указать их как зависимость в .info.yml ...
Читать
Апрель 12, 2025 г.
Еще один oembed провайдер, который мне понадобился не давно - VK VIDEO. Нужно было интегрировать видео с ВКонтакте в медиа библиотеку Drupal.
Если ...
Читать