PHP Classes

File: classes/RotateImage.php

Recommend this page to a friend!
  Classes of Brett Dutton   Rotate Image   classes/RotateImage.php   Download  
File: classes/RotateImage.php
Role: Class source
Content type: text/plain
Description: Main class
Class: Rotate Image
Display random images from a list in rotation
Author: By
Last change:
Date: 17 years ago
Size: 2,185 bytes
 

Contents

Class file image Download
<?
require_once ( dirname ( __FILE__ ) . "/Html.php" );

/**
 * RotateImage class reads a directory for a matching list of images
 * and then displays a random image. If you then click on the image
 * it will rotate to the other images that you have
 * Author - Brett Dutton
 */
class RotateImage {

    var
$url; // This is the Base URL. This is used to construct the image URL
   
var $path; // This is the path to the Base location
   
var $dir; //
   
var $mask;

    function
RotateImage ( $url, $path, $dir, $mask ) {
       
$this->url = $url;
       
$this->path = $path;
       
$this->dir = $dir;
       
$this->mask = $mask;
    }

    function
toHtml ( ) {
       
$location = $this->path . "/" . $this->dir;

       
$arr = array ();

        if (
$dh = opendir ( $location ) ) {
            while ( (
$fileName = readdir ( $dh ) ) !== false ) {
               
$file = $location . "/" . $fileName;
                if (
is_file ( $file ) && preg_match ( $this->mask, $fileName ) ) {
                   
$arr[] = $fileName;
                }
            }
        }
        if ( (
$cnt = count ( $arr ) ) == 0 ) return ( "Error, no images found" );

       
// Get a random image
       
$img = $arr[rand ( 0, $cnt - 1 )];

       
// Create a variable name for labeling the javascript variables
       
$var = str_replace ( ".", "_", $img );

       
// create the javascript for the image rotation
       
$js = "";
       
$js .= "var cur$var = 0;\n";
       
$js .= "var arr$var = new Array ();\n";
        for (
$i=0; $i<count ( $arr ); $i++ ) {
           
$js .= "arr{$var}[{$i}] = '" . $this->url . "/" . $this->dir . "/" . $arr[$i] . "';\n";
        }
       
$js .= "function clickHandle$var () {\n";
       
$js .= " document['$var'].src = arr{$var}[cur$var++];\n";
       
$js .= " if ( cur$var >= arr$var.length ) cur$var = 0;\n";
       
$js .= "}";

       
$imgHtml = Html::img ( $this->url . "/" . $this->dir . "/" . $img, "border=0 name=\"$var\"" );
       
$hrefHtml = Html::href ( "javascript:clickHandle$var()", $imgHtml, "title=\"Click to see more images\"" );
        return (
Html::javaScript ( $js ) . $hrefHtml );
    }
}
?>