<?php 
 
require_once './class.coverflow.php'; 
 
$width = 600; 
$height =  400; 
 
set_time_limit( 180 ); 
 
 
$coversArray = array( 
    //             imageSRC                 imageTITLE                              URL                
     
     
    array(    './covers/coverflow10.jpg',     ' ',              './covers/coverflow10.jpg'    ) , 
    array(    './covers/coverflow11.jpg',     ' ',              './covers/coverflow11.jpg'    ) , 
    array(    './covers/coverflow20.jpg',     ' ',             './covers/coverflow20.jpg'    ) , 
    array(    './covers/coverflow30.jpg',     ' ',           './covers/coverflow30.jpg'    ) , 
    array(    './covers/coverflow31.jpg',     ' ',           './covers/coverflow31.jpg'    ) , 
    array(    './covers/cfp_0.jpg',      ' ',         './covers/cfp_0.jpg'          ) , 
     array(    './covers/cfp_1A.jpg',     ' ',         './covers/cfp_1A.jpg'         ) , 
   
    array(    './covers/cfp_1B.jpg',     ' ',       './covers/cfp_1B.jpg'         ) , 
     
    array(    './covers/noges.jpg',    ' ',        './covers/noges.jpg'   ) , 
    array(    './covers/lill.jpg',     ' ',  './covers/lill.jpg'    ) , 
    array(    './covers/saun.jpg',     ' ',                 './covers/saun.jpg'    ) , 
    array(    './covers/tamm.jpg',     ' ',                   './covers/tamm.jpg'    )  
    /**/ 
     ); 
 
$countcoversArray = count($coversArray); 
 
 
 
if( isset($_GET['cfp']) ) $centered = (int) $_GET['cfp'];  
else $centered = 0; 
if( isset($_GET['cft']) ) $cftype = $_GET['cft']; //coverFlow, gameCards, topSites 
else $cftype = 'coverFlow'; 
 
 
if( $centered < 0 ) $centered = 0; 
elseif( $centered < $countcoversArray ); 
else $centered = $countcoversArray-1; 
 
 
 
    switch($cftype){ 
        case 'coverFlow': $imageCachefileSrc = './cache/cfp_'. $centered .'.jpg';$imageCachefileHtm = './cache/cfp_'. $centered .'.htm';break; 
        case 'gameCards': $imageCachefileSrc = './cache/gcp_'. $centered .'.jpg';$imageCachefileHtm = './cache/gcp_'. $centered .'.htm';break; 
        case 'topSites':  $imageCachefileSrc = './cache/tsp_'. $centered .'.jpg';$imageCachefileHtm = './cache/tsp_'. $centered .'.htm';break; 
        default:$imageCachefileSrc = './cache/cfp_'. $centered .'.jpg';$imageCachefileHtm = './cache/cfp_'. $centered .'.htm'; 
    } 
     
//$cov->set_htmlImagemapName('coverflow1'); 
 
 
 
$echoCoverFlowHTML = ''; 
 
 
 
function createNoimage($topath='./cache/noimag.jpg', $nopath='./n0', $title='' ) { 
    $noImgGD = imagecreatetruecolor(400, 300); 
    $bg = imagecolorallocate($noImgGD, 255, 255, 255); 
    $frame = imagecolorallocate($noImgGD, 0, 0, 255); 
    $textcolor = imagecolorallocate($noImgGD, 127, 120, 0); 
    $textcolor2 = imagecolorallocate($noImgGD, 0, 0, 0); 
     
    imagefill($noImgGD, 0, 0, $bg); 
     
    imageline($noImgGD, 10, 10, 390, 10, $frame); 
    imageline($noImgGD, 390, 10, 390, 290, $frame); 
    imageline($noImgGD, 390, 290, 10, 290, $frame); 
    imageline($noImgGD, 10, 290, 10, 10, $frame); 
     
    imagestring($noImgGD, 5, intval(400/2)-30, intval(300/2)-30, 'I M A G E', $textcolor); 
     
    imagestring($noImgGD, 5, intval(400/4), intval(300/2)-10, 'Not valid image in path.', $textcolor); 
     
    imagestring($noImgGD, 2, intval(400/8), intval(300/2)+40, $nopath , $textcolor2); 
     
    imagestring($noImgGD, 3, intval(400/8), intval(300/2)+80, $title , $textcolor2); 
     
    imagejpeg( $noImgGD, $topath, 90 );  
} //createNoimage() 
 
 
 
