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

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

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

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

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

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

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

Август 28, 2021 г.

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

Читать

Пишем логи в Drupal 9

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

Привычная функция watchdog, которую мы использовали в 6/7 версиях, к девятке пережила эволюцию до сервиса логирования. Бывшее ранее: [crayon-6add770cc8086042489827/] Сейчас выглядит так: [crayon-6add770cc808c429944169/] Помимо того, ...

Читать

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

Январь 22, 2022 г.

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

Читать

Подстановка токенов в коде Drupal 9

Август 1, 2021 г.

Ядро и модули объявляют множество токенов подстановки. Рассмотрим как получить доступ к глобальному объекту типа \Drupal\Core\Utility\Token и выполнить подстановку в строке. Ядро предоставляет экземпляр объекта через следующий запрос: [crayon-6add770cc8315574548264/] ...

Читать
 

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

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



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