
www.onethirtyseven.com
Snapshot galleries of my life and others'
<?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 ' ';
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 ' ';
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;
}
?>
© David Woodward 2000-2003 - All rights reserved