Estoy implementando una plantilla de nodo que usa una imagen dos veces; una vez de forma "normal" (es decir, usando el estilo de imagen definido en la configuración de visualización del campo para ese modo de vista), y la otra es como una propiedad de imagen de fondo css.
Necesito una de dos cosas:
(idealmente) una forma de obtener la URL para un estilo de imagen diferente de la misma imagen.
una forma de obtener la URL para el campo de imagen.
Estoy luchando por usar dump()
y kint()
ayudarme a mí misma a una respuesta. Ambos generan demasiado (gracias a enlaces integrados a "padre", etc.) y parecen no tener la información que necesito. por ejemplo, mirando la dump(content.field_image)
salida, la URL real de la imagen no está allí (entonces, ¿de dónde viene para que se pueda representar con {{ content.field_image }}
?!). kint()
por otro lado, muere por completo si le paso un argumento y la versión de nivel superior es nuevamente demasiado grande para navegar. La depuración fue mucho más fácil con phptemplate + xdebug. (Sí, sé que es bueno que los temáticos no puedan soltar la base de datos).
Hay una respuesta a (1) que implica que no puede hacerlo , pero no entiendo por qué no puedo obtener la URL existente en (2).
La primera parte ya está respondida en la pregunta vinculada, donde está el código de cómo hacer esto. Para responder a la segunda parte de la pregunta, puede acceder a la imagen original en el objeto de nodo:
Un comentario sobre
content
:En una plantilla de nodo, el campo de imagen
content
no está listo para renderizarse. El campo contiene la configuración de cómo debe mostrarse y el objeto de campo que contiene todos los datos sin procesar. Más tarde, esto se reunirá en el campo, el formateador de imagen y las plantillas de imagen. Esa es la razón por la que no encuentra la url que está buscando encontent
este momento.En la plantilla de nodo, puede usar los campos en el nivel superior de la matriz de contenido, por ejemplo, mostrar el campo de imagen
como está configurado en el modo de vista.
Editar:
Hay un nuevo filtro en el módulo Twig Tweak . Ahora puede generar la url de estilo de imagen en rama directamente desde una uri o url de la imagen original:
fuente
{{ content.field_image }}
y no antes? Además, creo que la url que obtendré de su sugerencia es la url original: la parte 2 de mi Q pedía la url del estilo de la imagen, según la configuración del modo de vista. ¿Es eso posible?.entity
dos veces, primero en llegar a la entidad y en segundo lugar a la imagen.{{ node.field_ref.entity.field_image.entity.uri.value }}
Instale el módulo Twig Tweak https://www.drupal.org/project/twig_tweak
Y este módulo Twig Field https://www.drupal.org/project/twig_field_value
Si está utilizando imágenes de campo de carga de imágenes normales, use esto en su plantilla de nodo:
Si está utilizando una imagen de referencia de entidad, use esto:
fuente
image
después sefield_target_entity
refiere al campo de imagen en la entidad referenciada. Puede que tenga que ajustarlo.file_url(node.field_image.entity.field_referenced_image.entity.uri.value | image_style('thumbnail'))