[QUOTE=Mr. M;12645]Ich dachte immer dieses Smarty-Geschichte muss man installieren?[/QUOTE]Das erledigt die OXID-Installation gleich mit…
[QUOTE=Mr. M;12645]Es sieht auch im Dreamweaver nicht wirklich so aus als würde das PHP erkennen, das Schrift schwarz ist. In der Regel ist die Schrift ja blau.[/QUOTE]
Das erkennt PHP tatsächlich nicht, ist auch gar nicht seine Aufgabe,
PHP dient letztendlich nur dazu, HTML-Code zu erstellen…
[QUOTE=Mr. M;12645]Bei allen anderen PHP-Codes kommt wie gesagt nur ein weiße leere Seite anstelle des Shops.[/QUOTE]
Sicher nicht bei allen, sondern nur bei falschen…
Aber Dein Ansatz ist ja schon mal gar nicht schlecht, nur ein wenig falsch…
[{php}]
//read folder
$folder=opendir("/randompics");
while ($file = readdir($folder))
$names[count($names)] = $file;
closedir($folder);
//sort file names in array
sort($names);
//remove any non-images from array
$tempvar=0;
for ($i=0;$names[$i];$i++){
$ext=strtolower(substr($names[$i],-4));
if ($ext==".jpg"||$ext==".gif"||$ext=="jpeg"||$ext==".png"){$names1[$tempvar]=$names[$i];$tempvar++;}
}
//random
srand ((double) microtime() * 10000000);
$rand_keys = array_rand ($names1, 2);
//random image from array
$slika=$names1[$rand_keys[0]];
//image dimensions
$dimensions = GetImageSize($slika);
if (isset($HTTP_GET_VARS["pic"])){header ("Location: $slika");}
else {echo "<img src=\"$slika\" $dimensions[3]>";}
[{/php}]
[QUOTE=Mr. M;12645]Das ist der einzige Code, bei dem der Shop nicht weiß bleibt, sondern nur ein “Falsche Bild URL” angezeigt wird. Der Ordner mit den Zufallsbilder heißt “randompics” und liegt genau wie der inc_header im templates ordner. Die Bilder sind durchnummeriert mit Bild_1.jpg, Bild_2.jpg etc…[/QUOTE]
Natürlich bekommst Du so die Meldung “Falsche Bild URL”, weil Du ja nur “Bild_x.jpg” (bzw. eher sogar einen Leerstring) übergibst. Du musst aber den [B]kompletten Pfad zum Bild[/B] bereit stellen…
Und Du musst auch das [B]richtige [/B]Bildverzeichnis durchsuchen… (Im Moment wird Verzeichnis “randompics” in der Shop-Root durchsucht!)
Außerdem solltest Du das Bild [B]nicht [/B]mit “echo” direkt ausgeben, sondern es in eine Smarty-Variable ("[B]random_pic[/B]") speichern, die Du dann an der Stelle mit [{$random_pic}] aufrufst, wo das Bild hin soll.
Den PHP-Code kannst Du dann [B]irgendwo(!) [/B]im Template (z.B. in der “_header.tpl”) einbinden, was die Übersichtlichkeit deutlich erhöht…
Versuch’s mal so (ungetestet):
[{php}]
$myConfig = oxConfig::getInstance();
//Bilder liegen in "out/template/tpl/randompics"!?
$img_path=$myConfig->getTemplateUrl().'randompics/';
$img_folder=$myConfig->getTemplateDir().'randompics/';
//read folder
$legal_exts=".jpg.gif.jpeg.png";
$names=array();
$folder=opendir($img_folder);
while ($file = readdir($folder))
{
if ($file[0] <> '.') //Ignore "files" "." and ".."
{
$ext=strtolower(substr($file,-4));
if (strpos($legal_exts,$ext)!==false)
{
$names[] = $file;
}
}
}
closedir($folder);
//random
srand ((double) microtime() * 10000000);
$rand_keys = array_rand ($names1, 2);
//random image from array
$slika=$names[$rand_keys[0]];
//image dimensions
$dimensions = GetImageSize($img_folder.$slika);
$slika=$img_path.$slika;
if (isset($_GET["pic"]))
{
header ("Location: $slika");
}
else
{
$this->_tpl_vars['random_pic']="<img src=\"$slika\" $dimensions[3]>";
}
[{/php}]