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 // //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 = "#66ffff"; $image_row_color = "#ffffff"; $bottom_row_color = "#66ffff"; $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.northcoastjournal.com"; // 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 = "\"$back_alt\""; $next_src = "\"$next_alt\""; } 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
  $header $back_src [ $next of $number_pics ] $next_src  
image $blank
$show_name
   $home_link
HERE; // print the page footer if in standalone mode if ($standalone == "true") { print <<< HERE HERE; } ?>