Du möchtest gerne ein zufälliges Bild von mehreren Bildern auf deiner Webseite einbinden? Ein typisches Beispiel wäre eine Headergrafik die sich automatisch vererbt. Mit diesem Typoscript Beispiel kannst du deine Grafik vererben oder ein zufälliges Bild aus mehreren Bildern auslesen.
Zuerst fügst du deine Grafiken in das Mediafeld deiner Seiteneigenschaften ein, bearbeite deine Seite und wechsel zum Tab Ressourcen. Füge dort nun deine Grafik/en ein.
Als nächstes fügst du dieses Typoscript unter Template ein. Du müsstest es jedoch noch im Fluid-Template oder zum Beispiel per page.16 < lib.header in deinem Seitenaufbau aufrufen.
Alternativ kannst du auch die tscobj Extension benutzen, diese Erweiterung ermöglicht es dir Typoscript als Contentelement einzufügen. Dies ist natürlich nicht Benutzerfreundlich wenn es sich um eine Headergrafik auf jeder Seite handelt.
Mit diesem Code wird ein zufälliges Bild aus dem Mediafeld ausgelesen und im Frontend dargestellt. Zu beachten ist, dass bei dieser Einstellung das Bild gecached wird und ein neues Bild erst nach löschen des Caches ausgewählt wird. Um dies zu verhindern, wird ein COA_INT benötigt. Dadurch wird der Code beim Neuladen der Seite erneut ausgeführt, leider wird damit jedoch das TYPO3 Caching ausgehebelt. Falls du kein zufälliges Bild auslesen möchtest ändere import.listNum = rand zu import.listNum = 0.
lib.header = IMAGE lib.header.file { import.data = levelmedia:-1, slide import.listNum = rand width = 890 height = 100 treatIdAsReference = 1 }
Mit Typoscript COA_INT sähe es dann so aus:
lib.header = COA_INT lib.header { 10 = IMAGE 10.file { import.data = levelmedia:-1, slide import.listNum = rand width = 890 height = 100 treatIdAsReference = 1 } }
Erklärung der einzelnen Bestandteile
file
Mit file werden alle Einstellungen dem IMAGE Objekt zugewiesen, hier legst du fest, was mit dem Bild passiert z.B. Breite und Höhe
import.data = levelmedia:-1, slide
Mit import.data liest du die Bilder aus dem Mediafeld – levelmedia:-1 ein. Mit dem Befehl slide, wird das Bild vererbt bis ein neues auf einer tieferen Seite eingebunden wird.
import.listNum = rand
Mit listNum = 0 oder 1 (….) kannst du direkt auf eines der eingefügten Bild zugreifen mit dem alternativen Befehl rand wird aus den vorhandenen Bildern die im Mediafeld eingefügt wurden ein zufälliges ausgewählt.
width & height
Das Bild wird auf die angegebene Größe / Höhe / Breit skaliert.
treatIdAsReference
Behandelt das Bild als sys_file_reference Datensatz