Я реализую шаблон узла, который использует изображение дважды; один раз «нормальным» способом (т. е. используя стиль изображения, определенный в конфигурации отображения поля для этого режима просмотра), а другой - как свойство css background-image.
Мне нужна одна из двух вещей:
(в идеале) способ получить URL для другого стиля изображения того же изображения.
способ получить URL для поля изображения.
Я изо всех сил пытаюсь использовать dump()
и kint()
помочь себе ответить. Они оба выводят слишком много (благодаря встроенным ссылкам на «родитель» и т. Д.) И, похоже, не имеют нужной мне информации. например, глядя на dump(content.field_image)
вывод, фактического URL изображения там нет (так откуда он взялся, чтобы его можно было визуализировать с помощью {{ content.field_image }}
?!). kint()
с другой стороны, полностью умирает, если я передам ему аргумент, и версия верхнего уровня снова слишком велика для навигации. Отладка была намного проще с phptemplate + xdebug. (Да, я знаю, что хорошо, что те не могут удалить базу данных.)
Есть ответ на (1), который подразумевает, что вы не можете сделать это , но я не понимаю, почему я не могу получить существующий URL в (2)?
На первую часть уже дан ответ в связанном вопросе, где есть код, как это сделать. Чтобы ответить на вторую часть вопроса, вы можете получить доступ к исходному изображению в объекте узла:
Одно замечание по поводу
content
:В шаблоне узла поле изображения в
content
не готово для визуализации. Поле содержит конфигурацию, как она должна отображаться, и объект поля, который содержит все необработанные данные. Позже это будет объединено в поле, форматирование изображения и шаблоны изображений. По этой причине вы не можете найти URL, который ищете вcontent
данный момент.В шаблоне узла вы можете использовать поля на верхнем уровне массива контента, например, отображать поле изображения
как настроено в режиме просмотра.
Редактировать:
В модуле Twig Tweak появился новый фильтр . Теперь вы можете сгенерировать URL-адрес стиля изображения в ветке непосредственно из URI или URL-адреса исходного изображения:
источник
{{ content.field_image }}
а не раньше? Кроме того, я думаю, что URL-адрес, который я получу из вашего предложения, является исходным URL-адресом. Во второй части моего Q запрашивался URL-адрес стиля изображения, который настраивается в режиме просмотра. Это возможно?.entity
дважды, сначала добраться до сущности, а затем - до картинки.{{ node.field_ref.entity.field_image.entity.uri.value }}
Установите модуль настройки Twig https://www.drupal.org/project/twig_tweak
И этот модуль Twig Field https://www.drupal.org/project/twig_field_value
Если вы используете обычные поля загрузки изображений, используйте это в шаблоне вашего узла:
Если вы используете эталонное изображение объекта, используйте это:
источник
image
послеfield_target_entity
ссылается на поле изображения на ссылочной сущности. Возможно, вам придется настроить его.file_url(node.field_image.entity.field_referenced_image.entity.uri.value | image_style('thumbnail'))