[TYPO3-UG Freiburg] Bilder aus media in zufälliger Reihenfolge
Ben Robinson
benjamecho at web.de
Sat Sep 24 16:29:01 CEST 2011
Hier nochmal das funktionierende Ergebnis für alle.
Verbesserungsvorschläge sind natürlich immer willkommen ;-)
TypoScript
---------------
page.includeLibs.frontispiece = fileadmin/templates/default/frontispiece.inc
page.10.subparts.FRONTISPIECE = TEXT
page.10.subparts.FRONTISPIECE{
data = LEVELMEDIA:-1, slide
postUserFunc = user_frontispiece
#Alternative (ohne Caching / neue Reihenfolge auch bei Reload): postUserFuncInt = user_frontispiece
}
PHP ( fileadmin/templates/default/frontispiece.inc )
---------------
<?php
function user_frontispiece($content,$conf) {
$newcontent = "";
$path = "uploads/media/";
$images = explode(",", $content);
// Bilder in Zufallsreihenfolge bringen
shuffle($images);
// erstes Bild darstellen
$mainimg['stdWrap.']['wrap'] = '<div id="switchContentWrapper">|</div>';
$mainimg['stdWrap.']['required'] = 1;
$mainimg['file'] = $path.$images[0];
$mainimg['params'] = 'id="img0" class="imgFade"';
$newcontent .= $GLOBALS['TSFE']->cObj->IMAGE($mainimg);
// Bei mehr als einem Bild: JavaScript fuer Bildwechsel ausgeben
if(count($images) > 1){
$newcontent .= '
<script type="text/javascript">
imgList = new Array(';
foreach($images as $image){
$newcontent .= '"/'.$path.$image.'"';
if($image != end($images)) $newcontent .= ',';
}
$newcontent .= ');
window.onload = startFade;
</script>';
}
return $newcontent;
}
?>
Ab TYPO3 4.6. kann man sowas vermutlich auch ohne zusätzliches Script realisieren:
1. das erste Bild per "listnum = rand" ausgeben
2. Array per JavaScript mischen und anschließend das bereits ausgegebene Bild in diesem Array an den Anfang des Arrays stellen
Gruß
Ben
More information about the TYPO3-UG-Freiburg
mailing list