if( !is_file( $imageCachefileSrc ) ) { 
 
    $cov = new coverflow($width,$height); 
    $cov->set_reflectionHeight(2.1); // 4.5 
    //$cov->set_bgWhite(); // default 
    $cov->set_bgBlack(); 
 
     
    switch($cftype){ 
        case 'coverFlow': $cov->set_use_coverFlow();break; 
        case 'gameCards': $cov->set_use_gameCards();break; 
        case 'topSites':  $cov->set_use_topSites();break; 
        default:$cov->set_use_coverFlow(); 
    } 
     
    foreach( $coversArray as $coverId => $cover ) { 
         
        if( $centered == $coverId ) { 
            $url = $cover[2]; 
            $target='_blank'; 
        } else { 
            $url = '?cfp=' . $coverId; 
            $target='_self'; 
        } 
         
        if( is_file( $cover[0] ) && is_readable( $cover[0] ) ) 
            $cov->set_cover($cover[0]); 
        else  { 
            $noimagepath = './cache/tmp_'.md5($cover[0]).'.jpg'; 
            if(strlen($cover[0]) > 32 )  
            { $cover_subst_path = substr($cover[0], -31 ); $ellip_0 = '...'; } 
            else  
            { $cover_subst_path = substr($cover[0], 0-strlen($cover[0]) ); $ellip_0 = ''; } 
             
            if(strlen($cover[1]) > 32 )  
            {  $cover_subst_title = substr($cover[1], 0, 32); $ellip_1 = '...'; } 
            else  
            { $cover_subst_title = substr($cover[1], 0, strlen($cover[1])); $ellip_1 = ''; } 
             
            if( !is_file( $noimagepath ) && !is_readable($noimagepath ) ) 
                createNoimage($noimagepath, $ellip_0.$cover_subst_path, $cover_subst_title.$ellip_1 ); 
            $cov->set_cover( $noimagepath ); 
        } 
         
        $cov->set_htmlAtag($coverId, $cover[1], $url, $target ); 
         
        } 
     
    $cov->set_coverCentered( $centered ); 
     
 
    $cov->get_imageJpeg( $imageCachefileSrc ); 
    //$cov->get_imagePng( $imageSrc ); 
     
    $imageHtmlToCache = 
        '<h2>' . $coversArray[$centered][1] . '</h2>' 
        . '<img src="'. $imageCachefileSrc .'" usemap="'.$cov->get_htmlImagemapName() 
        .'" alt="_" width="'.$width.'" height="'.$height.'" border="0" />' 
        . $cov->get_htmlImagemap(); 
     
    file_put_contents_($imageCachefileHtm, $imageHtmlToCache ); 
     
    $echoCoverFlowHTML = $imageHtmlToCache; 
     
     
     
 
} else { 
         
    $echoCoverFlowHTML = file_get_all ( $imageCachefileHtm ); 
     
} 
     
    //Invisible, 0x0 images 
    $BrowserCache = ''; 
    for( $i = 0 ; $i < $countcoversArray; $i++ ) {         
        if( is_file( './cache/cfp_'. $i .'.jpg' ) ) 
            $BrowserCache .= '<img src="./cache/cfp_'. $i .'.jpg" width="0" height="0" border="0" alt="" />'; 
     
    } 
 
 
    $pageLinks = "\n\n<p>"; 
    for( $i = 0 ; $i < $countcoversArray; $i++ ) { 
        if( $i > 0 ) $pageLinks .= '    '; 
        if( $centered == $i ) 
            $pageLinks .= '<span style="font-size:small;">' . ($i+1) . '</span>'; 
        else 
            $pageLinks .= '<a href="?cfp=' . $i . '&cft='.$cftype.'" style="font-size:large;">'. ($i+1) .'</a>'; 
    } 
    $pageLinks .="</p>\n\n"; 
 
 
