Photos:

Snapshot galleries of my life and others'

GalleriesDetailsSource
<?php
/*  THIS FILE TO BE USED WITH PHP 4.3 AND UP!!    */
$scrubbed $HTTP_GET_VARS['gallery'];  //Get which "gallery" (directory) to get pics from

$myName $HTTP_SERVER_VARS['PHP_SELF'];//This script's name (for making hyperlinks)

$pic $HTTP_GET_VARS['pic'];       //The name of the picture for a single picture
if(strchr($pic,'/') or (strlen($image) > 255)) $pic ''//Clean it

$ext '.jpg';              //Image file extension
$titleField 'Copyright';          //This is the name in the EXIF header where the title is
$commentField 'ImageDescription';      //This is the name in the EXIF where the comment is
$fname='';                 //For filename

if(!isset($HTTP_COOKIE_VARS['userSize137PH']))
    
setcookie ('userSize137PH''small',time()+7776000'/'''0);
else 
$userSize $HTTP_COOKIE_VARS['userSize137PH'];  //Desired size of the images

// Make sure we have no "/" in this variable to try to force the script to change dirs or load URLs
//  NOTE:  change to "\" on a windows machine
if(!strchr($scrubbed,'/') or (strlen($image) > 255) or file_exists($scrubbed))
    
$directory $scrubbed;
else 
$directory '';

