";
################################################################################
################################################################################
// PHPSlideShow v0.6 written by Greg Lawler
// from http://www.zinkwazi.com/pages.php?page_name=scripts
// v0.6.1 july 2002 - fixed special character bug.
// v0.6 july 2002 - added lots of formatting options and a security patch
// v0.5.1 march 2002 - minor bug fixes, reg exp fix...
// v0.5 march 2002 - osx path fix, page headings for multi dir, cleaner...
// v0.4 july 10 2001
// v0.3.5 july 5 2001
// v0.3.4 april 19 2001
// v0.3.3 january 9 2001
// v0.3.1 september 29 2000 - added support for image buttons
// v0.3 september 12 2000 - added support for comments
// v0.2 august 28 2000
//
// Feel free to use/modify this little script
//
// IMPORTANT NOTE....
// if you want to send me a token of appreciation, starbucks coffee coupons
// are gladly accepted from http://www.starbucks.com ;)
// my address is:
// attention: greg lawler
// 801 alston road, santa barbara, ca 93108 usa
// otherwise it's free.
//
// this script comes with no implied warranty.
//
// enjoy :)
// greg
############################# Quick Start Installation #########################
// put this file in a directory that contains your images
// the slideshow should now work...
############################# Customized Installation #########################
// Q: how do i add image comments/descriptions to the slideshow?
// A: make a file (e.g. pics.txt) that contains the image names and descriptions
// place each image name and description on a new line separated by a semi colon.
// an easy way to do this is type
// ls *.jpg > pics.txt in linux or
// dir *.jpg > pics.txt in dos - you will need edit this with notepad/vi to clean
// out any extra stuff that dir puts in there and to add the semi colon and
// description.
// the slideshow should now work including comments...
//
// Q: how do i give each directory of images it's own page heading?
// A: place a file called heading.txt in each directory. place the page heading
// on the first line of this file.
//
// Q: how do i use one slideshow for multiple different directories of images?
// A: all you need to do to enable this is to call the script and pass it the
// directory path.
// NOTE: for security, you can only access directories within the same level as
// the phpslideshow.php script...
// eg http://your_url/phpslideshow.php?directory=dog_pics
// eg http://your_url/phpslideshow.php?directory=cat_pics
// eg http://your_url/phpslideshow.php?directory=extra/cat_pics
// these three examples will run phpslideshow but each one will load a different
// set of images and descriptions located in the directories shown
//
// Q: how do i use phpslideshow.php in my existing web page or html template?
// A: change the $standalone variable from true to false.
// what this does is removes the html page headers and footers and only prints
// out the phpslideshow table...
// to use this in an existing php page, use the following line:
// include("phpslideshow.php");
// don't forget that this is php code so it needs to be inside the php tags.
// also, the // at the beginning of the line need to e removed.
//
// EXAMPLE pics.txt file
//
// greg.jpg;Me
// dog.png;My dog John
// cat;
// tux.jpg;My friend Tux
//
// NO BLANK LINES either!
// as you can see, not all pics need a description but the ";" is a MUST!
// point your browser at the script and voilla!
##### CREDITS #####
// the following nice folks have contributed code snippets, bug fixes, ideas :)
// patrick, nicolas, otto, wei-min lee, tom, jonathan, jason rust, hai phung
// greg rundlett, laszlo (jabba), mike collard, justin, jadex, bunnyguy
################################################################################
################################################################################
// file containing optional image descriptions
$pic_info_file="pics.txt";
// name of file containing optional page headings
$heading_info_file = "heading.txt";
// set this to true to display the image filename
$show_image_name = "true";
// set to true to display navigation icons instead of text...
$show_navigation_buttons = "false";
$back_button = "back.gif";
$next_button = "next.gif";
// automated slideshow options
// set this to true to enable the auto slideshow feature
$auto_slideshow = "false";
// $sec is number of seconds between slides...
$sec = "2";
// some formatting options...
$top_row_color = "#cccccc";
$image_row_color = "#ffffff";
$bottom_row_color = "#cccccc";
$page_background_color = "#ffffff";
$main_table_border_color = "#000000";
$img_border_color = "#000000";
$main_table_width = "60%";
$your_home_url = "..";
$home_link = "HOME";
$next_alt = "Next";
$back_alt = "Back";
// set standalone to false if you are using this script in an existing php doc
// e.g. insert the following line in the page where
// you want phpslideshow to appear
// include("phpslideshow.php");
// dont forget to remove the comment slashes...
$standalone = "true";
################################################################################
// grab the variables we want set for newer php version compatability
// the @ supress the error messages if your php.ini error level is too high
@$currentPic = $GLOBALS['HTTP_GET_VARS']['currentPic'];
@$directory = $GLOBALS['HTTP_GET_VARS']['directory'];
@$url=$GLOBALS['HTTP_GET_VARS']['url'];
$your_home_url = "$url";
// check for platform dependent path info... (for windows and mac OSX)
$path = empty($HTTP_SERVER_VARS['PATH_INFO'])?
$HTTP_SERVER_VARS['PHP_SELF']:$HTTP_SERVER_VARS['PATH_INFO'];
// a little security - check that the user did not change the path...
// the path may not contain .. or : (as in c:) or start with / (root dir)
if (preg_match(':(\.\.|^/|\:):', $directory)) {
print "ERROR: Your request contains an invalid path. ";
print "For security purposes, you can only access directories ";
print "within this one. ";
print "Your dir path may not contain .. or : or start with a / ";
print " Try again";
exit;
}
// set directory
$directory == "../public/foto";
if (empty($directory)) $directory = ".";
// if there is no $heading_info_file (see format above) set page heading here
if ( !file_exists("$directory/$heading_info_file")) {
$header = "Foto";
$browser_title = "$header";
}
else {
$heading_info = file("$directory/$heading_info_file");
$header = htmlentities($heading_info[0]);
}
// image / text buttons
if ($show_navigation_buttons == "true") {
$back_src = "";
$next_src = "";
}
else {
$back_src = "$back_alt";
$next_src = "$next_alt";
}
if ( !file_exists("$directory/$pic_info_file")) {
$dh = opendir( "$directory" );
while( $file = readdir( $dh ) ) {
// look for these file types....
if (eregi("(jpg|jpeg|gif|png)$",$file)) {
$pic_info[] = $file;
sort( $pic_info );
}
}
}
else $pic_info=file("$directory/$pic_info_file");
// begin messing with the array
$number_pics = count ($pic_info);
if (empty($currentPic)) $currentPic = 0;
if (($currentPic > $number_pics)||($currentPic == $number_pics))
$currentPic = '0';
$item = explode (";", $pic_info[$currentPic]);
$last = $number_pics - 1;
$next = $currentPic + 1;
if ($currentPic > 0 ) $back = $currentPic - 1;
else $currentPic = "0";
// print the description if it exists
$blank = empty($item[1])?' ':htmlentities($item[1]);
$show_name = ($show_image_name=="false")?' ':htmlentities($item[0]);
if ($currentPic > 0 ) $nav=$back;
else $nav=$last;
// meta refresh stuff for auto slideshow...
if ($auto_slideshow == "true") {
$meta_refresh = "";
}
else $meta_refresh = "\n";
################################################################################
// top of html page stuff
// print the page header if in standalone mode
if ($standalone == "true") {
print <<< HERE
$meta_refresh
$header
HERE;
}
// draw the main table in html
print <<< HERE