static function init() { self::$galleria_themes = array(); //initialize galleria themes self::$jquery_data = array(); //initialize jquery config $path = SLICKR_FLICKR_PLUGIN_URL; $options = SlickrFlickrUtils::get_options(); $footer_scripts = SlickrFlickrUtils::scripts_in_footer(); $deps = array('jquery'); switch ($options['lightbox']) { case 'sf-lbox-manual': case 'sf-lbox-auto': wp_enqueue_style('slickr-flickr-lightbox', $path . "/lightbox/lightbox.css", array(), "0.5"); wp_enqueue_script('slickr-flickr-lightbox', $path . "/lightbox/jquery.lightbox.js", array('jquery'), "0.5", $footer_scripts); $deps[] = 'slickr-flickr-lightbox'; case 'thickbox': //preinstalled by wordpress but needs to be activated wp_enqueue_style('thickbox'); wp_enqueue_script('thickbox'); $deps[] = 'thickbox'; break; default: break; //use another lightbox plugin } $gname = 'galleria'; $galleria = array_key_exists('galleria', $options) ? $options['galleria'] : 'galleria-latest'; $gfolder = $path . "/galleria/"; switch ($galleria) { case 'galleria-none': break; case 'galleria-original': case 'galleria-1.0': wp_enqueue_style($gname, $gfolder . 'galleria-1.0.css', array(), '1.0'); wp_enqueue_script($gname, $gfolder . 'galleria-1.0.noconflict.js', array('jquery'), SLICKR_FLICKR_VERSION, $footer_scripts); break; default: $gversion = '1.2.8'; $gscript = $gfolder . 'galleria-' . $gversion . '.min.js'; wp_enqueue_script($gname, $gscript, array('jquery'), $gversion, $footer_scripts); //enqueue loading of core galleria script break; } wp_enqueue_style('slickr-flickr', $path . '/slickr-flickr.css', array(), SLICKR_FLICKR_VERSION); wp_enqueue_script('slickr-flickr', $path . '/slickr-flickr.js', $deps, SLICKR_FLICKR_VERSION, $footer_scripts); add_filter($footer_scripts ? 'print_footer_scripts' : 'print_head_scripts', array('slickr_flickr_public', 'start_show'), 100); //start slickr flickr last if ($footer_scripts) { add_action('wp_footer', array('slickr_flickr_public', 'dequeue_redundant_scripts'), 1); } }
function show($attr) { $params = shortcode_atts(SlickrFlickrUtils::get_options(), $attr); //apply plugin defaults foreach ($params as $k => $v) { if ($k != 'id' && $k != 'options' && $k != 'galleria_options' && $k != 'attribution') { $params[$k] = strtolower($v); } } //set all params as lower case if (empty($params['id'])) { return "<p>Please specify a Flickr ID for this " . $params['type'] . "</p>"; } if (!empty($params['tagmode']) && empty($params['tag']) && $params['search'] == "photos") { return "<p>Please set up a Flickr tag for this " . $params['type'] . "</p>"; } if (empty($params['api_key']) && $params['use_key'] == "y") { return "<p>Please add your Flickr API Key in Slickr Flickr Admin settings to fetch more than 20 photos.</p>"; } if (empty($params['use_key'])) { $this->force_api_key($params); } //set api_key if required by other parameters $rand_id = rand(1, 1000); $unique_id = $this->get_unique_id($params, $rand_id); $divclear = '<div style="clear:both"></div>'; $attribution = empty($params['attribution']) ? "" : '<p class="slickr-flickr-attribution align' . $params['align'] . '">' . $params['attribution'] . '</p>'; $bottom = empty($params['bottom']) ? "" : ' style="margin-bottom:' . $params['bottom'] . 'px;"'; $lightboxrel = ""; $thumb_scale = ""; switch ($params['type']) { case "slideshow": if (empty($params['ptags'])) { $params['ptags'] = "on"; } //paragraph tags arounds titles $divstart = $attribution . '<div id="' . $unique_id . '" class="slickr-flickr-slideshow ' . $params['orientation'] . ' ' . $params['size'] . ($params['descriptions'] == "on" ? " descriptions" : "") . ($params['captions'] == "off" ? " nocaptions " : " ") . $params['align'] . '"' . $bottom . '>'; $divend = '</div>' . $this->set_options($unique_id, $this->slideshow_options($params)) . $divclear; $element = 'div'; $element_style = ''; break; case "galleria": if (empty($params['thumbnail_size'])) { $params['thumbnail_size'] = 'square'; } //set default thumbnail size as Square if ($params['galleria'] == 'galleria-original') { $params['galleria_theme'] = 'original'; //set a default value if (empty($bottom)) { $style = ' style="visibility:hidden;"'; } else { $style = substr($bottom, 0, strlen($bottom - 2)) . 'visibility:hidden;"'; } $startstop = $params['pause'] == 'off' ? '' : '| <a href="#" class="startSlide">start</a> | <a href="#" class="stopSlide">stop</a>'; $nav = <<<NAV <p class="nav {$params['size']}"><a href="#" class="prevSlide">« previous</a> {$startstop} | <a href="#" class="nextSlide">next »</a></p> NAV; } else { $style = $bottom; $nav = ''; } switch ($params['nav']) { case "above": $nav_below = ''; $nav_above = $nav; break; case "below": $nav_below = $nav; $nav_above = ''; break; case "none": $nav_below = ''; $nav_above = ''; break; default: $nav_below = $nav; $nav_above = $nav; break; } $divstart = '<div id="' . $unique_id . '" class="slickr-flickr-galleria ' . $params['orientation'] . ' ' . $params['size'] . ' ' . $params['galleria_theme'] . '"' . $style . '>' . $attribution . $nav_above . '<ul>'; $divend = '</ul>' . $divclear . $attribution . $nav_below . '</div>' . $this->set_options($unique_id, $this->galleria_options($params)); $element = 'li'; $element_style = ''; slickr_flickr_public::add_galleria_theme($params['galleria_theme']); //add count of gallerias on page break; default: $this->set_thumbnail_params($params); $this->set_lightboxrel($params, $rand_id); $divstart = '<div id="' . $unique_id . '" class="slickr-flickr-gallery"' . $bottom . '>' . $attribution . '<ul' . $params['gallery_class'] . $params['gallery_style'] . '>'; $divend = '</ul></div>' . $this->set_options($unique_id, $this->lightbox_options($params)) . $divclear; $element = 'li'; $element_style = $params['thumbnail_style']; } $photos = $this->fetch_feed($params); if (!is_array($photos)) { return $photos; } //return error message if an array of photos is not returned $start = $this->get_start($params, count($photos)); $s = ""; $i = 0; if (empty($element)) { foreach ($photos as $photo) { $s .= $this->get_image($photo, $params); } } else { foreach ($photos as $photo) { $i++; $s .= '<' . $element . $element_style . ($start == $i ? ' class="active"' : '') . '>' . $this->get_image($photo, $params) . '</' . $element . '>'; } } return $divstart . $s . $divend; }