コード例 #1
0
 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);
     }
 }
コード例 #2
0
    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">&laquo; previous</a> {$startstop} | <a href="#" class="nextSlide">next &raquo;</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;
    }