Dank 4k4 habe ich es endlich geschafft , meine ursprüngliche Bild-URI in einer Feldvorlage über zu erhalten
item.content['#item'].entity.uri.value
und mit
{{ file_url(item.content['#item'].entity.uri.value) }}
Ich würde die URL der Originaldatei erhalten.
Ich habe die Bildstilinformationen über
item.content['#item']['#image-style']
Dieses 'Medium' wird angefordert
Ein PHP - Lösung ist bereits hier , aber wie mache ich das in TWIG?
Es gibt einige Versuche zum Erstellen eines Filters für 8.1 hier - aber das macht mich nicht gerade helfen.
Antworten:
Sie können den PHP-Code in die Vorverarbeitungsfunktion der Feldvorlage einfügen. Sie haben alle Informationen, die Sie in Ihrer Frage benötigen.
Aber dann würden Sie Codierung machen, das ist schon in Drupal. Wenn Sie im Bildrenderelement den # Bildstil festgelegt haben, sollte das Bildfeld für die Vorverarbeitungsfunktionen konfiguriert werden, die später in den Bildformatierungs- und Bildstilvorlagen enthalten sind, um das richtige src-Attribut in die Variablen für einzufügen
image-style.html.twig
. Sie können also den bereits vorhandenen Code verwenden, indem Sie diese Vorlage überschreiben.Siehe den Code in /core/module/image/image.module:
quelle
<img>
Inline-Stil, sondern als Hintergrundbild gerendert wird. Derzeit erhalte ich entweder das richtige Bild mit Stil als<img>
oder den ursprünglichen Dateipfad, der für eine Nicht-Breitbandverbindung viel zu groß ist. Daher möchte ich nur den Pfad zum heruntergesampelten erhalten. Und ich möchte nicht alle Bildrender überschreiben, sondern nur das eine Feld. Sicher, ich könnte den Weg zum Stil fest verdrahten, da ich den ursprünglichen Dateinamen kenne - aber das wäre schlecht.Ich musste das einfach auch tun. Der richtige Ansatz besteht darin, die Bild-URL des gestalteten Bildes in einer Variablen zu speichern (über eine Vorverarbeitungsfunktion). Diese Variable ist dann in Ihrer Zweigdatei verfügbar.
Ich habe eine Funktion geschrieben, die jede field_image-Datei abruft und den ursprünglichen Dateinamen zurückgibt. Wenn Sie einen Stilnamen angeben, wird die URL des gestalteten Bildes zurückgegeben.
In meiner
.theme
Datei:Jetzt in meiner Zweigdatei (node.html.twig, da ich die Funktion preprocess_node verwendet habe):
Diese Funktion
_var_image_url()
muss von derTHEME_preprocess_node()
Funktion aufgerufen werden, da sie im ersten$vars
Argument eine bestimmte Einrichtung erwartet . Wenn Sie versuchen, es von aufzurufenpreprocess_page
, müssen Sie es ändern.quelle