Home » Module

Slideshow Part2: Verzeichnis auslesen und Bilder ordnen

22 Januar 2010

Hier der zweite Teil zum Thema Slideshow in xt:Commerce. In diesem Post ist bereits beschrieben, wie man Bilder auf der Startseite (bzw. im Content) sliden bzw. faden (alles was das Jquery cycle Plugin bietet) lassen kann.
Die Grundlage dafür ist eine HTML-Liste von Bildern, welche in dieser Form im Quelltext stehen:

<div id="stage">
<a title="{$store_name}" href="/">
<img id="img_1" class="header_img" src="{$tpl_path}slide_header/A.gif" alt="{$store_name}" />
</a>
<a title="{$store_name}" href="/">
<img id="img_2" class="header_img" src="{$tpl_path}slide_header/B.gif" alt="{$store_name}" />
</a>
<a title="{$store_name}" href="/">
<img id="img_3" class="header_img" src="{$tpl_path}slide_header/C.gif" alt="{$store_name}" />
</a>
<a title="{$store_name}" href="/">
<img id="img_4" class="header_img" src="{$tpl_path}slide_header/D.gif" alt="{$store_name}" />
</a></div>

Ist natürlich nervig, wenn dauern die selben Bilder erscheinen, bzw. man jedes mal den Quelltext ändern muss, wenn man ein Bild austauschen will. Also nehmen wir die Bilder von oben raus und fügen folgendes Script ein:

{php}
$path = 'bilder';
$dir = opendir($path);
while (false !==($entry = readdir($dir))) {
if($entry != '.' || $entry != '..'){
$pics[] = $entry;
}
}
sort($pics);
$i=-2;
foreach ($pics as $item) {
$i++;
if ($item != '.' && $item != '..' ){
echo '<img alt="HIER EUER ALT '.$item."\" style=\"height: 129px;width: 960px;\" src =\"".$path.'/' . $item . "\" id=\"img_".$i."\" />\n";
}
}
closedir($dir);
{/php}

Das Script im Detail:


Das Script liest das Verzeichnis ‘bilder’ in ein Array aus, danach wird das Array mit sort() alphabetisch geordnet und in einer schleife als HTML ausgegeben. Es muss an der Stelle im Template stehen, an der die Bilder erscheinen sollen.
Man kann die Bilder auch zufällig ordnen, dazu muss nur die Zeile

sort($pics);

in

shuffle($pics);

geändert werden.

Wichtiger Punkt: Internet Explorer fix

Die Größe der Bilder solltet ihr per

style="height: 129px;width: 960px;"

in die Ausgabe schreiben, da es sonst zu Anzeigefehlern im IE kommen kann.

Like it? Then share, rate or comment it:

Themenrelevante Artikel:

Hinweis: Die mit * gekennzeichneten Links sind Partnerlinks

One Comment »

Leave your response!

Um Quelltext in Kommentaren lesbar zu posten nutzt bitte <pre lang="php">EUER CODE</pre>

Um Quelltext in Kommentaren lesbar zu posten nutzt bitte <pre lang="php">EUER CODE</pre>