behance github medium

Bildstil (image style) im Template überschreiben – Drupal 8

9. August 2016 by Alexander Bogomolov

Ich sollte eine Galerie umsetzen, die eine Navigation in Form von Thumbnails hat. Das aktuell gewählte Bild wird über den Thumbnails ausgegeben. Für diese Anforderung gibt es zahlreiche jQuery Plugin. Ich wollte jedoch die Bilder doppelt und mit unterschiedlichen Bildstilen (image style) ausgeben. Hierzu musste man das Template für das Feld mit den Bildern überschreiben.

Vorweg muss man sagen, dass Twig als Template-Engine nicht für Logik vorgesehen ist. Somit ist es relativ schwierig Eigenschaften von verschachtelten Objekten zu überschreiben. Mit dem merge-Filter kann man ein eindimensionales Objekt mit neuen Werten versehen. Der Bildstil ist jedoch in item.content['#image_style'] hinterlegt, also in der zweiten Ebene. Die Lösung ist es item.content temporär in eine neue Variable zu speichern, mit dem merge-Filter zu bearbeiten und anschließend mit dem merge-Filter mit dem item zusammenzuführen. Siehe dazu Zeilen 14 bis 16.

Eine Lösung im hook_preprocess_* hat leider nicht funktioniert, da ich die Bilder nicht eindeutig zuordnen konnte. Schließlich sind es zwei Schleifen, die dieselbe Collection durchlaufen. Interessant wäre die Möglichkeit gewesen, das Feld im hook_preprocess_* zu duplizieren und an das Template zu übergeben. Dies hat bei meinen Versuchen jedoch nicht sonderlich gut geklappt.

Related Posts


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.