xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Функции для работы с адресами в twig

Опубликовано в

Функция file_url($uri)

Возвращает относительный адрес к файлу по его uri. Умеет работать с путями без схемы.

{{ file_url('public://images/example.jpg') }} -> /sites/default/files/images/example.jpg
{{ file_url('/images/example.jpg') }} -> /images/example.jpg
{{ file_url('images/example.jpg') }} -> /images/example.jpg

Функция path($name, $parameters, $options)

Возвращает относительный адрес по роуту.

{{ path('entity.node.canonical', {'node': 123}) }} -> /node-alias

Функция url($name, $parameters, $options)

Возвращает абсолютный адрес по роуту.

{{ url('entity.node.canonical', {'node': 123}) }} -> http://example.com/node-alias

Функция drupal_url($path, $options) из модуля Twig Tweak

Возвращает относительный или абсолютный адрес по пути. Не умеет работать с uri.

{{ drupal_url('node/123') }} -> /node-alias
{{ drupal_url('/node/123') }} -> /node-alias
{{ drupal_url('node/123', {absolute: true}) }} -> http://example.com/node-alias
{{ drupal_url('/node/123', {absolute: true}) }} -> http://example.com/node-alias

Фильтр file_url($path) из модуля Twig Tweak

Возвращает относительный адрес по адресу файла. Не предназначен для генерации системных адресов.

{{ 'public://images/example.jpg'|file_url }} -> /sites/default/files/images/example.jpg
{{ '/images/example.jpg'|file_url }} -> /images/example.jpg
{{ 'images/example.jpg'|file_url }} -> /images/example.jpg
{{ 'node/123'|file_url }} -> /node/123
{{ '/node/123'|file_url }} -> /node/123
{{ node.field_image|file_url }} -> /sites/default/files/images/example.jpg
{{ node.field_image[0]|file_url }} -> /sites/default/files/images/example.jpg

Фильтр image_style($path, $style_name) из модуля Twig Tweak

Возвращает относительный адрес изображения со стилем. Понимает путь без схемы.

{{ 'public://images/example.jpg'|image_style('thumbnail') }} -> /sites/default/files/styles/thumbnail/public/images/example.jpg?itok=cq_mh3N4
{{ 'images/example.jpg'|image_style('thumbnail') }} -> /sites/default/files/styles/thumbnail/public/images/example.jpg?itok=cq_mh3N4
Написанное актуально для Drupal 8
Похожие записи

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании