[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