10.03.2022 | TYPO3, TYPO3 Schnipsel
TYPO3 – Bild aus Grid-Element auslesen und als Hintergrund ausgeben

Ein Bild aus den Seiteneigenschaften auszulesen hatte ich bisher schon einige Male. An dieser Stelle wurde es jedoch gewünscht, dass man einem Grid-Element ein Bild hinterlegt. Das ist möglich, indem man die Tabelle tt_content mit dem aktuellen Datensatz abfragt. Benötigt wird hierfür die uid des Datensatzes. Als Wert wird die aktuelle uid des Elements via cObject ViewHelper an Typoscript weitergegeben. Typoscript fragt den Datensatz ab und gibt in diesem Fall die Ressource, den Dateipfad, zurück.

Typoscript

  100 = FLUIDTEMPLATE {

      lib.background = FILES
      lib.background {

         references {
            table = tt_content
            uid = TEXT
            uid.current = 1
            fieldName = media
         }

         renderObj = IMG_RESOURCE
         renderObj {
            file.import.data = file:current:uid
            file.treatIdAsReference = 1
         }
      }
}

Der ViewHelper mit aktueller uid des Elements
Ein kleiner Hinweis. Hier lohnt es sich bei der Entwicklung die Debug Ausgabe via Fluid <f:debug>{_all}</f:debug> zu nutzen, um zu sehen, welche Elemente dir zur Verfügung stehen.

<f:cObject typoscriptObjectPath="lib.background" data="{data.uid}" />

Integration im Template

Hier wird das Hintergrundbild via ViewHelper eingebunden und als Wert wird die aktuelle uid übergeben.

<div class="pt-5 pb-5" style='background-image: url(<f:cObject typoscriptObjectPath="lib.background" data="{data.uid}" />); background-size: cover'>

Das Ergebnis

geschrieben von Jens (1 Kommentar), ,

Du kannst diese Seite via PayPal unterstützen: paypal.me/jensbh

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.


Ein Kommentar zu "TYPO3 – Bild aus Grid-Element auslesen und als Hintergrund ausgeben"

Mit und gemacht in Kassel / Nordhessen. 2022