| 
<?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()
 
 
 
 
 
 
 
 
 ?>
 
 |