image_rotator andere Seite - andere Bilder

Hilfe zu Modulen und Tags
Post Reply
jadokus
Forum Members
Forum Members
Posts: 11
Joined: Wed Feb 03, 2010 10:14 am

image_rotator andere Seite - andere Bilder

Post by jadokus »

Hallo,

ich möchte gerne einen Bildwechsel in mein Template integrieren. Dies scheint nach Durchsicht dieses Forums mit dem Tag image_rotator möglich zu sein.
Ich möchte aber für unterschiedliche Seiten unterschiedliche Bilder anzeigen, ohne jeweils ein neues Template zu nutzen.
Gibt es dafür eine Möglichkeit?

Vielen Dank
Marcus
User avatar
lollipop27
Forum Members
Forum Members
Posts: 237
Joined: Wed Sep 12, 2007 4:09 pm

Re: image_rotator andere Seite - andere Bilder

Post by lollipop27 »

Ich kann mich nicht mehr richtig daran erinnern. Aber so wie ich das in Erinnerung habe, kann man dort doch ein Verzeichnis angeben, aus dem die Bilder ausgewählt werden.

Dann setzt doch als Verzeichnisnamen eine Variable wie {title} und leg für jeden Titel nen Ordner mit Bildern an...
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm

Re: image_rotator andere Seite - andere Bilder

Post by nockenfell »

Ich habe mal was ähnliches gemacht und dafür einen UDT geschrieben:

Code: Select all

if ($params["pfad"] == "") echo "kein Bildpfad ausgefüllt.";
else {
	if ($params["anzahl"] == "") $params["anzahl"] = 2;
	if (substr($params["pfad"],0,1) != "/") $params["pfad"] = "/".$params["pfad"];
	if (substr($params["pfad"],-1) != "/")   $params["pfad"] .= "/";
	
	$bilderdir = $_SERVER["DOCUMENT_ROOT"].$params["pfad"];

	$extList = array();
	$extList['gif'] = "image/gif";
	$extList['jpg'] = "image/jpeg";
	$extList['jpeg'] = "image/jpeg";
	$extList['png'] = "image/png";

	$img = null;
	
	// Dateien aus dem bilderdir in ein Array lesen
	
	$bilderfileList = array();
	$handle2 = opendir($bilderdir);
	while ( false !== ( $file2 = readdir($handle2) ) )
	{
		$file_info2 = pathinfo($file2);
		if (isset( $extList[ strtolower( $file_info2['extension'] ) ] ) and strpos($file2,"humb_") == 0 and strpos($file_info2['filename'],"_thumb") != False )
		{
			$bilderfileList[] = $file2;
		}
	}
	closedir($handle2);

	if (count($bilderfileList) == 0)
		echo "Der angegebene Ordner ".$params["pfad"]." enthält keine Bilder";
	else {	
		
		// Reihenfolge der Arrays zufällig mischen
				
		shuffle($bilderfileList);
				
		for ($i=0;$i<$params["anzahl"];++$i) {
			
			$url = str_replace("_thumb","",$params["pfad"].$bilderfileList[$i]);
			$pathinfo = pathinfo($url);
			$titel = str_replace("_"," ",$pathinfo["filename"]);
			$groesse=getimagesize($bilderdir.$bilderfileList[$i]);
			echo "<p><div class='captionborder' style='width:".$groesse[0]."px'><a href=\"".$url."\"><img src=\"".$params["pfad"].$bilderfileList[$i]."\"  alt=\"".$titel."\" /></a></div></p>\r\n";
		}
	}	
}		
Voraussetzung in diesem Beispiel war ein Ordner mit einer Datei bild.jpg und bild_thumb.jpg. Das Thumbnail wurde als Vorschau angezeigt und per Lightbox auf das grosse Bild verlinkt.

Einsetzen kannst du den Tag mit

Code: Select all

{tagname pfad="/uploads/images/ordner" anzahl="2"}
Es werden im obigen Beispiel immer 2 Bilder aus dem Ordner "/uploads/images/ordner" nach dem Zufallsprinzip angezeigt.

