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

23.01.2020

Функция 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
Похожие записи

Добавить комментарий