Zum Inhalt springen

nivoslider umbauen

Erstellt am 10. Oktober 2012 · 3 Antworten · letzte Antwort am 11. Oktober 2012

Tags: Bilder, PHP, Frage

typo3_hp ·

Guten Abend!

Benutze den Nivoslider um Bannerslides anzuzeigen. Jedoch möchte ich das die Bilder aus PageMedia (Seiteneigenschaften Resourcen) genommen werden.

Habe das jetzt soweit schon angepasst:

protected function generateImages() {
		
		
		$pages_result = $GLOBALS['TYPO3_DB']->sql_query('select * from pages where uid =' . ($GLOBALS['TSFE']->id));
		$pages_temp = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($pages_result);
		
		$arrImages = t3lib_div::trimExplode(',', $pages_temp['media']);

		$arrLinks = t3lib_div::trimExplode(chr(10), $this->conf['links']);
		$arrCaptions = t3lib_div::trimExplode(chr(10), $this->conf['captions']);
		
		$content = '';
		foreach ($arrImages as $key => $strFileName) {
			$imageConfig['file'] = $this->uploadsDir . $strFileName;
			$imageConfig['file.']['width'] = $this->conf['width'];
			$imageConfig['file.']['height'] = $this->conf['height'];
			$imageConfig['altText'] = $arrCaptions[$key];
			$imageConfig['titleText'] = $arrCaptions[$key];
			$imageConfig['stdWrap.']['typolink.']['parameter'] = $arrLinks[$key];
			$imageConfig['params'] = '';
			if ($key == 0) {
				$imageConfig['params'] = 'class="first"';
			}
			
			$image =  $this->cObj->IMAGE($imageConfig);
			
			$content .= $image;
			
		}
		
		return $content;
		
	}

Jedoch habe ich ja noch das Thema, dass auf der Seite ja auch einmal keine Bilder (media) enthalten sein können. Da würde ich dann gerne wie unter TS gewohnt, die Ebenen hoch "sliden" bis ich was finde. Wie kann ich das machen?

Danke und Grüße

LuP ·

Hallo,

Du könntest die Rootline entlang sliden:

foreach($GLOBALS['TSFE']->rootLine as $page) {
  if (!empty($page['media'])) {
    $arrImages = t3lib_div::trimExplode(',', $page['media']);
    if(count($arrImages)) break;
  }
}

VG,
LuP

typo3_hp ·

Vielen Dank!

Mit deinem Beispiel funktioniert es nur auf der ersten Unterseite. Auf allen anderen Seiten nicht.

Habe es einmal so versucht, leider geht das auch nicht:

	foreach($GLOBALS['TSFE']->rootLine as $page) {
			$pages_result = $GLOBALS['TYPO3_DB']->sql_query('select * from pages where uid = ' . $page);
			$pages_temp = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($pages_result);
			echo $pages_temp['media'];  
			echo $page;
  			if (!empty($pages_temp['media'])) {
  				echo $pages_temp['media'];  		
    				$arrImages = t3lib_div::trimExplode(',', $pages_temp['media']);
	  		if(count($arrImages)) break;
  			}
		}

Was ist noch falsch?

Danke und Grüße

LuP ·

Hallo,

es war nur als Ansatz gedacht und keine vollständige Lösung. Eine SQL-Query brauchst Du in dem Fall nicht, weil $page alle Seiteneigenschaften in einem Array bereit hält.

VG,
LuP