Zufälliges Header-Bild ausgeben mit MODx

von Thomas Jakobi am Mittwoch, 28. Mai 2008 um 07:30 Uhr.

Manchmal möchte man auf einer Webseite z.B. im Header ein zufälliges Bild anzeigen lassen. Dafür habe ich ein kleines Snippet geschrieben.

Das Snippet gibt den Namen einer Bilddatei im Standard-Verzeichnis assets/images/header zurück. Als Parameter sind &folder und &defaultImage nutzbar.

RandomImage.snippet.php
<?php
/****************************************************
 * Name: RandomImage
 * Version 0.3.1
 * Desc: returns the name of a random image file
 * Author: Thomas Jakobi - thomas.jakobi@partout.info
 * Date: 28. May. 2008
 *
 * Usage: [!RandomImage!]
 *
 * Parameters:
 * folder: folder to search for the random image (defaults to 'assets/images/header')
 * defaultImage: default image if no image is found (defaults to 'blank.gif')
 * ***************************************************/
 
$folder = (isset ($folder)) ? $folder : 'assets/images/header';
$defaultImage = (isset ($defaultImage)) ? $defaultImage : 'blank.gif';
$i = 0;
$imgDir = opendir($folder);
while ($file = readdir($imgDir)) {
    //checks that file is an image
    $file_type = strrchr($file, ".");
    $is_image = eregi("jpg|gif", $file_type);
    $is_thumb = !strncmp($file, '.thumb_', 7);
    if ($file != '.' && $file != '..' && $is_image && !$is_thumb) {
        $images [$i++] = $file;
    }
}
closedir($imgDir);
if ($i == 0) {
    return ($defaultImage);
}
srand(( double )microtime() * 1000000);
$image_name = $folder . '/' . $images [rand(0, sizeof($images) - 1)];
return ($image_name);

Viel Erfolg!