?> "><?php printGalleryTitle(); ?> </a> | <?php } printGalleryTitle(); ?> </a> | <?php if (is_null($_zp_current_album)) { $search = new SearchEngine(); $params = trim(zp_getCookie('zenphoto_search_params')); $search->setSearchParams($params); $images = $search->getImages(0); $searchwords = $search->getSearchWords(); $searchdate = $search->getSearchDate(); $searchfields = $search->getSearchFields(true); $page = $search->page; $returnpath = getSearchURL($searchwords, $searchdate, $searchfields, $page); echo '<a href=' . html_encode($returnpath) . '><em>' . gettext('Search') . '</em></a> | '; } else { printParentBreadcrumb(); printAlbumBreadcrumb("", " | "); } ?> </span> Slideshow </div> <!-- navbar --> </div> <!-- wrapnav -->
static function printSlideShow($heading = true, $speedctl = false, $albumobj = "", $imageobj = "", $width = "", $height = "") { if (!isset($_POST['albumid']) and !is_object($albumobj)) { echo "<div class=\"errorbox\" id=\"message\"><h2>" . gettext("Invalid linking to the slideshow page.") . "</h2></div>"; echo "</div></body></html>"; exit; } global $_zp_flash_player, $_zp_current_image, $_zp_current_album, $_zp_gallery; //getting the image to start with if (!empty($_POST['imagenumber']) and !is_object($imageobj)) { $imagenumber = $_POST['imagenumber'] - 1; // slideshows starts with 0, but zp with 1. } elseif (is_object($imageobj)) { makeImageCurrent($imageobj); $imagenumber = imageNumber() - 1; } else { $imagenumber = 0; } // set pagenumber to 0 if not called via POST link if (isset($_POST['pagenr'])) { $pagenumber = sanitize_numeric($_POST['pagenr']); } else { $pagenumber = 0; } // getting the number of images if (!empty($_POST['numberofimages'])) { $numberofimages = sanitize_numeric($_POST['numberofimages']); } elseif (is_object($albumobj)) { $numberofimages = $albumobj->getNumImages(); } //getting the album to show if (!empty($_POST['albumid']) and !is_object($albumobj)) { $albumid = sanitize_numeric($_POST['albumid']); } elseif (is_object($albumobj)) { $albumid = $albumobj->id; } else { $albumid = -1; } // setting the image size if (!empty($width) and !empty($height)) { $width = sanitize_numeric($width); $height = sanitize_numeric($height); } else { $width = getOption("slideshow_width"); $height = getOption("slideshow_height"); } $option = getOption("slideshow_mode"); // jQuery Cycle slideshow config // get slideshow data $gallery = new Gallery(); if ($albumid <= 0) { // search page $dynamic = 2; $search = new SearchEngine(); $params = $_POST['preserve_search_params']; $search->setSearchParams($params); $images = $search->getImages(0); $searchwords = $search->words; $searchdate = $search->dates; $searchfields = $search->fields; $page = $search->page; if (empty($_POST['imagenumber'])) { $albumq = query_single_row("SELECT title, folder FROM " . prefix('albums') . " WHERE id = " . abs($albumid)); $album = new Album($gallery, $albumq['folder']); $returnpath = getSearchURL($searchwords, $searchdate, $searchfields, $page); //$returnpath = rewrite_path('/'.pathurlencode($album->name).'/page/'.$pagenumber,'/index.php?album='.urlencode($album->name).'&page='.$pagenumber); } else { $returnpath = getSearchURL($searchwords, $searchdate, $searchfields, $page); } $albumtitle = gettext('Search'); } else { $albumq = query_single_row("SELECT title, folder FROM " . prefix('albums') . " WHERE id = " . $albumid); $album = new Album($gallery, $albumq['folder']); $albumtitle = $album->getTitle(); if (!checkAlbumPassword($albumq['folder'], $hint)) { echo gettext("This album is password protected!"); exit; } $dynamic = $album->isDynamic(); $images = $album->getImages(0); // return path to get back to the page we called the slideshow from if (empty($_POST['imagenumber'])) { $returnpath = rewrite_path('/' . pathurlencode($album->name) . '/page/' . $pagenumber, '/index.php?album=' . urlencode($album->name) . '&page=' . $pagenumber); } else { $returnpath = rewrite_path('/' . pathurlencode($album->name) . '/' . rawurlencode($_POST['imagefile']) . getOption('mod_rewrite_image_suffix'), '/index.php?album=' . urlencode($album->name) . '&image=' . urlencode($_POST['imagefile'])); } } // slideshow display section switch ($option) { case "jQuery": $validtypes = array('jpg', 'jpeg', 'gif', 'png', 'mov', '3gp'); ?> <script type="text/javascript"> $(document).ready(function(){ $(function() { var ThisGallery = '<?php echo html_encode($albumtitle); ?> '; var ImageList = new Array(); var TitleList = new Array(); var DescList = new Array(); var ImageNameList = new Array(); var DynTime=(<?php echo getOption("slideshow_timeout"); ?> ) * 1.0; // force numeric <?php for ($imgnr = 0, $cntr = 0, $idx = $imagenumber; $imgnr < $numberofimages; $imgnr++, $idx++) { if ($dynamic) { $filename = $images[$idx]['filename']; $album = new Album($gallery, $images[$idx]['folder']); $image = newImage($album, $filename); } else { $filename = $images[$idx]; $image = newImage($album, $filename); } $ext = is_valid($filename, $validtypes); if ($ext) { makeImageCurrent($image); $img = getCustomSizedImageMaxSpace($width, $height); //$img = WEBPATH . '/' . ZENFOLDER . '/i.php?a=' . pathurlencode($image->album->name) . '&i=' . urlencode($filename) . '&s=' . $imagesize; echo 'ImageList[' . $cntr . '] = "' . $img . '";' . "\n"; echo 'TitleList[' . $cntr . '] = "' . js_encode($image->getTitle()) . '";' . "\n"; if (getOption("slideshow_showdesc")) { $desc = $image->getDesc(); $desc = str_replace("\r\n", '<br />', $desc); $desc = str_replace("\r", '<br />', $desc); echo 'DescList[' . $cntr . '] = "' . js_encode($desc) . '";' . "\n"; } else { echo 'DescList[' . $cntr . '] = "";' . "\n"; } if ($idx == $numberofimages - 1) { $idx = -1; } echo 'ImageNameList[' . $cntr . '] = "' . urlencode($filename) . '";' . "\n"; $cntr++; } } echo "\n"; $numberofimages = $cntr; ?> var countOffset = <?php echo $imagenumber; ?> ; var totalSlideCount = <?php echo $numberofimages; ?> ; var currentslide = 2; function onBefore(curr, next, opts) { //$(next).parent().animate({opacity: 0}); 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>"; htmlblock += "<img src='" + ImageList[currentImageNum] + "'/>"; htmlblock += "<p class='imgdesc'>" + DescList[currentImageNum] + "</p></span>"; opts.addSlide(htmlblock); } function onAfter(curr, next, opts){ <?php if (!isMyALbum($album->name, ALL_RIGHTS)) { ?> //Only register at hit count the first time the image is viewed. if ($(next).attr( 'viewed') != 1) { $.get("<?php echo FULLWEBPATH . '/' . ZENFOLDER . '/' . PLUGIN_FOLDER; ?> /slideshow/slideshow-counter.php?album=<?php echo pathurlencode($album->name); ?> &img="+ImageNameList[opts.currSlide]); $(next).attr( 'viewed', 1 ); } <?php } ?> //THE MISSING LINE $(next).parent().height( $(next).find('img').height() + $(next).find('p').height() + $(next).find('h4').height() + 40 ); //.animate({opacity: 1}, 'normal', 'linear'); //getOption('slideshow_onafter'); //make it generic //END MISSING LINE } $('#slides').cycle({ fx: '<?php echo getOption("slideshow_effect"); ?> ', speed: <?php echo 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" align="center"> <?php // 7/21/08dp if ($speedctl) { echo '<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 = getOption("slideshow_timeout"); /* don't let min timeout = speed */ $thistimeout = $minto == getOption("slideshow_speed") ? $minto + 250 : $minto; echo 'Select Speed: <select id="speed" name="speed">'; while ($thistimeout <= 60000) { // "around" 1 minute :) echo "<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); } echo "</select> </div>"; } if (!is_object($albumobj)) { // disable controls if calling the slideshow directly on homepage for example ?> <div id="controls"> <div><span><a href="#" id="prev" title="<?php echo gettext("Previous"); ?> "></a></span> <a href="<?php echo $returnpath; ?> " id="stop" title="<?php echo gettext("Stop and return to album or image page"); ?> "></a> <a href="#" id="pause" title="<?php echo gettext("Pause (to stop the slideshow without returning)"); ?> "></a> <a href="#" id="play" title="<?php echo gettext("Play"); ?> "></a> <a href="#" id="next" title="<?php echo gettext("Next"); ?> "></a> </div> </div> <?php } ?> <div id="slides" class="pics"> <?php if ($cntr > 1) { $cntr = 1; } for ($imgnr = 0, $idx = $imagenumber; $imgnr <= $cntr; $idx++) { if ($idx >= $numberofimages) { $idx = 0; } if ($dynamic) { $folder = $images[$idx]['folder']; $dalbum = new Album($gallery, $folder); $filename = $images[$idx]['filename']; $image = newImage($dalbum, $filename); $imagepath = FULLWEBPATH . getAlbumFolder('') . pathurlencode($folder) . "/" . urlencode($filename); } else { $folder = $album->name; $filename = $images[$idx]; //$filename = $animage; $image = newImage($album, $filename); $imagepath = FULLWEBPATH . getAlbumFolder('') . pathurlencode($folder) . "/" . urlencode($filename); } $ext = is_valid($filename, $validtypes); if ($ext) { $imgnr++; echo "<span class='slideimage'><h4><strong>" . $albumtitle . gettext(":") . "</strong> " . $image->getTitle() . " (" . ($idx + 1) . "/" . $numberofimages . ")</h4>"; if ($ext == "3gp") { echo '</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="' . $imagepath . '"/> <param name="autoplay" value="false" /> <param name="type" value="video/quicktime" /> <param name="controller" value="true" /> <embed src="' . $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") { echo '</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="' . $imagepath . '"/> <param name="autoplay" value="false" /> <param name="type" value="video/quicktime" /> <param name="controller" value="true" /> <embed src="' . $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 { makeImageCurrent($image); printCustomSizedImageMaxSpace($alt = '', $width, $height, NULL, NULL, false); //echo "<img src='".WEBPATH."/".ZENFOLDER."/i.php?a=".urlencode($folder)."&i=".urlencode($filename)."&s=".$imagesize."' alt='".html_encode($image->getTitle())."' title='".html_encode($image->getTitle())."' />\n"; } if (getOption("slideshow_showdesc")) { $desc = $image->getDesc(); $desc = str_replace("\r\n", '<br />', $desc); $desc = str_replace("\r", '<br />', $desc); echo "<p class='imgdesc'>" . $desc . "</p>"; } echo "</span>"; } } break; case "flash": if ($heading) { echo "<span class='slideimage'><h4><strong>" . $albumtitle . "</strong> (" . $numberofimages . " images) | <a style='color: white' href='" . $returnpath . "' title='" . gettext("back") . "'>" . gettext("back") . "</a></h4>"; } echo "<span id='slideshow'></span>"; ?> <script type="text/javascript"> $("#slideshow").flashembed({ src:'<?php echo FULLWEBPATH . '/' . ZENFOLDER . '/' . PLUGIN_FOLDER; ?> /flowplayer/FlowPlayerLight.swf', width:<?php echo getOption("slideshow_flow_player_width"); ?> , height:<?php echo getOption("slideshow_flow_player_height"); ?> }, {config: { autoPlay: true, useNativeFullScreen: true, playList: [ <?php echo "\n"; $count = 0; foreach ($images as $animage) { if ($dynamic) { $folder = $animage['folder']; $filename = $animage['filename']; $salbum = new Album($_zp_gallery, $folder); $image = newImage($salbum, $filename); $imagepath = FULLWEBPATH . getAlbumFolder('') . pathurlencode($salbum->name) . "/" . urlencode($filename); } else { $folder = $album->name; $filename = $animage; $image = newImage($album, $filename); $imagepath = FULLWEBPATH . getAlbumFolder('') . pathurlencode($folder) . "/" . pathurlencode($filename); } $ext = is_valid($filename, array('jpg', 'jpeg', 'gif', 'png', 'flv', 'mp3', 'mp4')); if ($ext) { if ($ext == "flv" || $ext == "mp3" || $ext == "mp4") { $duration = ""; } else { $duration = ", duration: " . getOption("slideshow_speed") / 10; } if ($count > 0) { echo ",\n"; } echo "{ url: '" . FULLWEBPATH . getAlbumFolder('') . pathurlencode($folder) . "/" . urlencode($filename) . "'" . $duration . " }"; $count++; } } echo "\n"; ?> ], showPlayListButtons: true, showStopButton: true, controlBarBackgroundColor: 0, showPlayListButtons: true, controlsOverVideo: 'ease', controlBarBackgroundColor: '<?php echo getOption('flow_player_controlbarbackgroundcolor'); ?> ', controlsAreaBorderColor: '<?php echo getOption('flow_player_controlsareabordercolor'); ?> ' }} ); </script> <?php echo "</span>"; echo "<p>"; printf(gettext("Click on %s on the right in the player control bar to view full size."), "<img style='position: relative; top: 4px; border: 1px solid gray' src='" . WEBPATH . "/" . ZENFOLDER . '/' . PLUGIN_FOLDER . "/slideshow/flowplayerfullsizeicon.png' />"); echo "</p>"; break; } ?> </div> </div> <?php }
/** * Prints the slideshow using the {@link http://http://www.malsup.com/jquery/cycle/ jQuery plugin Cycle} * * Two ways to use: * a) Use on your theme's slideshow.php page and called via printSlideShowLink(): * If called from image.php it starts with that image, called from album.php it starts with the first image (jQuery only) * To be used on slideshow.php only and called from album.php or image.php. * * b) Calling directly via printSlideShow() function (jQuery mode) * Place the printSlideShow() function where you want the slideshow to appear and set create an album object for $albumobj and if needed an image object for $imageobj. * The controls are disabled automatically. * * NOTE: The jQuery mode does not support movie and audio files anymore. If you need to show them please use the Flash mode. * Also note that this function is not used for the Colorbox mode! * * @param bool $heading set to true (default) to emit the slideshow breadcrumbs in flash mode * @param bool $speedctl controls whether an option box for controlling transition speed is displayed * @param obj $albumobj The object of the album to show the slideshow of. If set this overrides the POST data of the printSlideShowLink() * @param obj $imageobj The object of the image to start the slideshow with. If set this overrides the POST data of the printSlideShowLink(). If not set the slideshow starts with the first image of the album. * @param int $width The width of the images (jQuery mode). If set this overrides the size the slideshow_width plugin option that otherwise is used. * @param int $height The heigth of the images (jQuery mode). If set this overrides the size the slideshow_height plugin option that otherwise is used. * @param bool $crop Set to true if you want images cropped width x height (jQuery mode only) * @param bool $shuffle Set to true if you want random (shuffled) order * @param bool $linkslides Set to true if you want the slides to be linked to their image pages (jQuery mode only) * @param bool $controls Set to true (default) if you want the slideshow controls to be shown (might require theme CSS changes if calling outside the slideshow.php page) (jQuery mode only) * */ function printSlideShow($heading = true, $speedctl = false, $albumobj = NULL, $imageobj = NULL, $width = NULL, $height = NULL, $crop = false, $shuffle = false, $linkslides = false, $controls = true) { global $_myFavorites, $_zp_conf_vars; if (!isset($_POST['albumid']) and !is_object($albumobj)) { return '<div class="errorbox" id="message"><h2>' . gettext('Invalid linking to the slideshow page.') . '</h2></div>'; } //getting the image to start with if (!empty($_POST['imagenumber']) and !is_object($imageobj)) { $imagenumber = sanitize_numeric($_POST['imagenumber']) - 1; // slideshows starts with 0, but zp with 1. } elseif (is_object($imageobj)) { $imagenumber = $imageobj->getIndex(); } else { $imagenumber = 0; } // set pagenumber to 0 if not called via POST link if (isset($_POST['pagenr'])) { $pagenumber = sanitize_numeric($_POST['pagenr']); } else { $pagenumber = 1; } // getting the number of images if (!empty($_POST['numberofimages'])) { $numberofimages = sanitize_numeric($_POST['numberofimages']); } elseif (is_object($albumobj)) { $numberofimages = $albumobj->getNumImages(); } else { $numberofimages = 0; } if ($imagenumber < 2 || $imagenumber > $numberofimages) { $imagenumber = 0; } //getting the album to show if (!empty($_POST['albumid']) && !is_object($albumobj)) { $albumid = sanitize_numeric($_POST['albumid']); } elseif (is_object($albumobj)) { $albumid = $albumobj->getID(); } else { $albumid = 0; } if (isset($_POST['preserve_search_params'])) { // search page $search = new SearchEngine(); $params = sanitize($_POST['preserve_search_params']); $search->setSearchParams($params); $searchwords = $search->getSearchWords(); $searchdate = $search->getSearchDate(); $searchfields = $search->getSearchFields(true); $page = $search->page; $returnpath = getSearchURL($searchwords, $searchdate, $searchfields, $page); $albumobj = new AlbumBase(NULL, false); $albumobj->setTitle(gettext('Search')); $albumobj->images = $search->getImages(0); } else { if (isset($_POST['favorites_page'])) { $albumobj = $_myFavorites; $returnpath = $_myFavorites->getLink($pagenumber); } else { $albumq = query_single_row("SELECT title, folder FROM " . prefix('albums') . " WHERE id = " . $albumid); $albumobj = newAlbum($albumq['folder']); if (empty($_POST['imagenumber'])) { $returnpath = $albumobj->getLink($pagenumber); } else { $image = newImage($albumobj, sanitize($_POST['imagefile'])); $returnpath = $image->getLink(); } } } echo slideshow::getShow($heading, $speedctl, $albumobj, $imageobj, $width, $height, $crop, $shuffle, $linkslides, $controls, $returnpath, $imagenumber); }
/** * Prints the Galleria slideshow for albums or search results. * * Two ways to use (see readme/documentation): * a) Used on the included theme slideshow.php page and called via printSlideShowLink() from the core slideshow plugin: * b) Calling directly via printGslideshow() function in a template file or codeblock. * * @param obj $albumobj The object of the album to show the slideshow of. Not needed if calling slideshow from album, image, or search. * @param obj $imageobj The object of the image to start the slideshow with. If not set the slideshow starts with the first image of the album, or current image if called from image.php. Not needed if calling slideshow from album, image, or search. * @param bool $linkslides Set to true if you want the slides to be linked to their image pages * @param mixed $autoplay true to autoplay slideshow with interval set in options, false to start with slideshow stopped. Set integer in milliseconds to autoplay at that interval (Ex. 4000), overriding plugin option set. * @param bool $shuffle Set to true if you want random (shuffled) order of the slides * * */ function printGslideshow($albumobj = null, $imageobj = null, $linkslides = true, $autoplay = true, $forceheight = false, $shuffle = false) { $data = 'data'; // no POST data from slidehow link and $albumobj provided is not valid, exit if (!isset($_POST['albumid']) and !is_object($albumobj)) { echo "<div class=\"errorbox\" id=\"message\"><h2>" . gettext("Invalid linking to the slideshow page.") . "</h2></div>"; echo "</div></body></html>"; exitZP(); } global $_zp_current_image, $_zp_current_album, $_zp_gallery, $_myFavorites, $_zp_conf_vars; $imagenumber = 0; //getting the image to start with if (!empty($_POST['imagenumber']) and !is_object($imageobj)) { $imagenumber = sanitize_numeric($_POST['imagenumber']) - 1; // slideshows starts with 0, but zp with 1. } elseif (is_object($imageobj)) { makeImageCurrent($imageobj); $imagenumber = imageNumber() - 1; } // set pagenumber to 0 if not called via POST link if (isset($_POST['pagenr'])) { $pagenumber = sanitize_numeric($_POST['pagenr']); } else { $pagenumber = 1; } // getting the number of images if (!empty($_POST['numberofimages'])) { $numberofimages = sanitize_numeric($_POST['numberofimages']); } elseif (is_object($albumobj)) { $numberofimages = $albumobj->getNumImages(); } else { $numberofimages = 0; } if ($imagenumber < 2 || $imagenumber > $numberofimages) { $imagenumber = 0; } //getting the album to show if (!empty($_POST['albumid']) && !is_object($albumobj)) { $albumid = sanitize_numeric($_POST['albumid']); $embedded = false; } elseif (is_object($albumobj)) { $albumid = $albumobj->getID(); $embedded = true; } else { $albumid = 0; $embedded = false; } if ($numberofimages == 0) { return NULL; } // get slideshow data if (isset($_POST['preserve_search_params'])) { // search page $search = new SearchEngine(); $params = sanitize($_POST['preserve_search_params']); $search->setSearchParams($params); $images = $search->getImages(0); $searchwords = $search->getSearchWords(); $searchdate = $search->getSearchDate(); $searchfields = $search->getSearchFields(true); $page = $search->page; $returnpath = getSearchURL($searchwords, $searchdate, $searchfields, $page); $albumtitle = gettext('Search'); } else { if (isset($_POST['favorites_page'])) { $album = $_myFavorites; $albumtitle = gettext('My Favorites'); $images = $album->getImages(0); $returnpath = rewrite_path(favorites::getFavorites_link() . '/' . $pagenumber, FULLWEBPATH . '/index.php?p=favorites' . '&page=' . $pagenumber); } else { $albumq = query_single_row("SELECT title, folder FROM " . prefix('albums') . " WHERE id = " . $albumid); $album = newAlbum($albumq['folder']); $albumtitle = $album->getTitle(); if (!$album->isMyItem(LIST_RIGHTS) && !checkAlbumPassword($albumq['folder'])) { echo gettext("This album is password protected!"); exitZP(); } $dynamic = $album->isDynamic(); $images = $album->getImages(0); // return path to get back to the page we called the slideshow from if (empty($_POST['imagenumber'])) { $returnpath = rewrite_path('/' . pathurlencode($album->name) . '/page/' . $pagenumber, '/index.php?album=' . urlencode($album->name) . '&page=' . $pagenumber); } else { $returnpath = rewrite_path('/' . pathurlencode($album->name) . '/' . rawurlencode(sanitize($_POST['imagefile'])) . getOption('mod_rewrite_image_suffix'), '/index.php?album=' . urlencode($album->name) . '&image=' . urlencode($_POST['imagefile'])); } } } if ($shuffle) { shuffle($images); } // slideshow display section ?> <script> var data = [ <?php for ($imgnr = 0, $cntr = 0, $idx = 0; $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($album, $filename); } $ext = isImagePhoto($image); if ($ext) { makeImageCurrent($image); echo '{' . "\n"; echo 'thumb: \'' . getCustomSizedImageMaxSpace(getOption('gslideshow_thumbsize'), getOption('gslideshow_thumbsize')) . '\',' . "\n"; echo 'image: \'' . getCustomSizedImageMaxSpace(getOption('gslideshow_mediumsize'), getOption('gslideshow_mediumsize')) . '\',' . "\n"; echo 'big: \'' . getCustomSizedImageMaxSpace(getOption('gslideshow_bigsize'), getOption('gslideshow_bigsize')) . '\',' . "\n"; echo 'title: \'' . js_encode($image->getTitle()) . '\',' . "\n"; $desc = $image->getDesc(); $desc = str_replace("\r\n", '<br />', $desc); $desc = str_replace("\r", '<br />', $desc); echo 'description: \'' . js_encode($desc) . '\',' . "\n"; if ($linkslides) { echo 'link: \'' . html_encode($image->getLink()) . '\'' . "\n"; } if ($imgnr == $numberofimages - 1) { echo '}' . "\n"; } else { echo '},' . "\n"; } } } echo "\n"; ?> ]; </script> <?php printGalleriaRun($data, $linkslides, $autoplay, $embedded, $forceheight, $imagenumber, $albumtitle, $returnpath); //restore_context(); // needed if the slideshow is for example called directly via album object before the next_album loop on index.php }
function printBaseSlideShow() { global $_zp_gallery, $_zp_gallery_page, $_myFavorites, $_zp_conf_vars, $_zp_themeroot, $isMobile, $isTablet; if (!isset($_POST['albumid'])) { return '<div class="errorbox" id="message"><h2>' . gettext('Invalid linking to the slideshow page.') . '</h2></div>'; } //getting the image to start with if (!empty($_POST['imagenumber'])) { $imagenumber = sanitize_numeric($_POST['imagenumber']) - 1; // slideshows starts with 0, but zp with 1. } else { $imagenumber = 0; } // set pagenumber to 0 if not called via POST link if (isset($_POST['pagenr'])) { $pagenumber = sanitize_numeric($_POST['pagenr']); } else { $pagenumber = 1; } // getting the number of images if (!empty($_POST['numberofimages'])) { $numberofimages = sanitize_numeric($_POST['numberofimages']); } else { $numberofimages = 0; } //if ($imagenumber < 2 || $imagenumber > $numberofimages) { // $imagenumber = 0; //} //getting the album to show if (!empty($_POST['albumid'])) { $albumid = sanitize_numeric($_POST['albumid']); } else { $albumid = 0; } if (isset($_POST['preserve_search_params'])) { // search page $search = new SearchEngine(); $params = sanitize($_POST['preserve_search_params']); $search->setSearchParams($params); $searchwords = $search->getSearchWords(); $searchdate = $search->getSearchDate(); $searchfields = $search->getSearchFields(true); $page = $search->page; $returnpath = getSearchURL($searchwords, $searchdate, $searchfields, $page); $albumobj = new AlbumBase(NULL, false); $albumobj->setTitle(gettext('Search')); $albumobj->images = $search->getImages(0); $albumtitle = gettext('Search'); } else { if (isset($_POST['favorites_page'])) { $albumobj = $_myFavorites; $returnpath = rewrite_path($_myFavorites->getLink() . '/' . $pagenumber, FULLWEBPATH . '/index.php?p=favorites' . '&page=' . $pagenumber); $albumtitle = gettext('Favorites'); } else { $albumq = query_single_row("SELECT title, folder FROM " . prefix('albums') . " WHERE id = " . $albumid); $albumobj = newAlbum($albumq['folder']); $albumtitle = $albumobj->getTitle(); if (empty($_POST['imagenumber'])) { $returnpath = $albumobj->getLink($pagenumber); } else { $image = newImage($albumobj, sanitize($_POST['imagefile'])); $returnpath = $image->getLink(); } } } 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(); if ($numberofimages == 0) { return '<div class="errorbox" id="message"><h2>' . gettext('No images for the slideshow!') . '</h2></div>'; } $images = $albumobj->getImages(0); // slideshow generate data for galleria ?> <script> var data = [ <?php for ($c = 0, $idx = 0; $c < $numberofimages; $c++, $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); } if (isImagePhoto($image)) { makeImageCurrent($image); echo '{' . "\n"; echo 'thumb: \'' . getImageThumb() . '\',' . "\n"; echo 'image: \'' . getDefaultSizedImage() . '\',' . "\n"; echo 'big: \'' . getCustomImageURL(getOption('zpbase_galbigsize')) . '\',' . "\n"; echo 'title: \'' . js_encode($image->getTitle()) . '\',' . "\n"; $desc = $image->getDesc(); $desc = str_replace("\r\n", '<br />', $desc); $desc = str_replace("\r", '<br />', $desc); echo 'description: \'' . js_encode($desc) . '\',' . "\n"; if (!getOption('zpbase_nodetailpage')) { echo 'link: \'' . html_encode($image->getLink()) . '\'' . "\n"; } if ($c == $numberofimages - 1) { echo '}' . "\n"; } else { echo '},' . "\n"; } } else { if ($imagenumber > 0 && $imagenumber > $c) { $imagenumber--; } } } echo "\n"; ?> ]; </script> <?php $sspage = true; require_once 'inc/galleria-jscall.php'; }
function getRelatedItems($type = 'news', $album = NULL) { global $_zp_gallery, $_zp_current_album, $_zp_current_image, $_zp_current_zenpage_page, $_zp_current_zenpage_news, $_zp_gallery_page; $tags = getTags(); if (!empty($tags)) { // if there are tags at all $searchstring = ''; $count = ''; foreach ($tags as $tag) { $count++; if ($count == 1) { $bool = ''; } else { $bool = '|'; // connect tags by OR to get a wide range } $searchstring .= $bool . $tag; } $paramstr = urlencode('words') . '=' . $searchstring . '&searchfields=tags'; if (!is_null($album)) { $paramstr = '&albumname=' . urlencode($album); } $search = new SearchEngine(); switch ($type) { case 'albums': $paramstr .= '&inalbums=1'; break; case 'images': $paramstr .= '&inimages=1'; break; case 'news': $paramstr .= '&innews=1'; break; case 'pages': $paramstr .= '&inpages=1'; break; case 'all': $paramstr .= '&inalbums=1&inimages=1&innews=1&inpages=1'; break; } $search->setSearchParams($paramstr); // get the results switch ($type) { case 'albums': $albumresult = $search->getAlbums(0, "date", "desc"); $result = createRelatedItemsResultArray($albumresult, $type); break; case 'images': $imageresult = $search->getImages(0, 0, 'date', 'desc'); $result = createRelatedItemsResultArray($imageresult, $type); break; case 'news': $newsresult = $search->getArticles(0, NULL, true, "date", "desc"); $result = createRelatedItemsResultArray($newsresult, $type); break; case 'pages': $pageresult = $search->getPages(); $result = createRelatedItemsResultArray($pageresult, $type); break; case 'all': $albumresult = $search->getAlbums(0, "date", "desc"); $imageresult = $search->getImages(0, 0, 'date', 'desc'); $newsresult = $search->getArticles(0, NULL, true, "date", "desc"); $pageresult = $search->getPages(); $result1 = createRelatedItemsResultArray($albumresult, 'albums'); $result2 = createRelatedItemsResultArray($imageresult, 'images'); $result3 = createRelatedItemsResultArray($newsresult, 'news'); $result4 = createRelatedItemsResultArray($pageresult, 'pages'); $result = array_merge($result1, $result2, $result3, $result4); $result = sortMultiArray($result, 'weight', true, true, false, false); // sort by search result weight break; } return $result; } return array(); }
/** * emits the html for editing album information * called in edit album and mass edit * @param string $index the index of the entry in mass edit or '0' if single album * @param object $album the album object * @param bool $collapse_tags set true to initially hide tab list * @since 1.1.3 */ function printAlbumEditForm($index, $album, $collapse_tags) { global $sortby, $gallery, $mcr_albumlist, $albumdbfields, $imagedbfields, $_thumb_field_text; $tagsort = getTagOrder(); if ($index == 0) { if (isset($saved)) { $album->setSubalbumSortType('manual'); } $suffix = $prefix = ''; } else { $prefix = "{$index}-"; $suffix = "_{$index}"; echo "<p><em><strong>" . $album->name . "</strong></em></p>"; } ?> <input type="hidden" name="<?php echo $prefix; ?> folder" value="<?php echo $album->name; ?> " /> <input type="hidden" name="tagsort" value="<?php echo html_encode($tagsort); ?> " /> <input type="hidden" name="<?php echo $prefix; ?> password_enabled" id="password_enabled<?php echo $suffix; ?> " value="0" /> <span class="buttons"> <?php $parent = dirname($album->name); if ($parent == '/' || $parent == '.' || empty($parent)) { $parent = ''; } else { $parent = '&album=' . $parent . '&tab=subalbuminfo'; } ?> <a title="<?php echo gettext('Back to the album list'); ?> " href="<?php echo WEBPATH . '/' . ZENFOLDER . '/admin-edit.php?page=edit' . $parent; ?> "> <img src="images/arrow_left_blue_round.png" alt="" /> <strong><?php echo gettext("Back"); ?> </strong> </a> <button type="submit" title="<?php echo gettext("Apply"); ?> "> <img src="images/pass.png" alt="" /> <strong><?php echo gettext("Apply"); ?> </strong> </button> <button type="reset" title="<?php echo gettext("Reset"); ?> " onclick="javascript:$('.deletemsg').hide();" > <img src="images/fail.png" alt="" /> <strong><?php echo gettext("Reset"); ?> </strong> </button> <div class="floatright"> <?php if (!$album->isDynamic()) { ?> <button type="button" title="<?php echo gettext('New subalbum'); ?> " onclick="javascript:newAlbum('<?php echo pathurlencode($album->name); ?> ',true);"> <img src="images/folder.png" alt="" /> <strong><?php echo gettext('New subalbum'); ?> </strong> </button> <?php } ?> <a title="<?php echo gettext('View Album'); ?> " href="<?php echo WEBPATH . "/index.php?album=" . pathurlencode($album->getFolder()); ?> "> <img src="images/view.png" alt="" /> <strong><?php echo gettext('View Album'); ?> </strong> </a> </div> </span> <br clear="all" /><br /> <table> <tr> <td width="70%" valign="top"> <table> <tr> <td valign="top"><?php echo gettext("Owner"); ?> </td> <td> <?php if (zp_loggedin(MANAGE_ALL_ALBUM_RIGHTS)) { ?> <select name="<?php echo $prefix; ?> -owner"> <?php echo admin_album_list($album->getOwner()); ?> </select> <?php } else { echo $album->getOwner(); } ?> </td> </tr> <tr> <td align="left" valign="top" width="150"> <?php echo gettext("Album Title"); ?> : </td> <td> <?php print_language_string_list($album->get('title'), $prefix . "albumtitle"); ?> </td> </tr> <tr> <td align="left" valign="top" > <?php echo gettext("Album Description:"); ?> </td> <td> <?php print_language_string_list($album->get('desc'), $prefix . "albumdesc", true, NULL, 'texteditor'); ?> </td> </tr> <?php if (GALLERY_SECURITY != 'private') { ?> <tr class="password<?php echo $suffix; ?> extrashow" <?php if (GALLERY_SECURITY == 'private') { echo 'style="display:none"'; } ?> > <td align="left" valign="top"> <p> <a href="javascript:toggle_passwords('<?php echo $suffix; ?> ',true);"> <?php echo gettext("Album password:"******"images/lock_open.png" /> <?php } else { $x = ' '; ?> <a onclick="resetPass();" title="<?php echo gettext('clear password'); ?> "><img src="images/lock.png" /></a> <?php } ?> </td> </tr> <tr class="password<?php echo $suffix; ?> extrahide" style="display:none" > <td align="left" valign="top"> <p> <a href="javascript:toggle_passwords('<?php echo $suffix; ?> ',false);"> <?php echo gettext("Album guest user:"******"Album password:"******"repeat:"); ?> </p> <p> <?php echo gettext("Password hint:"); ?> </p> </td> <td> <p> <input type="text" size="<?php echo TEXT_INPUT_SIZE; ?> " id="user_name" name="<?php echo $prefix; ?> albumuser" value="<?php echo $album->getUser(); ?> " /> </p> <p> <input type="password" size="<?php echo TEXT_INPUT_SIZE; ?> " id="pass" name="<?php echo $prefix; ?> albumpass" value="<?php echo $x; ?> " /> <br /> <input type="password" size="<?php echo TEXT_INPUT_SIZE; ?> " id="pass_2" name="<?php echo $prefix; ?> albumpass_2" value="<?php echo $x; ?> " /> </p> <p> <?php print_language_string_list($album->get('password_hint'), $prefix . "albumpass_hint", false, NULL, 'hint'); ?> </p> </td> </tr> <?php } $d = $album->getDateTime(); if ($d == "0000-00-00 00:00:00") { $d = ""; } ?> <tr> <td align="left" valign="top"><?php echo gettext("Date:"); ?> </td> <td width="400"> <script type="text/javascript"> // <!-- <![CDATA[ $(function() { $("#datepicker<?php echo $suffix; ?> ").datepicker({ showOn: 'button', buttonImage: 'images/calendar.png', buttonText: '<?php echo gettext('calendar'); ?> ', buttonImageOnly: true }); }); // ]]> --> </script> <input type="text" id="datepicker<?php echo $suffix; ?> " size="20" name="<?php echo $prefix; ?> albumdate" value="<?php echo $d; ?> " /> </td> </tr> <tr> <td align="left" valign="top"><?php echo gettext("Location:"); ?> </td> <td> <?php print_language_string_list($album->getLocation(), $prefix . "albumlocation"); ?> </td> </tr> <?php $custom = zp_apply_filter('edit_album_custom_data', '', $album, $prefix); if (empty($custom)) { ?> <tr> <td align="left" valign="top"><?php echo gettext("Custom data:"); ?> </td> <td><?php print_language_string_list($album->get('custom_data'), $prefix . "album_custom_data", true, NULL, 'texteditor_albumcustomdata'); ?> </td> </tr> <?php } else { echo $custom; } $sort = $sortby; if (!$album->isDynamic()) { $sort[gettext('Manual')] = 'manual'; } $sort[gettext('Custom')] = 'custom'; /* * not recommended--screws with peoples minds during pagination! $sort[gettext('Random')] = 'random'; */ ?> <tr> <td align="left" valign="top"><?php echo gettext("Sort subalbums by:"); ?> </td> <td> <span class="nowrap"> <select id="albumsortselect<?php echo $prefix; ?> " name="<?php echo $prefix; ?> subalbumsortby" onchange="update_direction(this,'album_direction_div<?php echo $suffix; ?> ','album_custom_div<?php echo $suffix; ?> ')"> <?php if (is_null($album->getParent())) { $globalsort = gettext("*gallery album sort order"); } else { $globalsort = gettext("*parent album subalbum sort order"); } echo "\n<option value =''>{$globalsort}</option>"; $cvt = $type = strtolower($album->get('subalbum_sort_type')); if ($type && !in_array($type, $sort)) { $cv = array('custom'); } else { $cv = array($type); } generateListFromArray($cv, $sort, false, true); ?> </select> <?php if ($type == 'manual' || $type == 'random' || $type == '') { $dsp = 'none'; } else { $dsp = 'inline'; } ?> <label id="album_direction_div<?php echo $suffix; ?> " style="display:<?php echo $dsp; ?> ;white-space:nowrap;"> <?php echo gettext("Descending"); ?> <input type="checkbox" name="<?php echo $prefix; ?> album_sortdirection" value="1" <?php if ($album->getSortDirection('album')) { echo "CHECKED"; } ?> /> </label> </span> <?php $flip = array_flip($sort); if (empty($type) || isset($flip[$type])) { $dsp = 'none'; } else { $dsp = 'block'; } ?> <span id="album_custom_div<?php echo $suffix; ?> " class="customText" style="display:<?php echo $dsp; ?> ;white-space:nowrap;"> <br /> <?php echo gettext('custom fields:'); ?> <input id="customalbumsort<?php echo $suffix; ?> " class="customalbumsort" name="<?php echo $prefix; ?> customalbumsort" type="text" value="<?php echo html_encode($cvt); ?> "></input> </span> </td> </tr> <tr> <td align="left" valign="top"><?php echo gettext("Sort images by:"); ?> </td> <td> <span class="nowrap"> <select id="imagesortselect<?php echo $prefix; ?> " name="<?php echo $prefix; ?> sortby" onchange="update_direction(this,'image_direction_div<?php echo $suffix; ?> ','image_custom_div<?php echo $suffix; ?> ')"> <?php if (is_null($album->getParent())) { $globalsort = gettext("*gallery image sort order"); } else { $globalsort = gettext("*parent album image sort order"); } ?> <option value =""><?php echo $globalsort; ?> </option> <?php $cvt = $type = strtolower($album->get('sort_type')); if ($type && !in_array($type, $sort)) { $cv = array('custom'); } else { $cv = array($type); } generateListFromArray($cv, $sort, false, true); ?> </select> <?php if ($type == 'manual' || $type == 'random' || $type == '') { $dsp = 'none'; } else { $dsp = 'inline'; } ?> <label id="image_direction_div<?php echo $suffix; ?> " style="display:<?php echo $dsp; ?> ;white-space:nowrap;"> <?php echo gettext("Descending"); ?> <input type="checkbox" name="<?php echo $prefix; ?> image_sortdirection" value="1" <?php if ($album->getSortDirection('image')) { echo ' checked="checked"'; } ?> /> </label> </span> <?php $flip = array_flip($sort); if (empty($type) || isset($flip[$type])) { $dsp = 'none'; } else { $dsp = 'block'; } ?> <span id="image_custom_div<?php echo $suffix; ?> " class="customText" style="display:<?php echo $dsp; ?> ;white-space:nowrap;"> <br /> <?php echo gettext('custom fields:'); ?> <input id="customimagesort<?php echo $suffix; ?> " class="customimagesort" name="<?php echo $prefix; ?> customimagesort" type="text" value="<?php echo html_encode($cvt); ?> "></input> </span> </td> </tr> <?php if (is_null($album->getParent())) { ?> <tr> <td align="left" valign="top"><?php echo gettext("Album theme:"); ?> </td> <td> <select id="album_theme" class="album_theme" name="<?php echo $prefix; ?> album_theme" <?php if (!zp_loggedin(THEMES_RIGHTS)) { echo 'disabled="disabled" '; } ?> > <?php $themes = $gallery->getThemes(); $oldtheme = $album->getAlbumTheme(); if (empty($oldtheme)) { $selected = 'selected="selected"'; } else { $selected = ''; } ?> <option value="" style="background-color:LightGray" <?php echo $selected; ?> ><?php echo gettext('*gallery theme'); ?> </option> <?php foreach ($themes as $theme => $themeinfo) { if ($oldtheme == $theme) { $selected = 'selected="selected"'; } else { $selected = ''; } ?> <option value = "<?php echo $theme; ?> " <?php echo $selected; ?> ><?php echo $themeinfo['name']; ?> </option> <?php } ?> </select> </td> </tr> <?php } if (!$album->isDynamic()) { ?> <tr> <td align="left" valign="top" width="150"><?php echo gettext("Album watermarks:"); ?> </td> <td> <?php $current = $album->getWatermark(); ?> <select id="album_watermark" name="<?php echo $prefix; ?> album_watermark"> <option value="<?php echo NO_WATERMARK; ?> " <?php if ($current == NO_WATERMARK) { echo ' selected="selected"'; } ?> style="background-color:LightGray"><?php echo gettext('*no watermark'); ?> </option> <option value="" <?php if (empty($current)) { echo ' selected="selected"'; } ?> style="background-color:LightGray"><?php echo gettext('*default'); ?> </option> <?php $watermarks = getWatermarks(); generateListFromArray(array($current), $watermarks, false, false); ?> </select> <?php echo gettext('Images'); ?> </td> </tr> <tr> <td align="left" valign="top" width="150"></td> <td> <?php $current = $album->getWatermarkThumb(); ?> <select id="album_watermark_thumb" name="<?php echo $prefix; ?> album_watermark_thumb"> <option value="<?php echo NO_WATERMARK; ?> " <?php if ($current == NO_WATERMARK) { echo ' selected="selected"'; } ?> style="background-color:LightGray"><?php echo gettext('*no watermark'); ?> </option> <option value="" <?php if (empty($current)) { echo ' selected="selected"'; } ?> style="background-color:LightGray"><?php echo gettext('*default'); ?> </option> <?php $watermarks = getWatermarks(); generateListFromArray(array($current), $watermarks, false, false); ?> </select> <?php echo gettext('Thumbs'); ?> </td> </tr> <?php } if ($index == 0) { // suppress for mass-edit ?> <tr> <td align="left" valign="top" width="150"><?php echo gettext("Thumbnail:"); ?> </td> <td> <?php $showThumb = $gallery->getThumbSelectImages(); $thumb = $album->get('thumb'); if ($showThumb) { ?> <script type="text/javascript"> // <!-- <![CDATA[ updateThumbPreview(document.getElementById('thumbselect')); // ]]> --> </script> <?php } ?> <select style="width:320px" <?php if ($showThumb) { ?> class="thumbselect" onchange="updateThumbPreview(this)" <?php } ?> name="<?php echo $prefix; ?> thumb"> <option <?php if ($showThumb) { ?> class="thumboption" style="background-color:#B1F7B6"<?php } if ($thumb === '1') { ?> selected="selected"<?php } ?> value="1"><?php echo $_thumb_field_text[getOption('AlbumThumbSelectField')]; ?> </option> <option <?php if ($showThumb) { ?> class="thumboption" style="background-color:#B1F7B6" <?php } ?> <?php if (empty($thumb) && $thumb !== '1') { ?> selected="selected" <?php } ?> value=""><?php echo gettext('randomly selected'); ?> </option> <?php if ($album->isDynamic()) { $params = $album->getSearchParams(); $search = new SearchEngine(true); $search->setSearchParams($params); $images = $search->getImages(0); $thumb = $album->get('thumb'); $imagelist = array(); foreach ($images as $imagerow) { $folder = $imagerow['folder']; $filename = $imagerow['filename']; $imagelist[] = '/' . $folder . '/' . $filename; } if (count($imagelist) == 0) { $subalbums = $search->getAlbums(0); foreach ($subalbums as $folder) { $newalbum = new Album($gallery, $folder); if (!$newalbum->isDynamic()) { $images = $newalbum->getImages(0); foreach ($images as $filename) { $imagelist[] = '/' . $folder . '/' . $filename; } } } } foreach ($imagelist as $imagepath) { $list = explode('/', $imagepath); $filename = $list[count($list) - 1]; unset($list[count($list) - 1]); $folder = implode('/', $list); $albumx = new Album($gallery, $folder); $image = newImage($albumx, $filename); $selected = $imagepath == $thumb; echo "\n<option"; if ($showThumb) { echo " class=\"thumboption\""; echo " style=\"background-image: url(" . html_encode($image->getSizedImage(80)) . "); background-repeat: no-repeat;\""; } echo " value=\"" . $imagepath . "\""; if ($selected) { echo " selected=\"selected\""; } echo ">" . $image->getTitle(); echo " ({$imagepath})"; echo "</option>"; } } else { $images = $album->getImages(); if (count($images) == 0 && $album->getNumAlbums() > 0) { $imagearray = array(); $albumnames = array(); $strip = strlen($album->name) + 1; $subIDs = getAllSubAlbumIDs($album->name); if (!is_null($subIDs)) { foreach ($subIDs as $ID) { $albumnames[$ID['id']] = $ID['folder']; $query = 'SELECT `id` , `albumid` , `filename` , `title` FROM ' . prefix('images') . ' WHERE `albumid` = "' . $ID['id'] . '"'; $imagearray = array_merge($imagearray, query_full_array($query)); } foreach ($imagearray as $imagerow) { $filename = $imagerow['filename']; $folder = $albumnames[$imagerow['albumid']]; $imagepath = substr($folder, $strip) . '/' . $filename; if (substr($imagepath, 0, 1) == '/') { $imagepath = substr($imagepath, 1); } $albumx = new Album($gallery, $folder); $image = newImage($albumx, $filename); if (is_valid_image($filename)) { $selected = $imagepath == $thumb; echo "\n<option"; if ($gallery->getThumbSelectImages()) { echo " class=\"thumboption\""; echo " style=\"background-image: url(" . html_encode($image->getSizedImage(80)) . "); background-repeat: no-repeat;\""; } echo " value=\"" . $imagepath . "\""; if ($selected) { echo " selected=\"selected\""; } echo ">" . $image->getTitle(); echo " ({$imagepath})"; echo "</option>"; } } } } else { foreach ($images as $filename) { $image = newImage($album, $filename); $selected = $filename == $album->get('thumb'); if (is_valid_image($filename)) { echo "\n<option"; if ($gallery->getThumbSelectImages()) { echo " class=\"thumboption\""; echo " style=\"background-image: url(" . html_encode($image->getSizedImage(80)) . "); background-repeat: no-repeat;\""; } echo " value=\"" . $filename . "\""; if ($selected) { echo " selected=\"selected\""; } echo ">" . $image->getTitle(); if ($filename != $image->getTitle()) { echo " ({$filename})"; } echo "</option>"; } } } } ?> </select> </td> </tr> <?php } ?> <tr valign="top"> <td class="topalign-nopadding"><br /><?php echo gettext("Codeblocks:"); ?> </td> <td> <br /> <div class="tabs"> <ul class="tabNavigation"> <li><a href="#first"><?php echo gettext("Codeblock 1"); ?> </a></li> <li><a href="#second"><?php echo gettext("Codeblock 2"); ?> </a></li> <li><a href="#third"><?php echo gettext("Codeblock 3"); ?> </a></li> </ul> <?php $getcodeblock = $album->getCodeblock(); if (!empty($getcodeblock)) { $codeblock = unserialize($getcodeblock); } else { $codeblock[1] = ""; $codeblock[2] = ""; $codeblock[3] = ""; } ?> <div id="first"> <textarea name="<?php echo $prefix; ?> codeblock1" id="codeblock1<?php echo $suffix; ?> " rows="40" cols="60"><?php echo html_encode($codeblock[1]); ?> </textarea> </div> <div id="second"> <textarea name="<?php echo $prefix; ?> codeblock2" id="codeblock2<?php echo $suffix; ?> " rows="40" cols="60"><?php echo html_encode($codeblock[2]); ?> </textarea> </div> <div id="third"> <textarea name="<?php echo $prefix; ?> codeblock3" id="codeblock3<?php echo $suffix; ?> " rows="40" cols="60"><?php echo html_encode($codeblock[3]); ?> </textarea> </div> </div> </td> </tr> </table> </td> <?php $bglevels = array('#fff', '#f8f8f8', '#efefef', '#e8e8e8', '#dfdfdf', '#d8d8d8', '#cfcfcf', '#c8c8c8'); ?> <td valign="top"> <h2 class="h2_bordered_edit"><?php echo gettext("General"); ?> </h2> <div class="box-edit"> <label class="checkboxlabel"> <input type="checkbox" name="<?php echo $prefix; ?> Published" value="1" <?php if ($album->getShow()) { echo ' checked="checked"'; } ?> /> <?php echo gettext("Published"); ?> </label> <label class="checkboxlabel"> <input type="checkbox" name="<?php echo $prefix . 'allowcomments'; ?> " value="1" <?php if ($album->getCommentsAllowed()) { echo ' checked="checked"'; } ?> /> <?php echo gettext("Allow Comments"); ?> </label> <?php $hc = $album->get('hitcounter'); if (empty($hc)) { $hc = '0'; } ?> <label class="checkboxlabel"> <input type="checkbox" name="<?php echo $prefix; ?> reset_hitcounter" /> <?php echo sprintf(gettext("Reset hitcounter (%u hits)"), $hc); ?> </label> <?php $tv = $album->get('total_value'); $tc = $album->get('total_votes'); if ($tc > 0) { $hc = $tv / $tc; ?> <label class="checkboxlabel"> <input type="checkbox" id="reset_rating<?php echo $suffix; ?> " name="<?php echo $prefix; ?> reset_rating" value="1" /> <?php printf(gettext('Reset rating (%u stars)'), $hc); ?> </label> <?php } else { ?> <label class="checkboxlabel"> <input type="checkbox" name="<?php echo $prefix; ?> reset_rating" value="1" disabled="disabled"/> <?php echo gettext('Reset rating (unrated)'); ?> </label> <?php } ?> <br clear="all" /> </div> <!-- **************** Move/Copy/Rename ****************** --> <h2 class="h2_bordered_edit"><?php echo gettext("Utilities"); ?> </h2> <div class="box-edit"> <label class="checkboxlabel"> <input type="radio" id="a-<?php echo $prefix; ?> move" name="a-<?php echo $prefix; ?> MoveCopyRename" value="move" onclick="toggleAlbumMoveCopyRename('<?php echo $prefix; ?> ', 'movecopy');"/> <?php echo gettext("Move"); ?> </label> <label class="checkboxlabel"> <input type="radio" id="a-<?php echo $prefix; ?> copy" name="a-<?php echo $prefix; ?> MoveCopyRename" value="copy" onclick="toggleAlbumMoveCopyRename('<?php echo $prefix; ?> ', 'movecopy');"/> <?php echo gettext("Copy"); ?> </label> <label class="checkboxlabel"> <input type="radio" id="a-<?php echo $prefix; ?> rename" name="a-<?php echo $prefix; ?> MoveCopyRename" value="rename" onclick="toggleAlbumMoveCopyRename('<?php echo $prefix; ?> ', 'rename');"/> <?php echo gettext("Rename Folder"); ?> </label> <label class="checkboxlabel"> <input type="radio" id="Delete-<?php echo $prefix; ?> " name="a-<?php echo $prefix; ?> MoveCopyRename" value="delete" onclick="image_deleteconfirm(this,'<?php echo $prefix; ?> ',deleteAlbum1)" /> <?php echo gettext("Delete album"); ?> </label> <br clear="all" /> <div class="deletemsg" id="deletemsg<?php echo $prefix; ?> " style="padding-top: .5em; padding-left: .5em; color: red; display: none"> <?php echo gettext('Album will be deleted when changes are applied.'); ?> <p class="buttons"><a href="javascript:toggleMoveCopyRename('<?php echo $prefix; ?> ', '');"><img src="images/reset.png" alt="" /><?php echo gettext("Cancel"); ?> </a></p> </div> <div id="a-<?php echo $prefix; ?> movecopydiv" style="padding-top: .5em; padding-left: .5em; display: none;"> <?php echo gettext("to:"); ?> <select id="a-<?php echo $prefix; ?> albumselectmenu" name="a-<?php echo $prefix; ?> albumselect" onchange=""> <?php $exclude = $album->name; if (count(explode('/', $exclude)) > 1 && zp_loggedin(MANAGE_ALL_ALBUM_RIGHTS)) { ?> <option value="" selected="selected">/</option> <?php } foreach ($mcr_albumlist as $fullfolder => $albumtitle) { // don't allow copy in place or to subalbums if ($fullfolder == dirname($exclude) || $fullfolder == $exclude || strpos($fullfolder, $exclude . '/') === 0) { $disabled = ' disabled="disabled"'; } else { $disabled = ''; } // Get rid of the slashes in the subalbum, while also making a subalbum prefix for the menu. $singlefolder = $fullfolder; $saprefix = ''; $salevel = 0; while (strstr($singlefolder, '/') !== false) { $singlefolder = substr(strstr($singlefolder, '/'), 1); $saprefix = " " . $saprefix; $salevel = ($salevel + 1) % 8; } echo '<option value="' . $fullfolder . '"' . ($salevel > 0 ? ' style="background-color: ' . $bglevels[$salevel] . ';"' : '') . "{$disabled}>" . $saprefix . $singlefolder . "</option>\n"; } ?> </select> <br clear="all" /><br /> <p class="buttons"> <a href="javascript:toggleAlbumMoveCopyRename('<?php echo $prefix; ?> ', '');"><img src="images/reset.png" alt="" /><?php echo gettext("Cancel"); ?> </a> </p> </div> <div id="a-<?php echo $prefix; ?> renamediv" style="padding-top: .5em; padding-left: .5em; display: none;"> <?php echo gettext("to:"); ?> <input name="a-<?php echo $prefix; ?> renameto" type="text" value="<?php echo basename($album->name); ?> "/><br /> <br clear="all" /> <p class="buttons"> <a href="javascript:toggleAlbumMoveCopyRename('<?php echo $prefix; ?> ', '');"><img src="images/reset.png" alt="" /><?php echo gettext("Cancel"); ?> </a> </p> </div> <span style="line-height: 0em;"><br clear="all" /></span> <?php echo zp_apply_filter('edit_album_utilities', '', $album, $prefix); ?> <span style="line-height: 0em;"><br clear="all" /></span> </div> <h2 class="h2_bordered_edit"><?php echo gettext("Tags"); ?> </h2> <div class="box-edit-unpadded"> <?php $tagsort = getTagOrder(); tagSelector($album, 'tags_' . $prefix, false, $tagsort); ?> </div> </td> </tr> </table> <?php if ($album->isDynamic()) { ?> <table> <tr> <td align="left" valign="top" width="150"><?php echo gettext("Dynamic album search:"); ?> </td> <td> <table class="noinput"> <tr> <td><?php echo html_encode(urldecode($album->getSearchParams())); ?> </td> </tr> </table> </td> </tr> </table> <?php } ?> <br clear="all" /> <span class="buttons"> <a title="<?php echo gettext('Back to the album list'); ?> " href="<?php echo WEBPATH . '/' . ZENFOLDER . '/admin-edit.php?page=edit' . $parent; ?> "> <img src="images/arrow_left_blue_round.png" alt="" /> <strong><?php echo gettext("Back"); ?> </strong> </a> <button type="submit" title="<?php echo gettext("Apply"); ?> "> <img src="images/pass.png" alt="" /> <strong><?php echo gettext("Apply"); ?> </strong> </button> <button type="reset" title="<?php echo gettext("Reset"); ?> " onclick="javascript:$('.deletemsg').hide();"> <img src="images/fail.png" alt="" /> <strong><?php echo gettext("Reset"); ?> </strong> </button> <div class="floatright"> <?php if (!$album->isDynamic()) { ?> <button type="button" title="<?php echo gettext('New subalbum'); ?> " onclick="javascript:newAlbum('<?php echo pathurlencode($album->name); ?> ',true);"> <img src="images/folder.png" alt="" /> <strong><?php echo gettext('New subalbum'); ?> </strong> </button> <?php } ?> <a title="<?php echo gettext('View Album'); ?> " href="<?php echo WEBPATH . "/index.php?album=" . pathurlencode($album->getFolder()); ?> "> <img src="images/view.png" alt="" /> <strong><?php echo gettext('View Album'); ?> </strong> </a> </div> </span> <br clear="all" /> <?php }
/** * emits the html for editing album information * called in edit album and mass edit *@param string param1 the index of the entry in mass edit or '0' if single album *@param object param2 the album object *@since 1.1.3 */ function printAlbumEditForm($index, $album) { // Note: This is some pretty confusing spaghetti code with all the echo statements. // Please refactor it so the HTML is readable and easily editable. // FYI: It's perfectly acceptable to drop out of php-parsing mode in a function. // See the move/copy/rename block for an example. global $sortby, $gallery, $_zp_loggedin, $mcr_albumlist, $albumdbfields, $imagedbfields; $tagsort = getTagOrder(); if ($index == 0) { if (isset($saved)) { $album->setSubalbumSortType('manual'); } $suffix = $prefix = ''; } else { $prefix = "{$index}-"; $suffix = "_{$index}"; echo "<p><em><strong>" . $album->name . "</strong></em></p>"; } echo "\n<input type=\"hidden\" name=\"" . $prefix . "folder\" value=\"" . $album->name . "\" />"; echo "\n" . '<input type="hidden" name="tagsort" value=' . $tagsort . ' />'; echo "\n<table>"; echo "\n<td width = \"60%\">\n<table>\n<tr>"; echo "\n<tr>"; echo "<td align=\"right\" valign=\"top\" width=\"150\">" . gettext("Album Title") . ": </td>"; echo '<td>'; print_language_string_list($album->get('title'), $prefix . "albumtitle", false); echo "</td></tr>\n"; echo '<tr><td></td>'; $hc = $album->get('hitcounter'); if (empty($hc)) { $hc = '0'; } echo "<td>"; echo sprintf(gettext("Hit counter: %u"), $hc) . " <input type=\"checkbox\" name=\"reset_hitcounter\"> Reset"; $tv = $album->get('total_value'); $tc = $album->get('total_votes'); echo ' '; if ($tc > 0) { $hc = $tv / $tc; printf(gettext('Rating: <strong>%u</strong>'), $hc); echo "<label for=\"" . $prefix . "reset_rating\"><input type=\"checkbox\" id=\"" . $prefix . "reset_rating\" name=\"" . $prefix . "reset_rating\" value=1> " . gettext("Reset") . "</label> "; } else { echo gettext("Rating: Unrated"); } echo "</td>"; echo '</tr>'; echo "\n<tr><td align=\"right\" valign=\"top\">" . gettext("Album Description:") . " </td> <td>"; print_language_string_list($album->get('desc'), $prefix . "albumdesc", true, NULL, 'texteditor'); echo "</td></tr>"; echo "\n<tr><td align=\"right\" value=\"top\">" . gettext("Album guest user:"******"\n<td><input type='text' size='48' name='" . $prefix . "albumuser' value='" . $album->getUser() . "' /></td></tr>"; echo "\n<tr>"; echo "\n<td align=\"right\">" . gettext("Album password:"******" <br/>" . gettext("repeat:") . " </td>"; echo "\n<td>"; $x = $album->getPassword(); if (!empty($x)) { $x = ' '; } echo "\n<input type=\"password\" size=\"48\" name=\"" . $prefix . "albumpass\""; echo "\nvalue=\"" . $x . '" /><br/>'; echo "\n<input type=\"password\" size=\"48\" name=\"" . $prefix . "albumpass_2\""; echo "\nvalue=\"" . $x . '" />'; echo "\n</td>"; echo "\n</tr>"; echo "\n<tr><td align=\"right\" valign=\"top\">" . gettext("Password hint:") . " </td> <td>"; print_language_string_list($album->get('password_hint'), $prefix . "albumpass_hint", false); echo "</td></tr>"; $d = $album->getDateTime(); if ($d == "0000-00-00 00:00:00") { $d = ""; } echo "\n<tr><td align=\"right\" valign=\"top\">" . gettext("Date:") . " </td> <td width = \"400\"><input type=\"text\" size='48' name=\"" . $prefix . "albumdate\" value=\"" . $d . '" /></td></tr>'; echo "\n<tr><td align=\"right\" valign=\"top\">" . gettext("Location:") . " </td> <td>"; print_language_string_list($album->get('place'), $prefix . "albumplace", false); echo "</td></tr>"; echo "\n<tr><td align=\"right\" valign=\"top\">" . gettext("Custom data:") . "</td><td>"; print_language_string_list($album->get('custom_data'), $prefix . "album_custom_data", true); echo "</td></tr>"; $sort = $sortby; if (!$album->isDynamic()) { $sort[gettext('Manual')] = 'manual'; } $sort[gettext('Custom')] = 'custom'; echo "\n<tr>"; echo "\n<td align=\"right\" valign=\"top\">" . gettext("Sort subalbums by:") . " </td>"; echo "\n<td>"; // script to test for what is selected $javaprefix = 'js_' . preg_replace("/[^a-z0-9_]/", "", strtolower($prefix)); ?> <table> <tr> <td> <select id="sortselect" name="<?php echo $prefix; ?> subalbumsortby" onchange="update_direction(this,'<?php echo $javaprefix; ?> album_direction_div','<?php echo $javaprefix; ?> album_custom_div')"> <?php if (is_null($album->getParent())) { $globalsort = gettext("gallery album sort order"); } else { $globalsort = gettext("parent album subalbum sort order"); } echo "\n<option value =''>{$globalsort}</option>"; $cvt = $type = strtolower($album->get('subalbum_sort_type')); generateListFromArray(array($type), $sort, false, true); ?> </select> </td> <td> <?php if ($type == 'manual' || $type == '') { $dsp = 'none'; } else { $dsp = 'block'; } echo "\n<span id=\"" . $javaprefix . "album_direction_div\" style=\"display:" . $dsp . "\">"; echo " " . gettext("Descending") . " <input type=\"checkbox\" name=\"" . $prefix . "album_sortdirection\" value=\"1\""; if ($album->getSortDirection('album')) { echo "CHECKED"; } echo ">"; echo '</span>'; $flip = array_flip($sort); if (empty($type) || isset($flip[$type])) { $dsp = 'none'; } else { $dsp = 'block'; } ?> </td> </tr> <script type="text/javascript"> $(function () { $('#<?php echo $javaprefix; ?> customalbumsort').tagSuggest({ tags: [<?php echo $albumdbfields; ?> ] }); }); </script> <tr> <td colspan="2"> <span id="<?php echo $javaprefix; ?> album_custom_div" class="customText" style="display:<?php echo $dsp; ?> "> <?php echo gettext('custom fields:'); ?> <input id="<?php echo $javaprefix; ?> customalbumsort" name="<?php echo $prefix; ?> customalbumsort" type="text" value="<?php echo $cvt; ?> "></input> </span> </td> </tr> </table> <?php echo "\n</td>"; echo "\n</tr>"; echo "\n<tr>"; echo "\n<td align=\"right\" valign=\"top\">" . gettext("Sort images by:") . " </td>"; echo "\n<td>"; // script to test for what is selected $javaprefix = 'js_' . preg_replace("/[^a-z0-9_]/", "", strtolower($prefix)); ?> <table> <tr> <td> <select id="sortselect" name="<?php echo $prefix; ?> sortby" onchange="update_direction(this,'<?php echo $javaprefix; ?> image_direction_div','<?php echo $javaprefix; ?> image_custom_div')"> <?php if (is_null($album->getParent())) { $globalsort = gettext("gallery default image sort order"); } else { $globalsort = gettext("parent album image sort order"); } echo "\n<option value =''>{$globalsort}</option>"; $cvt = $type = strtolower($album->get('sort_type')); generateListFromArray(array($type), $sort, false, true); ?> </select> </td> <td> <?php if ($type == 'manual' || $type == '') { $dsp = 'none'; } else { $dsp = 'block'; } echo "\n<span id=\"" . $javaprefix . "image_direction_div\" style=\"display:" . $dsp . "\">"; echo " " . gettext("Descending") . " <input type=\"checkbox\" name=\"" . $prefix . "image_sortdirection\" value=\"1\""; if ($album->getSortDirection('image')) { echo "CHECKED"; } echo ">"; echo '</span>'; $flip = array_flip($sort); if (empty($type) || isset($flip[$type])) { $dsp = 'none'; } else { $dsp = 'block'; } ?> </td> </tr> <script type="text/javascript"> $(function () { $('#<?php echo $javaprefix; ?> customimagesort').tagSuggest({ tags: [<?php echo $imagedbfields; ?> ] }); }); </script> <tr> <td colspan="2"> <span id="<?php echo $javaprefix; ?> image_custom_div" class="customText" style="display:<?php echo $dsp; ?> "> <?php echo gettext('custom fields:'); ?> <input id="<?php echo $javaprefix; ?> customimagesort" name="<?php echo $prefix; ?> customimagesort" type="text" value="<?php echo $cvt; ?> "></input> </span> </td> </tr> </table> <?php echo "\n</td>"; echo "\n</tr>"; echo "\n<tr>"; echo "\n<td align=\"right\" valign=\"top\"></td><td><input type=\"checkbox\" name=\"" . $prefix . "allowcomments\" value=\"1\""; if ($album->getCommentsAllowed()) { echo "CHECKED"; } echo "> " . gettext("Allow Comments") . " "; echo "<input type=\"checkbox\" name=\"" . $prefix . "Published\" value=\"1\""; if ($album->getShow()) { echo "CHECKED"; } echo "> " . gettext("Published") . " "; echo "</td>\n</tr>"; if (is_null($album->getParent())) { echo "\n<tr>"; echo "\n<td align=\"right\" valign=\"top\">" . gettext("Album theme:") . " </td> "; echo "\n<td>"; echo "\n<select id=\"album_theme\" class=\"album_theme\" name=\"" . $prefix . "album_theme\" "; if (!($_zp_loggedin & (ADMIN_RIGHTS | THEMES_RIGHTS))) { echo "DISABLED "; } echo ">"; $themes = $gallery->getThemes(); $oldtheme = $album->getAlbumTheme(); if (empty($oldtheme)) { echo "<option value = \"\" selected=\"SELECTED\" />"; } else { echo "<option value = \"\" />"; } echo "</option>"; foreach ($themes as $theme => $themeinfo) { echo "<option value = \"{$theme}\""; if ($oldtheme == $theme) { echo "selected = \"SELECTED\""; } echo "\t/>"; echo $themeinfo['name']; echo "</option>"; } echo "\n</select>"; echo "\n</td>"; echo "\n</tr>"; } echo "\n</table>\n</td>"; echo "\n<td valign=\"top\">"; $bglevels = array('#fff', '#f8f8f8', '#efefef', '#e8e8e8', '#dfdfdf', '#d8d8d8', '#cfcfcf', '#c8c8c8'); /* **************** Move/Copy/Rename ****************** */ ?> <label for="a-<?php echo $prefix; ?> move" style="padding-right: .5em"> <input type="radio" id="a-<?php echo $prefix; ?> move" name="a-<?php echo $prefix; ?> MoveCopyRename" value="move" onclick="toggleAlbumMoveCopyRename('<?php echo $prefix; ?> ', 'movecopy');"/> <?php echo gettext("Move"); ?> </label> <label for="a-<?php echo $prefix; ?> copy" style="padding-right: .5em"> <input type="radio" id="a-<?php echo $prefix; ?> copy" name="a-<?php echo $prefix; ?> MoveCopyRename" value="copy" onclick="toggleAlbumMoveCopyRename('<?php echo $prefix; ?> ', 'movecopy');"/> <?php echo gettext("Copy"); ?> </label> <label for="a-<?php echo $prefix; ?> rename" style="padding-right: .5em"> <input type="radio" id="a-<?php echo $prefix; ?> rename" name="a-<?php echo $prefix; ?> MoveCopyRename" value="rename" onclick="toggleAlbumMoveCopyRename('<?php echo $prefix; ?> ', 'rename');"/> <?php echo gettext("Rename Folder"); ?> </label> <div id="a-<?php echo $prefix; ?> movecopydiv" style="padding-top: .5em; padding-left: .5em; display: none;"> <?php echo gettext("to"); ?> : <select id="a-<?php echo $prefix; ?> albumselectmenu" name="a-<?php echo $prefix; ?> albumselect" onChange=""> <option value="" selected="selected">/</option> <?php foreach ($mcr_albumlist as $fullfolder => $albumtitle) { $singlefolder = $fullfolder; $saprefix = ""; $salevel = 0; $selected = ""; if ($album->name == $fullfolder) { continue; } // Get rid of the slashes in the subalbum, while also making a subalbum prefix for the menu. while (strstr($singlefolder, '/') !== false) { $singlefolder = substr(strstr($singlefolder, '/'), 1); $saprefix = " " . $saprefix; $salevel++; } echo '<option value="' . $fullfolder . '"' . ($salevel > 0 ? ' style="background-color: ' . $bglevels[$salevel] . ';"' : '') . "{$selected}>" . $saprefix . $singlefolder . "</option>\n"; } ?> </select> <p style="text-align: right;"> <a href="javascript:toggleAlbumMoveCopyRename('<?php echo $prefix; ?> ', '');"><?php echo gettext("Cancel"); ?> </a> </p> </div> <div id="a-<?php echo $prefix; ?> renamediv" style="padding-top: .5em; padding-left: .5em; display: none;"> <?php echo gettext("to"); ?> : <input name="a-<?php echo $prefix; ?> renameto" type="text" size="35" value="<?php echo basename($album->name); ?> "/><br /> <p style="text-align: right; padding: .25em 0px;"> <a href="javascript:toggleAlbumMoveCopyRename('<?php echo $prefix; ?> ', '');"><?php echo gettext("Cancel"); ?> </a> </p> </div> <br/><br /> <?php echo gettext("Tags:"); $tagsort = getTagOrder(); tagSelector($album, 'tags_' . $prefix, false, $tagsort); echo "\n</td>\n</tr>"; echo "\n</table>"; echo "\n<table>"; if ($album->isDynamic()) { echo "\n<tr>"; echo "\n<td> </td>"; echo "\n<td align=\"right\" valign=\"top\" width=\"150\">" . gettext("Dynamic album search:") . "</td>"; echo "\n<td>"; echo "\n<table class=\"noinput\">"; echo "\n<tr><td >" . urldecode($album->getSearchParams()) . "</td></tr>"; echo "\n</table>"; echo "\n</td>"; echo "\n</tr>"; } echo "\n<tr>"; echo "\n<td> </td>"; echo "\n<td align=\"right\" valign=\"top\" width=\"150\">" . gettext("Thumbnail:") . " </td> "; echo "\n<td>"; $showThumb = getOption('thumb_select_images'); if ($showThumb) { echo "\n<script type=\"text/javascript\">updateThumbPreview(document.getElementById('thumbselect'));</script>"; } echo "\n<select id=\"\""; if ($showThumb) { echo " class=\"thumbselect\" onChange=\"updateThumbPreview(this)\""; } echo " name=\"" . $prefix . "thumb\">"; $thumb = $album->get('thumb'); echo "\n<option"; if ($showThumb) { echo " class=\"thumboption\" value=\"\" style=\"background-color:#B1F7B6\""; } if ($thumb === '1') { echo " selected=\"selected\""; } echo ' value="1">' . gettext('most recent'); echo '</option>'; echo "\n<option"; if ($showThumb) { echo " class=\"thumboption\" value=\"\" style=\"background-color:#B1F7B6\""; } if (empty($thumb) && $thumb !== '1') { echo " selected=\"selected\""; } echo ' value="">' . gettext('randomly selected'); echo '</option>'; if ($album->isDynamic()) { $params = $album->getSearchParams(); $search = new SearchEngine(); $search->setSearchParams($params); $images = $search->getImages(0); $thumb = $album->get('thumb'); $imagelist = array(); foreach ($images as $imagerow) { $folder = $imagerow['folder']; $filename = $imagerow['filename']; $imagelist[] = '/' . $folder . '/' . $filename; } if (count($imagelist) == 0) { $subalbums = $search->getAlbums(0); foreach ($subalbums as $folder) { $newalbum = new Album($gallery, $folder); if (!$newalbum->isDynamic()) { $images = $newalbum->getImages(0); foreach ($images as $filename) { $imagelist[] = '/' . $folder . '/' . $filename; } } } } foreach ($imagelist as $imagepath) { $list = explode('/', $imagepath); $filename = $list[count($list) - 1]; unset($list[count($list) - 1]); $folder = implode('/', $list); $albumx = new Album($gallery, $folder); $image = newImage($albumx, $filename); $selected = $imagepath == $thumb; echo "\n<option"; if ($showThumb) { echo " class=\"thumboption\""; echo " style=\"background-image: url(" . $image->getThumb() . "); background-repeat: no-repeat;\""; } echo " value=\"" . $imagepath . "\""; if ($selected) { echo " selected=\"selected\""; } echo ">" . $image->getTitle(); echo " ({$imagepath})"; echo "</option>"; } } else { $images = $album->getImages(); if (count($images) == 0 && count($album->getSubalbums()) > 0) { $imagearray = array(); $albumnames = array(); $strip = strlen($album->name) + 1; $subIDs = getAllSubAlbumIDs($album->name); if (!is_null($subIDs)) { foreach ($subIDs as $ID) { $albumnames[$ID['id']] = $ID['folder']; $query = 'SELECT `id` , `albumid` , `filename` , `title` FROM ' . prefix('images') . ' WHERE `albumid` = "' . $ID['id'] . '"'; $imagearray = array_merge($imagearray, query_full_array($query)); } foreach ($imagearray as $imagerow) { $filename = $imagerow['filename']; $folder = $albumnames[$imagerow['albumid']]; $imagepath = substr($folder, $strip) . '/' . $filename; if (substr($imagepath, 0, 1) == '/') { $imagepath = substr($imagepath, 1); } $albumx = new Album($gallery, $folder); $image = newImage($albumx, $filename); if (is_valid_image($filename)) { $selected = $imagepath == $thumb; echo "\n<option"; if (getOption('thumb_select_images')) { echo " class=\"thumboption\""; echo " style=\"background-image: url(" . $image->getThumb() . "); background-repeat: no-repeat;\""; } echo " value=\"" . $imagepath . "\""; if ($selected) { echo " selected=\"selected\""; } echo ">" . $image->getTitle(); echo " ({$imagepath})"; echo "</option>"; } } } } else { foreach ($images as $filename) { $image = newImage($album, $filename); $selected = $filename == $album->get('thumb'); if (is_valid_image($filename)) { echo "\n<option"; if (getOption('thumb_select_images')) { echo " class=\"thumboption\""; echo " style=\"background-image: url(" . $image->getThumb() . "); background-repeat: no-repeat;\""; } echo " value=\"" . $filename . "\""; if ($selected) { echo " selected=\"selected\""; } echo ">" . $image->getTitle(); if ($filename != $image->getTitle()) { echo " ({$filename})"; } echo "</option>"; } } } } echo "\n</select>"; echo "\n</td>"; echo "\n</tr>"; echo "\n</table>"; echo "\n<input type=\"submit\" value=\"" . gettext("save album") . "\" />"; }