TYPO3 – Zufälliges Bild aus den Seiteneigenschaften auslesen

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

MerkenMerken

MerkenMerken

MerkenMerken

MerkenMerken

MerkenMerken

Schreibe einen Kommentar

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