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.
//
// for example:
// pictures_directory -> phpslideshow.php
// -> dog_pics
// -> cat_pics
// so you have a directory called pictures_directory that contains your
// phpslideshow.php and two directories containing pictures of your pets...
// in order to access the shows:
// http://yourserver.com/pictures_directory/phpslideshow.php?directory=dog_pics
// http://yourserver.com/pictures_directory/phpslideshow.php?directory=cat_pics
//
// if there were images in the pictures_directory, you'd see them like this:
// http://yourserver.com/pictures_directory/phpslideshow.php?directory=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
//
// NOTE: for security, you can only access directories within the same dir as
// the phpslideshow.php script...
//
// 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 needs to be removed.
//
// Q: how do i make my php slide show appear in it's own popup window?
// A: copy the following lines into the body of a web page
// (minus the leading two comment slashes on each line...)
//
//
//My cool PHPSlideshow
//
//
// 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
// 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
################################################################################
################################################################################
// 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%";
$home_link = "HOME";
$next_alt = "Next";
$back_alt = "Back";
$your_home_url = "http://www.zinkwazi.com/pages.php?page_name=scripts";
// set this to true to display the image filename
$show_image_name = "false";
// 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";
// 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";
// file containing optional image descriptions
$pic_info_file="pics.txt";
// name of file containing optional page headings
$heading_info_file = "heading.txt";
################################################################################
// 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'];
// 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
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 = "PHP Slideshow";
$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]);
// a hack so that you can include
tags in the comments...
$blank = ereg_replace ("<br>", "
", $blank);
$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
HERE;
// print the page footer if in standalone mode
if ($standalone == "true") {
print <<< HERE
HERE;
}
?>