Entonces, gracias a 4k4 , finalmente logré obtener mi URI de imagen original en una plantilla de campo a través de
item.content['#item'].entity.uri.value
y con
{{ file_url(item.content['#item'].entity.uri.value) }}
Obtendría la url del archivo original.
Tengo la información del estilo de imagen a través de
item.content['#item']['#image-style']
ese 'medio' se solicita
Una solución PHP ya está disponible aquí , pero ¿cómo hago esto en TWIG?
Hay algunos intentos de crear un filtro para 8.1 aquí - pero eso no me ayuda actualmente.
Respuestas:
Puede poner el código php en la función de preproceso de la plantilla de campo. Tienes toda la información que necesitas en tu pregunta.
Pero entonces harías codificación, eso ya está en drupal. Si tiene # estilo de imagen establecido en el elemento de representación de imagen, entonces el campo de imagen debe configurarse para las funciones de preproceso que vienen más adelante en las plantillas de formateador de imagen y estilo de imagen para colocar el atributo src correcto en las variables
image-style.html.twig
. Por lo tanto, puede usar el código que ya existe anulando esta plantilla.Vea el código en /core/module/image/image.module:
fuente
<img>
estilo en línea sino como una imagen de fondo. Actualmente, obtengo la imagen correcta con estilo como una<img>
ruta de archivo original o que es demasiado grande para usar en una conexión que no es de banda ancha, por lo que solo quiero obtener la ruta a la muestra reducida. Y no quiero anular todos los renders de imágenes, solo un campo. Claro que podría piratear el camino hacia el estilo, ya que conozco el nombre de archivo original, pero eso sería malo.Solo tenía la necesidad de hacer esto también. El enfoque correcto aquí es almacenar la URL de la imagen de la imagen con estilo en una variable (a través de una función de preproceso), y luego esa variable estará disponible en su archivo twig.
He escrito una función que obtendrá cualquier archivo field_image y devolverá el nombre del archivo original, o si especifica un nombre de estilo, devolverá la URL de la imagen con estilo.
Dentro de mi
.theme
archivo:Ahora en mi archivo twig (node.html.twig, ya que utilicé la función preprocess_node):
Esta función
_var_image_url()
tiene que ser llamada desde laTHEME_preprocess_node()
función porque está esperando una cierta configuración en el primer$vars
argumento. Si intenta llamarlo desdepreprocess_page
, necesitará modificarlo.fuente