web-dev-qa-db-fra.com

Comment puis-je obtenir l'URL de l'image dans un champ de vues, D8

Le formateur d'images D8 Views n'a qu'une seule option: Image. Je voudrais obtenir l'URL qui se trouve dans le balisage, pas le balisage, dans la sortie de mon champ de vues. Dois-je créer un formateur personnalisé ou existe-t-il un code contrib pour fournir cette option? Je ne trouve rien sur d.o qui semble utile. De plus, je ne vois aucun moyen de réécrire le texte à l'aide de jetons pour obtenir l'url de l'image.

8
ransomweaver

Lors de la configuration de votre vue, dans la section avancé, vous pouvez créer une relation pour le champ d'image.

Après avoir ajouté la relation, vous pouvez ensuite ajouter un champ File URI, sélectionner la relation créée et vous êtes prêt à partir.

10
Linus

C'est la magie, sans le module "Image URL Formatter":

  1. Vous devez ajouter une relation dans votre vue à votre champ d'image (c'est sous Avancé)
  2. Vous pouvez maintenant ajouter un champ "URI de fichier" à vos champs
  3. Dans votre modèle views-view-fields.html.twig (ou l'une des alternatives appropriées pour votre vue spécifique), ajoutez ceci:

{{ file_url(fields.uri.content|striptags|trim) }}

5
agiaLab

Le module "Image URL Formatter" peut-il vous être utile? https://www.drupal.org/node/1162614/release?api_version%5B%5D=7234

Il y en a un deuxième: https://www.drupal.org/project/image_raw_formatter

Je n'ai jamais fait de comparaison de fonctionnalités pour savoir laquelle est la meilleure ...

2
Sachbearbeiter
  1. Installez le module twig_Tweak
  2. Créer une relation dans une vue
  3. Ajouter Champ URI du fichier , l'exclure de l'affichage
  4. Écraser le résultat, avec le code twig suivant:

    {{uri | image_style ('miniature')}}

uri est le jeton du champ URI du fichier et miniature est le style d'image souhaité.

1
kovtunos

Voici ma solution qui ne nécessite pas de relation:

  • Ajoutez votre champ d'image à votre vue
  • Définissez ces propriétés:
    • Formateur: Image
    • Style d'image: Aucun (image originale)
    • Lier l'image à: Fichier

Cela vous donne une sortie comme celle-ci: <a href="http://domain/path/to/file.jpg" ...

  • Sous Réécrire les résultats, cochez "Remplacer la sortie de ce champ par du texte personnalisé"
  • Dans la zone de texte, mettez ceci: {% if field_image|trim is not empty%} {{ field_image|split('"')[1] }} {% endif %}

Cela fractionne la chaîne sur le caractère " Et l'index de 1 est votre URL dans le href. C'est un peu hacky mais cela m'a en fait donné ce que je voulais. En suivant la relation, je n'ai pu obtenir qu'un lien avec public:/path/to/file.jpg Et non l'URL absolue

0
BYUDigger