/** * Displays the ngglegacy thumbnail gallery. * This method deprecates the use of the nggShowGallery() function. * @param stdClass|C_Displayed_Gallery|C_DataMapper_Model $displayed_gallery */ function index_action($displayed_gallery, $return = FALSE) { // Get the images to be displayed $current_page = (int) $this->param('nggpage', 1); if ($images = $displayed_gallery->get_included_entities()) { // Get the gallery storage component $storage = $this->object->get_registry()->get_utility('I_Gallery_Storage'); // Create parameter list for the view $params = $displayed_gallery->display_settings; $params['storage'] =& $storage; $params['images'] =& $images; $params['displayed_gallery_id'] = $displayed_gallery->id(); $params['current_page'] = $current_page; $params['effect_code'] = $this->object->get_effect_code($displayed_gallery); $params['anchor'] = 'ngg-slideshow-' . $displayed_gallery->id() . '-' . rand(1, getrandmax()) . $current_page; $gallery_width = $displayed_gallery->display_settings['gallery_width']; $gallery_height = $displayed_gallery->display_settings['gallery_height']; $params['aspect_ratio'] = $gallery_width / $gallery_height; $params['placeholder'] = $this->object->get_static_url('photocrati-nextgen_basic_gallery#slideshow/placeholder.gif'); // Are we to generate a thumbnail link? if ($displayed_gallery->display_settings['show_thumbnail_link']) { $params['thumbnail_link'] = $this->object->get_url_for_alternate_display_type($displayed_gallery, NGG_BASIC_THUMBNAILS); } $params = $this->object->prepare_display_parameters($displayed_gallery, $params); $retval = $this->object->render_partial('photocrati-nextgen_basic_gallery#slideshow/index', $params, $return); } else { $retval = $this->object->render_partial('photocrati-nextgen_gallery_display#no_images_found', array(), $return); } return $retval; }
/** * Displays the 'tagcloud' display type * * @param stdClass|C_Displayed_Gallery|C_DataMapper_Model $displayed_gallery */ function index_action($displayed_gallery, $return = FALSE) { $display_settings = $displayed_gallery->display_settings; $application = $this->object->get_registry()->get_utility('I_Router')->get_routed_app(); $tag = $this->param('gallerytag'); // we're looking at a tag, so show images w/that tag as a thumbnail gallery if (!is_home() && !empty($tag)) { return $this->object->get_registry()->get_utility('I_Displayed_Gallery_Renderer')->display_images(array('source' => 'tags', 'container_ids' => array(esc_attr($tag)), 'display_type' => $display_settings['display_type'], 'original_display_type' => $displayed_gallery->display_type, 'original_settings' => $display_settings)); } $defaults = array('exclude' => '', 'format' => 'list', 'include' => $displayed_gallery->get_term_ids_for_tags(), 'largest' => 22, 'link' => 'view', 'number' => $display_settings['number'], 'order' => 'ASC', 'orderby' => 'name', 'smallest' => 8, 'taxonomy' => 'ngg_tag', 'unit' => 'pt'); $args = wp_parse_args('', $defaults); // Always query top tags $tags = get_terms($args['taxonomy'], array_merge($args, array('orderby' => 'count', 'order' => 'DESC'))); foreach ($tags as $key => $tag) { $tags[$key]->link = $this->object->set_param_for($application->get_routed_url(TRUE), 'gallerytag', $tag->slug); $tags[$key]->id = $tag->term_id; } $params = $display_settings; $params['inner_content'] = $displayed_gallery->inner_content; $params['storage'] =& $storage; $params['tagcloud'] = wp_generate_tag_cloud($tags, $args); $params['displayed_gallery_id'] = $displayed_gallery->id(); $params = $this->object->prepare_display_parameters($displayed_gallery, $params); return $this->object->render_partial('photocrati-nextgen_basic_tagcloud#nextgen_basic_tagcloud', $params, $return); }
/** * Initializes a display type with properties * @param FALSE|C_Displayed_Gallery_Mapper $mapper * @param array|stdClass|C_Displayed_Gallery $properties * @param FALSE|string|array $context */ function initialize($mapper = FALSE, $properties = array()) { if (!$mapper) { $mapper = $this->get_registry()->get_utility($this->_mapper_interface); } parent::initialize($mapper, $properties); }
/** * Initializes a display type with properties * @param FALSE|C_Displayed_Gallery_Mapper $mapper * @param array|stdClass|C_Displayed_Gallery $properties * @param FALSE|string|array $context */ function initialize($properties = array(), $mapper = FALSE, $context = FALSE) { if (!$mapper) { $mapper = $this->get_registry()->get_utility($this->_mapper_interface); } parent::initialize($mapper, $properties); $this->select_random_variation(); }
/** * Instantiates a new model * @param array|stdClass $properties * @param C_DataMapper $mapper * @param string $context */ function initialize($properties = FALSE, $mapper = FALSE) { // Get the mapper is not specified if (!$mapper) { $mapper = $this->get_registry()->get_utility($this->_mapper_interface); } parent::initialize($mapper, $properties); }
/** * Creates an instance of a displayed gallery source * @param type $mapper * @param type $properties */ function initialize($properties = array(), $mapper = FALSE, $context = FALSE) { // If no mapper was specified, then get the mapper if (!$mapper) { $mapper = $this->get_registry()->get_utility($this->_mapper_interface); } // Construct the model parent::initialize($mapper, $properties); }
/** * Allows a setting to be retrieved directly, rather than through the * settings property * @param string $property * @return mixed */ function &__get($property) { if (isset($this->object->settings) && isset($this->object->settings[$property])) { $retval =& $this->object->settings[$property]; return $retval; } else { return parent::__get($property); } }
/** * Displays the ngglegacy thumbnail gallery. * This method deprecates the use of the nggShowGallery() function. * @param stdClass|C_Displayed_Gallery|C_DataMapper_Model $displayed_gallery */ function index_action($displayed_gallery, $return = FALSE) { // Get the images to be displayed $current_page = (int) $this->param('page', 1); // TODO: Shouldn't we be using maximum_entity_count instead? $limit = FALSE; if (in_array($displayed_gallery->source, array('random_images', 'recent_images'))) { $limit = $displayed_gallery->display_settings['images_per_page']; } if ($images = $displayed_gallery->get_included_entities($limit)) { // Get the gallery storage component $storage = $this->object->get_registry()->get_utility('I_Gallery_Storage'); // Create parameter list for the view $params = $displayed_gallery->display_settings; $params['storage'] =& $storage; $params['images'] =& $images; $params['displayed_gallery_id'] = $displayed_gallery->id(); $params['current_page'] = $current_page; $params['effect_code'] = $this->object->get_effect_code($displayed_gallery); $params['anchor'] = 'ngg-slideshow-' . $displayed_gallery->id() . '-' . rand(1, getrandmax()) . $current_page; $gallery_width = $displayed_gallery->display_settings['gallery_width']; $gallery_height = $displayed_gallery->display_settings['gallery_height']; $params['aspect_ratio'] = $gallery_width / $gallery_height; $params['flash_path'] = $this->object->get_static_url('photocrati-nextgen_basic_gallery#slideshow/imagerotator.swf'); $params['placeholder'] = $this->object->get_static_url('photocrati-nextgen_basic_gallery#slideshow/placeholder.gif'); // Are we displayed a flash slideshow? if ($displayed_gallery->display_settings['flash_enabled']) { include_once path_join(NGGALLERY_ABSPATH, implode(DIRECTORY_SEPARATOR, array('lib', 'swfobject.php'))); $transient_id = $displayed_gallery->transient_id; $params['mediarss_link'] = $this->get_router()->get_url('/nextgen-mediarss?template=playlist_feed&source=displayed_gallery&transient_id=' . $transient_id, false); } // Are we to generate a thumbnail link? if ($displayed_gallery->display_settings['show_thumbnail_link']) { $params['thumbnail_link'] = $this->object->get_url_for_alternate_display_type($displayed_gallery, NEXTGEN_GALLERY_BASIC_THUMBNAILS); } $params = $this->object->prepare_display_parameters($displayed_gallery, $params); $retval = $this->object->render_partial('photocrati-nextgen_basic_gallery#slideshow/index', $params, $return); } else { $retval = $this->object->render_partial('photocrati-nextgen_gallery_display#no_images_found', array(), $return); } return $retval; }
function initialize($properties = array(), $mapper = FALSE, $context = FALSE) { // If no mapper was specified, then get the mapper if (!$mapper) { $mapper = $this->get_registry()->get_utility($this->_mapper_interface); } // Construct the model parent::initialize($mapper, $properties); if (is_object($properties) && isset($properties->cart)) { $this->_cart = new C_NextGen_Pro_Cart($properties->cart); } elseif (is_array($properties) && isset($properties['cart'])) { $this->_cart = new C_NextGen_Pro_Cart($properties['cart']); } }
/** * Displays the ngglegacy thumbnail gallery. * This method deprecates the use of the nggShowGallery() function. * @param stdClass|C_Displayed_Gallery|C_DataMapper_Model $displayed_gallery */ function index_action($displayed_gallery, $return = FALSE) { $display_settings = $displayed_gallery->display_settings; $gallery_id = $displayed_gallery->id(); $transient_id = $displayed_gallery->transient_id; // If these options are on we must use the transient_id to identify the gallery if ($display_settings['show_piclens_link'] || $display_settings['ajax_pagination']) { $gallery_id = $transient_id; } if (!$display_settings['disable_pagination']) { $current_page = (int) $this->param('page', $gallery_id, 1); } else { $current_page = 1; } $offset = $display_settings['images_per_page'] * ($current_page - 1); $storage = $this->object->get_registry()->get_utility('I_Gallery_Storage'); $total = $displayed_gallery->get_entity_count(); // Get the images to be displayed if ($display_settings['images_per_page'] > 0 && $display_settings['show_all_in_lightbox']) { // the "Add Hidden Images" feature works by loading ALL images and then marking the ones not on this page // as hidden (style="display: none") $images = $displayed_gallery->get_included_entities(); $i = 0; foreach ($images as &$image) { if ($i < $display_settings['images_per_page'] * ($current_page - 1)) { $image->hidden = TRUE; } elseif ($i >= $display_settings['images_per_page'] * $current_page) { $image->hidden = TRUE; } $i++; } } else { // just display the images for this page, as normal $images = $displayed_gallery->get_included_entities($display_settings['images_per_page'], $offset); } if (in_array($displayed_gallery->source, array('random_images', 'recent_images'))) { $display_settings['disable_pagination'] = TRUE; } // Are there images to display? if ($images) { // Create pagination if ($display_settings['images_per_page'] && !$display_settings['disable_pagination']) { $pagination_result = $this->object->create_pagination($current_page, $total, $display_settings['images_per_page'], urldecode($this->object->param('ajax_pagination_referrer'))); $this->object->remove_param('ajax_pagination_referrer'); $pagination_prev = $pagination_result['prev']; $pagination_next = $pagination_result['next']; $pagination = $pagination_result['output']; } else { list($pagination_prev, $pagination_next, $pagination) = array(NULL, NULL, NULL); } $thumbnail_size_name = 'thumbnail'; if ($display_settings['override_thumbnail_settings']) { $dynthumbs = $this->object->get_registry()->get_utility('I_Dynamic_Thumbnails_Manager'); if ($dynthumbs != null) { $dyn_params = array('width' => $display_settings['thumbnail_width'], 'height' => $display_settings['thumbnail_height']); if ($display_settings['thumbnail_quality']) { $dyn_params['quality'] = $display_settings['thumbnail_quality']; } if ($display_settings['thumbnail_crop']) { $dyn_params['crop'] = true; } if ($display_settings['thumbnail_watermark']) { $dyn_params['watermark'] = true; } $thumbnail_size_name = $dynthumbs->get_size_name($dyn_params); } } // Determine what the piclens link would be $piclens_link = ''; if ($display_settings['show_piclens_link']) { $mediarss_link = $this->object->get_router()->get_url('/nextgen-mediarss?source=displayed_gallery&transient_id=' . $gallery_id, FALSE); $piclens_link = "javascript:PicLensLite.start({feedUrl:'{$mediarss_link}'});"; } // Generate a slideshow link $slideshow_link = ''; if ($display_settings['show_slideshow_link']) { // origin_url is necessary for ajax operations. slideshow_link_origin will NOT always exist. $origin_url = $this->object->param('ajax_pagination_referrer'); $slideshow_link = $this->object->get_url_for_alternate_display_type($displayed_gallery, NEXTGEN_GALLERY_BASIC_SLIDESHOW, $origin_url); } // This setting 1) points all images to an imagebrowser display & 2) disables the lightbox effect if ($display_settings['use_imagebrowser_effect']) { // this hook *MUST* be removed later; it should not apply to galleries that may come after this one! $storage->add_post_hook('get_image_url', 'imagebrowser alternate url replacer', 'Hook_NextGen_Basic_Imagebrowser_Alt_URLs', 'get_image_url'); $effect_code = ''; } else { $effect_code = $this->object->get_effect_code($displayed_gallery); } // The render functions require different processing if (!empty($display_settings['template'])) { $this->object->add_mixin('A_NextGen_Basic_Template_Form'); $this->object->add_mixin('Mixin_NextGen_Basic_Templates'); $params = $this->object->prepare_legacy_parameters($images, $displayed_gallery, array('next' => empty($pagination_next) ? FALSE : $pagination_next, 'prev' => empty($pagination_prev) ? FALSE : $pagination_prev, 'pagination' => $pagination, 'piclens_link' => $piclens_link, 'slideshow_link' => $slideshow_link)); $output = $this->object->legacy_render($display_settings['template'], $params, $return, 'gallery'); } else { $params = $display_settings; $params['storage'] =& $storage; $params['images'] =& $images; $params['displayed_gallery_id'] = $gallery_id; $params['transient_id'] = $displayed_gallery->transient_id; $params['current_page'] = $current_page; $params['piclens_link'] = $piclens_link; $params['effect_code'] = $effect_code; $params['pagination'] = $pagination; $params['thumbnail_size_name'] = $thumbnail_size_name; $params['slideshow_link'] = $slideshow_link; $params = $this->object->prepare_display_parameters($displayed_gallery, $params); $output = $this->object->render_view('photocrati-nextgen_basic_gallery#thumbnails/index', $params, $return); } if ($display_settings['use_imagebrowser_effect']) { $storage->del_post_hook('get_image_url', 'imagebrowser alternate url replacer'); } return $output; } else { if ($display_settings['display_no_images_error']) { return $this->object->render_partial("photocrati-nextgen_gallery_display#no_images_found", array(), $return); } } }
/** * Displays the 'singlepic' display type * * @param stdClass|C_Displayed_Gallery|C_DataMapper_Model $displayed_gallery */ public function index_action($displayed_gallery, $return = FALSE) { $storage = C_Gallery_Storage::get_instance(); $dynthumbs = C_Dynamic_Thumbnails_Manager::get_instance(); $display_settings = $displayed_gallery->display_settings; // use this over get_included_entities() so we can display images marked 'excluded' $displayed_gallery->skip_excluding_globally_excluded_images = TRUE; $image = array_shift($displayed_gallery->get_entities(1, FALSE, FALSE, 'included')); if (!$image) { return $this->object->render_partial('photocrati-nextgen_gallery_display#no_images_found', array(), $return); } switch ($display_settings['float']) { case 'left': $display_settings['float'] = 'ngg-left'; break; case 'right': $display_settings['float'] = 'ngg-right'; break; case 'center': $display_settings['float'] = 'ngg-center'; break; default: $display_settings['float'] = ''; break; } $params = array(); if (!empty($display_settings['link'])) { $target = $display_settings['link_target']; $effect_code = ''; } else { $display_settings['link'] = $storage->get_image_url($image, 'full', TRUE); $target = '_self'; $effect_code = $this->object->get_effect_code($displayed_gallery); } $params['target'] = $target; // mode is a legacy parameter if (!is_array($display_settings['mode'])) { $display_settings['mode'] = explode(',', $display_settings['mode']); } if (in_array('web20', $display_settings['mode'])) { $display_settings['display_reflection'] = TRUE; } if (in_array('watermark', $display_settings['mode'])) { $display_settings['display_watermark'] = TRUE; } if (isset($display_settings['w'])) { $display_settings['width'] = $display_settings['w']; } elseif (isset($display_settings['h'])) { unset($display_settings['width']); } if (isset($display_settings['h'])) { $display_settings['height'] = $display_settings['h']; } elseif (isset($display_settings['w'])) { unset($display_settings['height']); } // legacy assumed no width/height meant full size unlike generate_thumbnail: force a full resolution if (!isset($display_settings['width']) && !isset($display_settings['height'])) { $display_settings['width'] = $image->meta_data['width']; } if (isset($display_settings['width'])) { $params['width'] = $display_settings['width']; } if (isset($display_settings['height'])) { $params['height'] = $display_settings['height']; } $params['quality'] = $display_settings['quality']; $params['crop'] = $display_settings['crop']; $params['watermark'] = $display_settings['display_watermark']; $params['reflection'] = $display_settings['display_reflection']; // Fall back to full in case dynamic images aren't available $size = 'full'; if ($dynthumbs != null) { $size = $dynthumbs->get_size_name($params); } $thumbnail_url = $storage->get_image_url($image, $size); if (!empty($display_settings['template']) && $display_settings['template'] != 'default') { $this->object->add_mixin('A_NextGen_Basic_Template_Form'); $this->object->add_mixin('Mixin_NextGen_Basic_Templates'); $params = $this->object->prepare_legacy_parameters(array($image), $displayed_gallery, array('single_image' => TRUE)); // the wrapper is a lazy-loader that calculates variables when requested. We here override those to always // return the same precalculated settings provided $params['image']->container[0]->_cache_overrides['caption'] = $displayed_gallery->inner_content; $params['image']->container[0]->_cache_overrides['classname'] = 'ngg-singlepic ' . $display_settings['float']; $params['image']->container[0]->_cache_overrides['imageURL'] = $display_settings['link']; $params['image']->container[0]->_cache_overrides['thumbnailURL'] = $thumbnail_url; $params['target'] = $target; // if a link is present we temporarily must filter out the effect code if (empty($effect_code)) { add_filter('ngg_get_thumbcode', array(&$this, 'strip_thumbcode'), 10); } $retval = $this->object->legacy_render($display_settings['template'], $params, $return, 'singlepic'); if (empty($effect_code)) { remove_filter('ngg_get_thumbcode', array(&$this, 'strip_thumbcode'), 10); } return $retval; } else { $params = $display_settings; $params['storage'] =& $storage; $params['image'] =& $image; $params['effect_code'] = $effect_code; $params['inner_content'] = $displayed_gallery->inner_content; $params['settings'] = $display_settings; $params['thumbnail_url'] = $thumbnail_url; $params['target'] = $target; $params = $this->object->prepare_display_parameters($displayed_gallery, $params); return $this->object->render_partial('photocrati-nextgen_basic_singlepic#nextgen_basic_singlepic', $params, $return); } }
/** * Displays the 'singlepic' display type * * @param stdClass|C_Displayed_Gallery|C_DataMapper_Model $displayed_gallery */ function index_action($displayed_gallery, $return = FALSE) { $storage = $this->object->get_registry()->get_utility('I_Gallery_Storage'); $dynthumbs = $this->object->get_registry()->get_utility('I_Dynamic_Thumbnails_Manager'); $display_settings = $displayed_gallery->display_settings; $image = array_shift($displayed_gallery->get_included_entities(1)); if (!$image) { return $this->object->render_partial("photocrati-nextgen_gallery_display#no_images_found", array(), $return); } switch ($display_settings['float']) { case 'left': $display_settings['float'] = 'ngg-left'; break; case 'right': $display_settings['float'] = 'ngg-right'; break; case 'center': $display_settings['float'] = 'ngg-center'; break; default: $display_settings['float'] = ''; break; } // validate and/or clean our passed settings $display_settings['link'] = !empty($display_settings['link']) ? $display_settings['link'] : $storage->get_image_url($image); // mode is a legacy parameter if (!is_array($display_settings['mode'])) { $display_settings['mode'] = explode(',', $display_settings['mode']); } if (in_array('web20', $display_settings['mode'])) { $display_settings['display_reflection'] = TRUE; } if (in_array('watermark', $display_settings['mode'])) { $display_settings['display_watermark'] = TRUE; } if (isset($display_settings['w'])) { $display_settings['width'] = $display_settings['w']; } elseif (isset($display_settings['h'])) { unset($display_settings['width']); } if (isset($display_settings['h'])) { $display_settings['height'] = $display_settings['h']; } elseif (isset($display_settings['w'])) { unset($display_settings['height']); } // legacy assumed no width/height meant full size unlike generate_thumbnail: force a full resolution if (!isset($display_settings['width']) && !isset($display_settings['height'])) { $display_settings['width'] = $image->meta_data['width']; } if (isset($display_settings['width'])) { $params['width'] = $display_settings['width']; } if (isset($display_settings['height'])) { $params['height'] = $display_settings['height']; } $params['quality'] = $display_settings['quality']; $params['crop'] = $display_settings['crop']; $params['watermark'] = $display_settings['display_watermark']; $params['reflection'] = $display_settings['display_reflection']; // Fall back to full in case dynamic images aren't available $size = 'full'; if ($dynthumbs != null) { $size = $dynthumbs->get_size_name($params); } $thumbnail_url = $storage->get_image_url($image, $size); if (!empty($display_settings['template'])) { $this->object->add_mixin('A_NextGen_Basic_Template_Form'); $this->object->add_mixin('Mixin_NextGen_Basic_Templates'); $params = $this->object->prepare_legacy_parameters(array($image), $displayed_gallery, array('single_image' => TRUE)); // the wrapper is a lazy-loader that calculates variables when requested. We here override those to always // return the same precalculated settings provided $params['image']->container[0]->_cache_overrides['caption'] = $displayed_gallery->inner_content; $params['image']->container[0]->_cache_overrides['classname'] = 'ngg-singlepic ' . $display_settings['float']; $params['image']->container[0]->_cache_overrides['imageURL'] = $display_settings['link']; $params['image']->container[0]->_cache_overrides['thumbnailURL'] = $thumbnail_url; return $this->object->legacy_render($display_settings['template'], $params, $return, 'singlepic'); } else { $params = $display_settings; $params['storage'] =& $storage; $params['image'] =& $image; $params['effect_code'] = $this->object->get_effect_code($displayed_gallery); $params['inner_content'] = $displayed_gallery->inner_content; $params['settings'] = $display_settings; $params['thumbnail_url'] = $thumbnail_url; $params = $this->object->prepare_display_parameters($displayed_gallery, $params); return $this->object->render_partial('photocrati-nextgen_basic_singlepic#nextgen_basic_singlepic', $params, $return); } }
function define($mapper, $properties, $context = FALSE) { parent::define($mapper, $properties, $context); $this->add_mixin('Mixin_Lightbox_Library_Validation'); $this->implement('I_Lightbox_Library'); }