private static function outputSlideshow() { $stdout = ""; // ------------------- // -- Construct configuration parameters // ------------------- if (preg_match("~.*/" . PHOTO_URI . "/(.*)/index.php\$~U", $_SERVER["PHP_SELF"], $tmp)) { self::$subdir = PHOTO_URI . "/" . $tmp[1]; } else { self::$subdir = PHOTO_URI . "/nordita"; } self::$imgpath = PATH_PHOTOS . "/" . $GLOBALS["documentClass"]->getPageCrumb(); if (!file_exists(INCLEVEL . self::$imgpath)) { return "<p style='color:#f2bcbc'><strong>»</strong> <em>No images were found!</em></p>\r\n"; } self::$filenames = self::collectFilenames(); self::$numberOfImages = count(self::$filenames); if (self::$numberOfImages == 0) { return "<p style='color:#f2bcbc'><strong>»</strong> <em>No images were found!</em></p>\r\n"; } if (isset(self::$thumbWidth)) { self::$thumbsHorizontally = min(self::$thumbsHorizontally, floor(self::$thumbs_table_width / self::$thumbWidth)); } else { self::$thumbHeight = 64; self::$thumbWidth = 64; } self::$thumbsMaxDisplayed = self::$thumbsVertically * self::$thumbsHorizontally; self::$copyright = "(c)" . " " . (!empty(self::$copyright) ? self::$copyright : "2001-" . date("Y")) . " " . (!empty(self::$photographer) ? self::$photographer : "Nordita") . ""; functions::gpc_declare_input("tum", "false", true); self::$showThumbnails = $GLOBALS["tum"]; functions::gpc_declare_input("nr", 1); self::$nr = $GLOBALS["nr"] < 0 || $GLOBALS["nr"] > self::$numberOfImages ? 1 : $GLOBALS["nr"]; // ------------------- // -- Output slideshow // ------------------- $stdout .= "<div id='slideshow'>\r\n\r\n"; if (self::$enableVerboseDisplay) { if (self::$showThumbnails && !empty(self::$eventDate)) { $stdout .= "<h3>" . self::$eventDate . "</h3>\r\n\r\n"; } if (self::$showThumbnails && !empty(self::$introText)) { $stdout .= "<p><strong>" . self::$introText . "</strong></p>\r\n"; } if (self::$showThumbnails && !empty(self::$photographer)) { $stdout .= "<p><i>Photos</i>: " . self::$copyright . ".</p>\r\n"; } } if (self::$showThumbnails) { $stdout .= self::outputThumbnails(); } else { $stdout .= self::outputOneImage(); } $stdout .= "</div> <!-- end slideshow -->\r\n\r\n"; return $stdout; }
static function getShow($heading, $speedctl, $albumobj, $imageobj, $width, $height, $crop, $shuffle, $linkslides, $controls, $returnpath, $imagenumber) { global $_zp_gallery, $_zp_gallery_page; setOption('slideshow_' . $_zp_gallery->getCurrentTheme() . '_' . stripSuffix($_zp_gallery_page), 1); if (!$albumobj->isMyItem(LIST_RIGHTS) && !checkAlbumPassword($albumobj)) { return '<div class="errorbox" id="message"><h2>' . gettext('This album is password protected!') . '</h2></div>'; } $slideshow = ''; $numberofimages = $albumobj->getNumImages(); // setting the image size if ($width) { $wrapperwidth = $width; } else { $width = $wrapperwidth = getOption("slideshow_width"); } if ($height) { $wrapperheight = $height; } else { $height = $wrapperheight = getOption("slideshow_height"); } if ($numberofimages == 0) { return '<div class="errorbox" id="message"><h2>' . gettext('No images for the slideshow!') . '</h2></div>'; } $option = getOption("slideshow_mode"); // jQuery Cycle slideshow config // get slideshow data $showdesc = getOption("slideshow_showdesc"); // slideshow display section $validtypes = array('jpg', 'jpeg', 'gif', 'png', 'mov', '3gp'); $slideshow .= ' <script type="text/javascript"> // <!-- <![CDATA[ $(document).ready(function(){ $(function() { var ThisGallery = "' . html_encode($albumobj->getTitle()) . '"; var ImageList = new Array(); var TitleList = new Array(); var DescList = new Array(); var ImageNameList = new Array(); var DynTime=(' . (int) getOption("slideshow_timeout") . '); '; $images = $albumobj->getImages(0); if ($shuffle) { shuffle($images); } for ($imgnr = 0, $cntr = 0, $idx = $imagenumber; $imgnr < $numberofimages; $imgnr++, $idx++) { if (is_array($images[$idx])) { $filename = $images[$idx]['filename']; $album = newAlbum($images[$idx]['folder']); $image = newImage($album, $filename); } else { $filename = $images[$idx]; $image = newImage($albumobj, $filename); } $ext = slideshow::is_valid($filename, $validtypes); if ($ext) { if ($crop) { $img = $image->getCustomImage(NULL, $width, $height, $width, $height, NULL, NULL, NULL, NULL); } else { $maxwidth = $width; $maxheight = $height; getMaxSpaceContainer($maxwidth, $maxheight, $image); $img = $image->getCustomImage(NULL, $maxwidth, $maxheight, NULL, NULL, NULL, NULL, NULL, NULL); } $slideshow .= 'ImageList[' . $cntr . '] = "' . $img . '";' . "\n"; $slideshow .= 'TitleList[' . $cntr . '] = "' . js_encode($image->getTitle()) . '";' . "\n"; if ($showdesc) { $desc = $image->getDesc(); $desc = str_replace("\r\n", '<br />', $desc); $desc = str_replace("\r", '<br />', $desc); $slideshow .= 'DescList[' . $cntr . '] = "' . js_encode($desc) . '";' . "\n"; } else { $slideshow .= 'DescList[' . $cntr . '] = "";' . "\n"; } if ($idx == $numberofimages - 1) { $idx = -1; } $slideshow .= 'ImageNameList[' . $cntr . '] = "' . urlencode($filename) . '";' . "\n"; $cntr++; } } $slideshow .= "\n"; $numberofimages = $cntr; $slideshow .= ' var countOffset = ' . $imagenumber . '; var totalSlideCount = ' . $numberofimages . '; var currentslide = 2; function onBefore(curr, next, opts) { if (opts.timeout != DynTime) { opts.timeout = DynTime; } if (!opts.addSlide) return; var currentImageNum = currentslide; currentslide++; if (currentImageNum == totalSlideCount) { opts.addSlide = null; return; } var relativeSlot = (currentslide + countOffset) % totalSlideCount; if (relativeSlot == 0) {relativeSlot = totalSlideCount;} var htmlblock = "<span class=\\"slideimage\\"><h4><strong>" + ThisGallery + ":</strong> "; htmlblock += TitleList[currentImageNum] + " (" + relativeSlot + "/" + totalSlideCount + ")</h4>"; '; if ($linkslides) { if (MOD_REWRITE) { $slideshow .= 'htmlblock += "<a href=\\"' . pathurlencode($albumobj->name) . '/"+ImageNameList[currentImageNum]+"' . getOption('mod_rewrite_image_suffix') . '\\">";'; } else { $slideshow .= 'htmlblock += "<a href=\\"index.php?album=' . pathurlencode($albumobj->name) . '&image="+ImageNameList[currentImageNum]+"\\">";'; } } $slideshow .= ' htmlblock += "<img src=\\"" + ImageList[currentImageNum] + "\\"/>";'; if ($linkslides) { $slideshow .= ' htmlblock += "</a>";'; } $slideshow .= 'htmlblock += "<p class=\\"imgdesc\\">" + DescList[currentImageNum] + "</p></span>";'; $slideshow .= 'opts.addSlide(htmlblock);'; $slideshow .= '}'; $slideshow .= ' function onAfter(curr, next, opts){ '; if (!$albumobj->isMyItem(LIST_RIGHTS)) { $slideshow .= ' //Only register at hit count the first time the image is viewed. if ($(next).attr("viewed") != 1) { $.get("' . FULLWEBPATH . '/' . ZENFOLDER . '/' . PLUGIN_FOLDER . '/slideshow/slideshow-counter.php?album=' . pathurlencode($albumobj->name) . '&img="+ImageNameList[opts.currSlide]); $(next).attr("viewed", 1 ); } '; } $slideshow .= '}'; $slideshow .= ' $("#slides").cycle({ fx: "' . getOption("slideshow_effect") . '", speed: "' . getOption("slideshow_speed") . '", timeout: DynTime, next: "#next", prev: "#prev", cleartype: 1, before: onBefore, after: onAfter }); $("#speed").change(function () { DynTime = this.value; return false; }); $("#pause").click(function() { $("#slides").cycle("pause"); return false; }); $("#play").click(function() { $("#slides").cycle("resume"); return false; }); }); }); // Documentready() // ]]> --> </script> <div id="slideshow" style="height:' . ($wrapperheight + 40) . 'px; width:' . $wrapperwidth . 'px;"> '; // 7/21/08dp if ($speedctl) { $slideshow .= '<div id="speedcontrol">'; // just to keep it away from controls for sake of this demo $minto = getOption("slideshow_speed"); while ($minto % 500 != 0) { $minto += 100; if ($minto > 10000) { break; } // emergency bailout! } $dflttimeout = (int) getOption("slideshow_timeout"); /* don't let min timeout = speed */ $thistimeout = $minto == getOption("slideshow_speed") ? $minto + 250 : $minto; $slideshow .= 'Select Speed: <select id="speed" name="speed">'; while ($thistimeout <= 60000) { // "around" 1 minute :) $slideshow .= "<option value={$thistimeout} " . ($thistimeout == $dflttimeout ? " selected='selected'>" : ">") . round($thistimeout / 1000, 1) . " sec</option>"; /* put back timeout to even increments of .5 */ if ($thistimeout % 500 != 0) { $thistimeout -= 250; } $thistimeout += $thistimeout < 1000 ? 500 : ($thistimeout < 10000 ? 1000 : 5000); } $slideshow .= '</select> </div>'; } if ($controls) { $slideshow .= ' <div id="controls"> <div> <a href="#" id="prev" title="' . gettext("Previous") . '"></a> <a href="' . html_encode($returnpath) . '" id="stop" title="' . gettext("Stop and return to album or image page") . '"></a> <a href="#" id="pause" title="' . gettext("Pause (to stop the slideshow without returning)") . '"></a> <a href="#" id="play" title="' . gettext("Play") . '"></a> <a href="#" id="next" title="' . gettext("Next") . '"></a> </div> </div> '; } $slideshow .= ' <div id="slides" class="pics"> '; if ($cntr > 1) { $cntr = 1; } for ($imgnr = 0, $idx = $imagenumber; $imgnr <= $cntr; $idx++) { if ($idx >= $numberofimages) { $idx = 0; } if (is_array($images[$idx])) { $folder = $images[$idx]['folder']; $dalbum = newAlbum($folder); $filename = $images[$idx]['filename']; $image = newImage($dalbum, $filename); $imagepath = FULLWEBPATH . ALBUM_FOLDER_EMPTY . $folder . "/" . $filename; } else { $folder = $albumobj->name; $filename = $images[$idx]; //$filename = $animage; $image = newImage($albumobj, $filename); $imagepath = FULLWEBPATH . ALBUM_FOLDER_EMPTY . $folder . "/" . $filename; } $ext = slideshow::is_valid($filename, $validtypes); if ($ext) { $imgnr++; $slideshow .= '<span class="slideimage"><h4><strong>' . $albumobj->getTitle() . gettext(":") . '</strong> ' . $image->getTitle() . ' (' . ($idx + 1) . '/' . $numberofimages . ')</h4>'; if ($ext == "3gp") { $slideshow .= '</a> <object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="352" height="304" codebase="http://www.apple.com/qtactivex/qtplugin.cab"> <param name="src" value="' . pathurlencode(internalToFilesystem($imagepath)) . '"/> <param name="autoplay" value="false" /> <param name="type" value="video/quicktime" /> <param name="controller" value="true" /> <embed src="' . pathurlencode(internalToFilesystem($imagepath)) . '" width="352" height="304" autoplay="false" controller"true" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/" cache="true"></embed> </object> <a>'; } elseif ($ext == "mov") { $slideshow .= '</a> <object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="640" height="496" codebase="http://www.apple.com/qtactivex/qtplugin.cab"> <param name="src" value="' . pathurlencode(internalToFilesystem($imagepath)) . '"/> <param name="autoplay" value="false" /> <param name="type" value="video/quicktime" /> <param name="controller" value="true" /> <embed src="' . pathurlencode(internalToFilesystem($imagepath)) . '" width="640" height="496" autoplay="false" controller"true" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/" cache="true"></embed> </object> <a>'; } else { if ($linkslides) { $slideshow .= '<a href="' . html_encode($image->getLink()) . '">'; } if ($crop) { $img = $image->getCustomImage(NULL, $width, $height, $width, $height, NULL, NULL, NULL, NULL); } else { $maxwidth = $width; $maxheight = $height; getMaxSpaceContainer($maxwidth, $maxheight, $image); $img = $image->getCustomImage(NULL, $maxwidth, $maxheight, NULL, NULL, NULL, NULL, NULL, NULL); } $slideshow .= '<img src="' . html_encode(pathurlencode($img)) . '" alt="" />'; if ($linkslides) { $slideshow .= '</a>'; } } if ($showdesc) { $desc = $image->getDesc(); $desc = str_replace("\r\n", '<br />', $desc); $desc = str_replace("\r", '<br />', $desc); $slideshow .= '<p class="imgdesc">' . $desc . '</p>'; } $slideshow .= '</span>'; } } $slideshow .= ' </div> </div> '; return $slideshow; }
/* PHP image slideshow - auto version - PHP5 */ // set the absolute path to the directory containing the images define('IMGDIR', 'C:\\wamp\\www\\upload\\wallpaper\\Dormitory\\'); // same but for www define('WEBIMGDIR', 'http://localhost/upload/wallpaper/Dormitory/'); // set session name for slideshow "cookie" define('SS_SESSNAME', 'slideshow_sess'); // global error variable $err = ''; // start img session session_name(SS_SESSNAME); session_start(); // init slideshow class $ss = new slideshow($err); if (($err = $ss->init()) != '') { header('HTTP/1.1 500 Internal Server Error'); echo $err; exit; } // get image files from directory $ss->get_images(); // set variables, done. list($curr, $caption, $first, $prev, $next, $last) = $ss->run(); /* slideshow class, can be used stand-alone */ class slideshow { private $files_arr = NULL;