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

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

Чтобы получить примерно тот же функционал придется задействовать пару классов из ядра. К примеру, требуется создать ссылку на сайт shra.ru.

К сожалению, если вам нужно еще и установить какие либо атрибуты ссылки, то привычно передать их через тот же метод fromTextAndUrl() — не получится. Придется немного поколдовать над рендерингом:

Если же текст внутри ссылки должен содержать html код, то потребуется помощь еще одного класса —\Drupal\Core\Render\Markup.

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

Кеширование JSON ответа в Drupal

Июль 6, 2023 г.

У нас есть контроллер, который выдаёт json ответ. Добавим кеширование. Начнем с определения контроллера. Пусть сконфигурирован следующий mymodule.routing.yml: [crayon-693fff5e57359271574267/] Это значит, что у нас создан класс PublicApi в ...

Читать

Вывод всех локальных переменных в twig

Июнь 3, 2024 г.

Все видимые переменные шаблона можно посмотреть в переменной _context. Вывести их имена, используя перебор циклом for: [crayon-693fff5e5765a249406392/] В Drupal, если вы используете модуль devel, в twig будет доступна функция dpm: [crayon-693fff5e57669369527956/]

Читать

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

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

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

Читать

Редирект после отправки формы в Drupal 8/9

Январь 22, 2022 г.

Для семерки можете посмотреть другую статью. Обычно правят поведение существующих форм через hook_form_alter, добавляя туда еще один обработчик submit. Специальный метод setRedirectUrl объекта FormStateInterface позволяет настроить адрес перенаправления. ...

Читать
 

Комментарии к «Рендер ссылки в Drupal 9»

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



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