echo  
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<?xml version="1.0" encoding="ISO-8859-1" ?> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 
    <title>PHP Class coverFlow Example</title> 
    <style> 
    h2 { font-size:13pt;} 
    a, a:link, a:hover, a:visited{ color:blue;text-decoration:none; } 
    a:active { color:blue;text-decoration:underlined; } 
     
    </style> 
<body style="background:white;" > 
     
    <p style="margin: 0 0 0 0;padding:0 0 0 0;font-family:times;font-size:12pt;"><a href=".." style="color:#0000FF;text-decoration:none;"><<< Top Site</a></p> 
     
    <h1>PHP Class coverFlow Example</h1> 
    <p>Please visit my <a href="http://dreamplayer.deviantart.com/art/PHP-class-coverFlow-130480029">deviantART</a> or <a href="http://www.phpclasses.org/browse/package/5549.html">PHP Classes</a> page for information!</p> 
    <p>Click on the centered image to see original or click on the smaller ones to move in gallery.</p> 
' 
 
.'<p>Select type of presentation: <a href="?cfp='.$centered.'&cft=coverFlow">coverFlow</a> <!-- | <a href="?cfp='.$centered.'cft=topSites">topSites</a> --> | <a href="?cfp='.$centered.'cft=gameCards">gameCards</a></p>' 
 
.$pageLinks 
. $echoCoverFlowHTML  
. $BrowserCache . ' 
    </body> 
</html>'; 
 
 
 
 
 
///////////////////////////////////////////////////////////////////////////////// 
 
 
 
 
/** 
* Write a string to a file. 
* Uses function file_put_contents if available 
* This function is binary-safe. 
* For perfomance reasons by default multi-dimensional array supported in php4 
* 
* @author Uku-Kaarel Jõesaar http://ukj.pri.ee 
* @param string $filename The file name where to write the data 
* @param mixed $data The data to write. Can be either a string, an array or a stream resource. 
* @param int $flags FILE_USE_INCLUDE_PATH, FILE_APPEND and/or LOCK_EX 
* @param resource $context A context resource 
* @return int 
*/ 
function file_put_contents_($filename,$data,$flags=NULL,$context=NULL) { 
 
 
    //(PHP 5) 
    if(function_exists('file_put_contents')) 
        return file_put_contents($filename,$data,$flags,$context); //supports 1d arr 
 
    $flockr=TRUE; 
    $mode='wb'; 
    $use_include_path=FALSE; 
 
    if($flags&FILE_USE_INCLUDE_PATH)$use_include_path=TRUE; 
    if($flags&FILE_APPEND)$mode='ab'; 
 
    eval("\$handle=fopen(\$filename ,\$mode ,\$use_include_path". 
    (is_resource($context)?",\$context":'').");"); 
 
    if(!$handle) 
        return FALSE; 
    //5.1.0 //PHP 4.0.1 
    if($flags&LOCK_EX) 
        $flockr=flock($handle,LOCK_EX); 
 
    if($flockr){ 
        if(is_array($data)) 
            if(function_exists('fwrite_array')) 
                $fwriter=fwrite_array($handle,$data); 
            else 
                $data=implode('',$data); 
        else 
            $fwriter=fwrite($handle,$data); 
    } 
    fclose($handle); 
 
    return $fwriter; 
} //end file_put_contents_() 
 
 
 
 
/**  
 * Read whole file into string 
 * 
 * @param string filename 
 * @return string FALSE if failure 
 */ 
function file_get_all ( $filename ) { 
     
    if(!is_file( $filename )) return FALSE; 
    if(!is_readable( $filename )) return FALSE; 
         
    $r = @fopen($filename,'rb'); 
         
    if(is_resource( $r )) { 
        fseek($r,0,SEEK_END); 
        $filesize = ftell($r); 
        rewind( $r ); 
         
        $re = ''; 
         
        if($filesize > 0) { 
            while (!feof($r)) { 
              $re .= @fread($r, 8192); 
            } 
        } 
        else     
            $re = ''; 
         
        fclose( $r ); 
        return $re; 
    } 
    return FALSE; 
         
} //end file_get_all() 
 
 
 
 
 
 
 
 
?> 
 
 |