/** * LazyestCommentor::redirect_comment() * * @return */ function redirect_comment() { if (is_admin()) { return; } global $lg_gallery, $lg_comment; if (isset($lg_comment)) { $lg_gallery->comment = $lg_comment; } else { if (isset($_GET['lg_comment'])) { $lg_gallery->comment = $_GET['lg_comment']; } } if ('' != $lg_gallery->comment) { $comment_ID = $lg_gallery->comment; $filevar = urldecode($this->get_file_by_comment_id($comment_ID)); $redirect = $lg_gallery->address; if ($lg_gallery->is_folder($filevar)) { $folder = new LazyestFrontendFolder($filevar); if ($folder->valid()) { $redirect = $folder->uri(); } unset($folder); } if ($lg_gallery->is_image($filevar)) { $folder = new LazyestFrontendFolder(dirname($filevar)); if ($folder->valid()) { $slide = $folder->single_image(basename($filevar), 'slides'); $redirect = $slide->uri(); unset($slide); } } wp_redirect($redirect); exit; } }
/** * LazyestFrontend::slideshow_code() * Returns html code for a show of slides from a folder * If no folder is given, a random folder will be selected * * @example [lg_slideshow folder="afolder" display="slide"] * @param mixed $atts * @return string */ function slideshow_code($atts) { extract(shortcode_atts(array('folder' => '', 'display' => 'slide'), $atts)); $where = lg_nice_link($folder); $goodfolder = false; if ('' == $folder) { $where = __('the Gallery', 'lazyest-gallery'); $folders = $this->folders('subfolders', 'visible'); while (!$goodfolder && 0 < count($folders)) { $key = array_rand($folders); $sfolder = $folders[$key]; if (0 != $sfolder->count()) { $goodfolder = true; $folder = $sfolder->curdir; } unset($folders[$key]); } } $slideshow_code = esc_html(sprintf(__('Lazyest Gallery cannot find images in %s', 'lazyest-gallery'), $where)); if (!$goodfolder) { $folder = trailingslashit(ltrim(utf8_decode($folder), '/')); $folder = html_entity_decode($folder); } $sfolder = new LazyestFrontendFolder($folder); if ($sfolder->valid()) { ob_start(); echo "<div class='lg_gallery'>\n"; $sfolder->slideshow($display); echo "</div>\n"; $slideshow_code = ob_get_contents(); ob_end_clean(); } return $slideshow_code; }
/** * LazyestGallery::random_image() * Gets a random image from a folder * * @param string $folder * @param string $sub if 'subfolders', subfolders are included in the selection * @param integer $count * @return array */ function random_image($folder = '', $sub = 'subfolders', $count = 1, $what = 'thumbs') { if ('' == $folder) { $sub = 'subfolders'; } $images_list = array(); $counted = 0; if ('' == $folder) { $folderlist = $this->folders('subfolders', 'visible'); while ($counted < $count && 0 < count($folderlist)) { $folder_key = array_rand($folderlist); $folder = $folderlist[$folder_key]; $random_images = $folder->random_image('subfolders', $count - $counted, $what); if (false != $random_images) { // no images have been read $counted += count($random_images); if (0 < count($random_images)) { foreach ($random_images as $image) { $images_list[] = $image; if ($count == count($images_list)) { break; } } } } unset($folderlist[$folder_key]); } } else { $ifolder = new LazyestFrontendFolder($folder); if ($ifolder->valid()) { $images_list = $ifolder->random_image($sub, $count, $what); } } return $images_list; }