Der Tag image_rotator zeigt meines Wissens einfach mehrere Bilder in einer Art Diashow an.
[this message is written with 100% recycled bits]
jadokus
Forum Members
Forum Members
Posts: 11
Joined: Wed Feb 03, 2010 10:14 am

Re: image_rotator andere Seite - andere Bilder

Post by jadokus »

vielen dank, ich werde es in den nächsten Tagen ausprobieren.

Marcus
owr_bgld

Re: image_rotator andere Seite - andere Bilder

Post by owr_bgld »

Damit werden bei mir wechselnde Bilder angezeigt indem alle files ausgelesen werden und eines genommen wird:

Code: Select all

$dir = "uploads/dirname";

$files = array();
if ($handle = opendir($dir)) {
   while (false !== ($file = readdir($handle))) {
   	if($file != '.' && $file != '..')
      $files[] = $file;
   }
   closedir($handle);
}

if( ($c = sizeof($files)) > 0) {
	srand ((double)microtime()*1000000);
	$i = rand(0,($c-1));

	echo '<img src="'.$dir.'/'.$files[$i].'" alt="Logo" /><br />';
// Das untere benutze ich wenn ich das Bild als Background-Image haben will, jedoch nicht in der CSS-Datei möglich
//	echo $dir.'/'.$files[$i];       <- 
}
Wenn du z.B. die verschiednen Bilder für die verschiedenen seiten in Unterordner mit den jeweiligen Seitennamen gibst, dann einfach  $dir damit erweitern:

Code: Select all

$dir = "uploads/dirname/"; // den / hinzufügen
$dir .= $page_alias;   //Unterordner hat Namen des Seitenalias
Wenn du pro Seite nur ein Bild haben willst, einfach folgende Lösung:
Bild mit präfix des Seitenalias und immer gleichen Bildnamenspeichern, also z.B. SEITENALIAS_BILDNAME.jpg

bei img das src="mein/Verzeichnis/{$spage_alias}_BILDNAME.jpg"
jadokus
Forum Members
Forum Members
Posts: 11
Joined: Wed Feb 03, 2010 10:14 am

Re: image_rotator andere Seite - andere Bilder

Post by jadokus »

Hallo,

endlich bin ich zu den ersten Versuchen gekommen. Die Anwendung vom Image_Rotator mit absoluten Pfadangaben funktioniert. Ist es denn möglich, wie lollipop27 vorschlug, dem Pfad den Seitentitel anzufügen, also ungefähr so: {image_rotator folder="uploads/images/{title}"}? So funktioniert es übrigens nicht.

Danke
Marcus
User avatar
lollipop27
Forum Members
Forum Members
Posts: 237
Joined: Wed Sep 12, 2007 4:09 pm

Re: image_rotator andere Seite - andere Bilder

Post by lollipop27 »

jadokus wrote: Ist es denn möglich, wie lollipop27 vorschlug, dem Pfad den Seitentitel anzufügen, also ungefähr so: {image_rotator folder="uploads/images/{title}"}? So funktioniert es übrigens nicht.
Probier mal das:
{capture assign="url"}uploads/images/{$title}{/capture}
{image_rotator folder=$url}
NaN

Re: image_rotator andere Seite - andere Bilder

Post by NaN »

Da der {title} aber diverse Sonderzeichen enthalten kann (Umlaute, Leerzeichen etc.) würde ich nicht den Titel einer Seite, sondern das Seiten-Alias nehmen:

Code: Select all


{image_rotator folder="uploads/images/$page_alias"}

jadokus
Forum Members
Forum Members
Posts: 11
Joined: Wed Feb 03, 2010 10:14 am

Re: image_rotator andere Seite - andere Bilder

Post by jadokus »

Vielen Dank, es funktionert mit image_rotator und dem wechselnden Ordner.

Marcus
Post Reply

Return to “Module und Tags”