Estou implementando um modelo de nó que usa uma imagem duas vezes; uma vez de uma maneira 'normal' (ou seja, usando o estilo de imagem definido na configuração de exibição do campo para esse modo de exibição) e o outro como uma propriedade de imagem de plano de fundo do css.
Eu preciso de uma de duas coisas:
(idealmente) uma maneira de obter o URL para um estilo de imagem diferente da mesma imagem.
uma maneira de obter o URL para o campo da imagem.
Estou lutando para usar dump()
e kint()
me ajudar a responder. Ambos produzem demais (graças a links incorporados para "pai" etc.) e parecem não ter as informações de que preciso. por exemplo, olhando para a dump(content.field_image)
saída, o URL real da imagem não existe (portanto, de onde ela vem para que possa ser renderizada com {{ content.field_image }}
?!). kint()
por outro lado, morre completamente se eu passar um argumento para ele e a versão de nível superior é novamente grande demais para navegar. A depuração foi muito mais fácil com o phptemplate + xdebug. (Sim, eu sei que é bom que eles não possam descartar o banco de dados.)
Há uma resposta para (1) que implica que você não pode fazê-lo , mas não entendo por que não consigo obter o URL existente em (2)?
A primeira parte já foi respondida na pergunta vinculada, onde há o código de como fazer isso. Para responder à segunda parte da pergunta, você pode acessar a imagem original no objeto do nó:
Uma observação sobre
content
:Em um modelo de nó, o campo da imagem
content
não está pronto para ser renderizado. O campo contém a configuração de como deve ser exibida e o objeto de campo que contém todos os dados brutos. Posteriormente, isso será montado no campo, no formatador de imagens e nos modelos de imagem. Essa é a razão pela qual você não encontra o URL que está procurandocontent
neste momento.No modelo de nó, você pode usar os campos no nível superior da matriz de conteúdo, por exemplo, exibir o campo de imagem
conforme configurado no modo de visualização.
Editar:
Há um novo filtro no módulo Twig Tweak . Agora você pode gerar o URL do estilo da imagem em galho diretamente de um URL ou URL da imagem original:
fonte
{{ content.field_image }}
e não antes? Além disso, acho que o URL que receberei da sua sugestão é o URL original - a parte 2 do meu Q estava pedindo o URL do estilo da imagem, conforme é configurado pelo modo de exibição. Isso é possível?.entity
duas vezes, primeiro para chegar à entidade e depois para a imagem.{{ node.field_ref.entity.field_image.entity.uri.value }}
Instale o Twig Tweak Module https://www.drupal.org/project/twig_tweak
E este módulo Twig Field https://www.drupal.org/project/twig_field_value
Se você estiver usando imagens regulares de campo de upload de imagens, use isso no seu modelo de nó:
Se você estiver usando uma imagem de referência da entidade, use este:
fonte
image
depois,field_target_entity
refere-se ao campo de imagem na entidade referenciada. Você pode precisar ajustá-lo.file_url(node.field_image.entity.field_referenced_image.entity.uri.value | image_style('thumbnail'))