Drupal 8, twig. Как получить (в шаблоне) из поля изображения орагинальную и форматированную версии?

Аватар пользователя luns

Начну издалека.
Необходимо создать галерею (карусель), для этого нужно должны образом офрмить хтмл-код. Условно говоря как-то так:

<div class="images">
  <a class="image" href="orginal.jpg"><img src="preview.jpg" /></a>
  ...
</div>
<div class="previews">
  <img src="preview.jpg" />
  ...
</div>

В поле загрузки изображений задан стиль, который и генерирует превьшки.
Теперь в шаблоне ноды мы имеем переменую content. Чтобы сгенерировать код выше я пока вижу 2 варианта: либо сразу писать всю структуру в шаблоне ноды либо в шаблоне ноды задать какую-то переменную, которая позволит отличить в шаблоне поля что именно мы выводим.
Но второй вариант, как я понимаю, не осуществим, поскольку на каждый шаблон друпал вызывает новый экземпляр шаблонизатор и все установленные переменные теряются.
Используя первый вариант, нам необходимо знать путь до оригинального изображения и путь до превьюшки. Ничего из этого мне пока доставть не удалось.
На stackoverflow есть рекомендации вроде content.field_image.0.entity.uri.value и им подобных, однако при попытке посмотреть их через dump, все они null.

Систематизируя: Как, используя twig получить путь к изображению и его превью?

UPD: Удалось получить url оригинального изображения: content.field_image.0['#url'].getUri(), Вопрос с превью остается открытым...
UPD2: Пока остановился на таком вот костыле. Может быть есть решение лучше?

<?php    
#inside preprocess function
    
$fields $orig_image $vars['elements']['field_gallery_photo'];
    for (
$i=0$fields[$i]; $i++) {
        
$original_image $vars['elements']['field_gallery_photo'][$i]['#url']->getUri();
        
$img_path $vars['elements']['field_gallery_photo'][$i]['#item']->get('entity')->getTarget()->getProperties()['uri']->getValue()[0]['value'];
        
$thumbnail_url = \Drupal\image\Entity\ImageStyle::load('for_gallery')->buildUrl($img_path);
        
$vars['images'][$i]['original'] = $orig_image;
        
$vars['images'][$i]['thumb'] = $thumb_url;
    }
?>
Ключевые слова:
Тип материала:
Версия Drupal:
0 Спасибо

Комментарии

Аватар пользователя luns
luns 4 месяца назад

Я читал об этом модуле, да. Однако, есть моменты.
1. Нужно понять самому каким образом это можно релизовать программно
2. Модуль не решает проблемы с получением превью.

0 Спасибо
Аватар пользователя luns
luns 4 месяца назад

Вы бы хоть для начала прочитали внимательно то, о чем я прошу. В указанной вами ссылке говориться как добавить собственный css-стиль. Мне же требуется получить путь до картинки, которая была сгенерирована стилем вывода изображений.

0 Спасибо
Аватар пользователя Mihail.space
Mihail.space 4 месяца назад

Полагаю, что автор эту ссылку уже видел, так как гугл ее сразу выдает по запросу

0 Спасибо
Аватар пользователя luns
luns 3 месяца назад

Сейчас именно так и сделал (см. upd2), но выглядит это как костыль. Может быть есть способ лучше?

0 Спасибо