if (((
$dir = @opendir($directory)) or $directory!='') and !isset($pic)) //Print Thumbnail sheet
{
    
$result exif_read_data($directory.$ext);  //Get EXIF from 'icon' image
    //Thumbnails page link
    
echo '<div class="navbar"><span id="backlink">(<a href="'.$myName.'" title="Index">';  //Link
        
echo 'up to gallery index</a>)</span></div>';

    echo 
'<div class="galtitle">'.$result[$titleField].'</div><br />';
    
$result '';
    
    
$nameArray getFileNames($dir);
    
sort($nameArray);  //Sort the filenames
    
    
foreach($nameArray as $file)
    {
        
$fname $directory.'/'.$file;  //eg. gallername/test.jpg
        
$result exif_read_data($fname);  //get EXIF
        
echo '<div class="thumb"><span class="pictitle">'.$result[$titleField]."</span><br />\n"//Title
        
echo '<a href="'.$myName.'?gallery='.$directory;
        echo 
'&pic='.$file.'" title="'.$result[$titleField].'">'
        echo 
'<img alt="" src="thumb.php?image='.$fname.'" /></a><br / >'//Thumbnail
        
echo $result[ImageDescription].'</div>'//Comment
    
}
}
elseif(isset(
$pic))  //Lets view a PICTURE! :)
{
    if (((
$dir = @opendir($directory)) or $directory!=''))  //get all files in this dir to build nav links
    
{
        
$nameArray getFileNames($dir);
        
sort($nameArray);  //Sort the filenames
        
$me array_search($pic,$nameArray);
        
$left $me 1;
        
$right $me 1;
    }
    
//Set the divisor size
    
if($userSize == 'small'$divisor 3;
    elseif(
$userSize == 'medium'$divisor 2;
    elseif(
$userSize == 'large'$divisor 1.25;
    elseif(
$userSize == 'xlarge'$divisor 1;
    else 
$divisor 2;
    
    
$fname $directory.'/'.$pic;  //eg. gallername/test.jpg
    
$result exif_read_data($fname);  //get EXIF
    
echo '<div class="navbar">(<a href="'.$myName.'">up to gallery index</a>)</div>';
    echo 
'<div class="navbar">';
    
//Previous link
    
echo '<span id="llink">';
    if(
$left >= 0)
        echo 
'(<a href="'.$myName.'?gallery='.$directory.'&pic='.$nameArray[$left].'" title="previous picture"><- previous</a>)';
    else
        echo 
'&nbsp;';
    echo 
'</span>';
    
//Thumbnails page link
    
$parentData exif_read_data($directory.$ext);
    echo 
'<span id="backlink">(<a href="'.$myName.'?gallery='.$directory;
        echo 
'" title="'.$parentData[$titleField].'">';  //Link
        
echo 'up to thumbnails</a>)</span>';
    
//Next link
    
echo '<span id="rlink">';
    if(
$right count($nameArray))
        echo 
'(<a href="'.$myName.'?gallery='.$directory.'&pic='.$nameArray[$right].'" title="next picture">next -></a>)';
    else
        echo 
'&nbsp';
    echo 
'</span>';
    echo 
'</div>';
    echo 
'<div id="picture"><span class="pictitle">'.$result[$titleField]."</span><br />\n"//Title
    
$width round($result[ExifImageWidth] / $divisor);  //Calculate image width
    
$height round($result[ExifImageLength] / $divisor);  //Calculate image width
    
    //print image tag
    
if($userSize == 'xlarge')
        echo 
'<img alt="" src="'.$fname.'" '.$result[COMPUTED][html]." /><br />\n";
    else {
        echo 
'<img alt="" src="display.php?image='.$fname.'&size='.$width.'x'.$height;
        echo 
'" width="'.$width.'" height="'.$height."\" /><br />\n"//Image
    
}
    echo 
'<span class="sizelink">(<a href="cookie.php?size=small" title="small">Small</a>)</span>';
    echo 
'<span class="sizelink">(<a href="cookie.php?size=medium" title="medium">Medium</a>)</span>';
    echo 
'<span class="sizelink">(<a href="cookie.php?size=large" title="large">Large</a>)</span>';
    echo 
'<span class="sizelink">(<a href="cookie.php?size=xlarge" title="large">X-Large</a>)</span><br />';
    echo 
'<p>'.$result[ImageDescription]."<br /><br /></p></div>\n"//Comment
}
else 
//Print the index page
{
    
$dir opendir('.');
    while (
$file readdir($dir))
    {
        if(
$file=='.' or $file=='..') continue;
        if(
stristr($file,$ext)){
            
$nameArray[] = $file;  //Array of filenames
        
}
    }
    
closedir($dir);
    
sort($nameArray);   //Sort the filenames (ascending order)
    
foreach($nameArray as $file)
    {
        
$dirName str_replace($ext,'',$file);         //Strips extension off name
        
if(!file_exists($dirName)) $dirName='';
        
$result exif_read_data($file);    //Reads exif data from file
        
        
echo '<div id="galindex"><span class="galinfo"><span class="galtitle">';
        echo 
'<a href="'.$myName.'?gallery='.$dirName;
            echo 
'" title="'.$result[$titleField].'">';  //Link
            
echo $result[$titleField]; //Title
            
echo "</a></span><br />\n";
        echo 
$result[ImageDescription].'</span>';  //Comment
        
echo '<span class="galimage">';
        echo 
'<a href="'.$myName.'?gallery='.$dirName;  //link
                
echo '" title="'.$result[$titleField].'">';
        echo 
'<img alt=\'\' src=\'thumb.php?image='.$file.'\'>';  //'Icon' Image
        
echo "</a></span></div>\n";
    }
}
    
/*
    *    getFileName : uses directory name given and returns a list of file names only ending in $ext
    */
    
function getFileNames($directory)
    {
        global 
$ext;  //This whole damn script is a hack so I don't care anymore
        
$nameArray ''//Where we will put the file names
        
while (($file readdir($directory)) !== false) {
            if(
$file=='.' or $file=='..') continue;  //Skip over '.' and '..' files (from UNIX)
            
if(stristr($file,$ext))  //Only operate on $EXT type files in this dir
            
{
                    
$nameArray[] = $file;    //Make an array of the filenames
            
}
        }
        
closedir($directory);
        return 
$nameArray;
    }
?>

Valid XHTML 1.0! Valid CSS!

© David Woodward 2000-2003 - All rights reserved