function _render_album($displayed_gallery, $original_entities, $return)
 {
     // The HTML id of the gallery
     $id = 'displayed_gallery_' . $displayed_gallery->id();
     // Generate the named thumbnail size
     $thumbnail_size_name = 'thumb';
     if (isset($displayed_gallery->display_settings['override_thumbnail_settings']) && $displayed_gallery->display_settings['override_thumbnail_settings']) {
         $dynthumbs = C_Dynamic_Thumbnails_Manager::get_instance();
         $dyn_params = array('width' => $displayed_gallery->display_settings['thumbnail_width'], 'height' => $displayed_gallery->display_settings['thumbnail_height']);
         if ($displayed_gallery->display_settings['thumbnail_quality']) {
             $dyn_params['quality'] = $displayed_gallery->display_settings['thumbnail_quality'];
         }
         if ($displayed_gallery->display_settings['thumbnail_crop']) {
             $dyn_params['crop'] = true;
         }
         if ($displayed_gallery->display_settings['thumbnail_watermark']) {
             $dyn_params['watermark'] = true;
         }
         $thumbnail_size_name = $dynthumbs->get_size_name($dyn_params);
     }
     // Get entities
     $entities = $this->object->_prepare_entities($displayed_gallery, $thumbnail_size_name);
     // Render view/template
     $params = array('entities' => $entities, 'effect_code' => $this->object->get_effect_code($displayed_gallery), 'id' => $id, 'thumbnail_size_name' => $thumbnail_size_name, 'css_class' => $this->object->_get_css_class(), 'hovercaptions' => !empty($displayed_gallery->display_settings['captions_enabled']) && $displayed_gallery->display_settings['captions_enabled'] ? TRUE : FALSE);
     $params = $this->object->prepare_display_parameters($displayed_gallery, $params);
     if (!is_null($original_entities)) {
         $displayed_gallery->display_settings['original_album_id'] = 'a' . $displayed_gallery->container_ids[0];
         $displayed_gallery->display_settings['original_album_entities'] = $original_entities;
     }
     return $this->render_view('photocrati-nextgen_pro_albums#index', $params, $return);
 }
 function index_action($displayed_gallery, $return = FALSE)
 {
     // The HTML id of the gallery
     $id = 'displayed_gallery_' . $displayed_gallery->id();
     $image_size_name = 'full';
     $display_settings = $displayed_gallery->display_settings;
     if ($display_settings['override_image_settings']) {
         $dynthumbs = C_Dynamic_Thumbnails_Manager::get_instance();
         $dyn_params = array();
         if ($display_settings['image_quality']) {
             $dyn_params['quality'] = $display_settings['image_quality'];
         }
         if ($display_settings['image_crop']) {
             $dyn_params['crop'] = true;
         }
         if ($display_settings['image_watermark']) {
             $dyn_params['watermark'] = true;
         }
         $image_size_name = $dynthumbs->get_size_name($dyn_params);
     }
     $params = array('images' => $displayed_gallery->get_included_entities(), 'storage' => C_Gallery_Storage::get_instance(), 'effect_code' => $this->object->get_effect_code($displayed_gallery), 'id' => $id, 'image_size_name' => $image_size_name, 'image_display_size' => $displayed_gallery->display_settings['image_display_size'], 'border_size' => $displayed_gallery->display_settings['border_size']);
     $params = $this->object->prepare_display_parameters($displayed_gallery, $params);
     // Render view/template
     return $this->render_view('photocrati-nextgen_pro_blog_gallery#nextgen_pro_blog', $params, $return);
 }
 function index_action($displayed_gallery, $return = FALSE)
 {
     $id = $displayed_gallery->id();
     $display_settings = $displayed_gallery->display_settings;
     $current_page = (int) $this->param('nggpage', $displayed_gallery->id(), 1);
     if (!isset($display_settings['images_per_page'])) {
         $display_settings['images_per_page'] = C_NextGen_Settings::get_instance()->images_per_page;
     }
     $offset = $display_settings['images_per_page'] * ($current_page - 1);
     $total = $displayed_gallery->get_entity_count();
     $images = $displayed_gallery->get_included_entities($display_settings['images_per_page'], $offset);
     if (in_array($displayed_gallery->source, array('random', 'recent'))) {
         $display_settings['disable_pagination'] = TRUE;
     }
     if ($images) {
         if ($display_settings['images_per_page'] && !$display_settings['disable_pagination']) {
             $pagination_result = $this->object->create_pagination($current_page, $total, $display_settings['images_per_page']);
         }
     }
     $pagination = !empty($pagination_result['output']) ? $pagination_result['output'] : NULL;
     // Get named size of thumbnail images
     $thumbnail_size_name = 'thumbnail';
     if ($display_settings['override_thumbnail_settings']) {
         $dynthumbs = C_Dynamic_Thumbnails_Manager::get_instance();
         $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);
     }
     // Calculate image statistics
     $stats = $this->object->get_entity_statistics($images, $thumbnail_size_name, TRUE);
     $images = $stats['entities'];
     $display_settings['longest'] = $stats['longest'];
     $display_settings['widest'] = $stats['widest'];
     // Enqueue dynamic stylesheet
     $dyn_styles = C_Dynamic_Stylesheet_Controller::get_instance('all');
     $dyn_styles->enqueue('nextgen_pro_film', $this->array_merge_assoc($display_settings, array('id' => $id)));
     $params = array('images' => $images, 'storage' => C_Gallery_Storage::get_instance(), 'thumbnail_size_name' => $thumbnail_size_name, 'effect_code' => $this->object->get_effect_code($displayed_gallery), 'id' => $id, 'pagination' => $pagination);
     $params = $this->object->prepare_display_parameters($displayed_gallery, $params);
     // Render view/template
     return preg_replace('~>\\s*\\n\\s*<~', '><', $this->render_view('photocrati-nextgen_pro_film#nextgen_pro_film', $params, $return));
 }
 function index_action($displayed_gallery, $return = FALSE)
 {
     $storage = C_Gallery_Storage::get_instance();
     $list = $displayed_gallery->get_included_entities();
     $thumbnail_size_name = 'thumbnail';
     $ds = $displayed_gallery->display_settings;
     if (!empty($ds['override_thumbnail_settings']) && $ds['override_thumbnail_settings']) {
         $dynthumbs = C_Dynamic_Thumbnails_Manager::get_instance();
         $dyn_params = array('width' => $ds['thumbnail_width'], 'height' => $ds['thumbnail_height'], 'crop' => true);
         $thumbnail_size_name = $dynthumbs->get_size_name($dyn_params);
     }
     $params = array('images' => $list, 'displayed_gallery_id' => $displayed_gallery->id(), 'storage' => $storage, 'custom_css_rules' => $this->object->get_custom_css_rules($displayed_gallery), 'thumbnail_size_name' => $thumbnail_size_name);
     $params = $this->object->prepare_display_parameters($displayed_gallery, $params);
     return $this->object->render_view('photocrati-galleria#galleria', $params, $return);
 }
 /**
  * Renders the front-end display for the masonry display type
  *
  * @param C_Displayed_Gallery $displayed_gallery
  * @param bool $return
  * @return string
  */
 function index_action($displayed_gallery, $return = FALSE)
 {
     $images = $displayed_gallery->get_included_entities();
     if (!$images) {
         return $this->object->render_partial("photocrati-nextgen_gallery_display#no_images_found", array(), $return);
     } else {
         $params = $displayed_gallery->display_settings;
         $params['images'] = $images;
         $params['storage'] = C_Gallery_Storage::get_instance();
         $params['effect_code'] = $this->object->get_effect_code($displayed_gallery);
         $params['displayed_gallery_id'] = $displayed_gallery->id();
         $params['thumbnail_size_name'] = C_Dynamic_Thumbnails_Manager::get_instance()->get_size_name(array('width' => $params['size'], 'crop' => FALSE));
         $params = $this->object->prepare_display_parameters($displayed_gallery, $params);
         return $this->object->render_view('photocrati-nextgen_pro_masonry#index', $params, $return);
     }
 }
 function index_action($displayed_gallery, $return = FALSE)
 {
     // The HTML id of the gallery
     $id = 'displayed_gallery_' . $displayed_gallery->id();
     // Get named size of thumbnail images
     $thumbnail_size_name = 'thumbnail';
     $display_settings = $displayed_gallery->display_settings;
     if ($display_settings['override_thumbnail_settings']) {
         $dynthumbs = C_Dynamic_Thumbnails_Manager::get_instance();
         $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);
     }
     $current_page = (int) $this->param('nggpage', $displayed_gallery->id(), 1);
     $offset = $display_settings['images_per_page'] * ($current_page - 1);
     $total = $displayed_gallery->get_entity_count();
     $images = $displayed_gallery->get_included_entities($display_settings['images_per_page'], $offset);
     if (in_array($displayed_gallery->source, array('random', 'recent'))) {
         $display_settings['disable_pagination'] = TRUE;
     }
     if ($images) {
         if ($display_settings['images_per_page'] && !$display_settings['disable_pagination']) {
             $pagination_result = $this->object->create_pagination($current_page, $total, $display_settings['images_per_page']);
         }
     }
     $pagination = !empty($pagination_result['output']) ? $pagination_result['output'] : NULL;
     $params = array('images' => $images, 'storage' => C_Gallery_Storage::get_instance(), 'thumbnail_size_name' => $thumbnail_size_name, 'effect_code' => $this->object->get_effect_code($displayed_gallery), 'id' => $id, 'pagination' => $pagination);
     $params = $this->object->prepare_display_parameters($displayed_gallery, $params);
     // Render view/template. We remove whitespace from between HTML elements lest the browser think we want
     // a space character (&nbsp;) between each image-causing columns to appear between images
     return preg_replace('~>\\s*\\n\\s*<~', '><', $this->render_view('photocrati-nextgen_pro_thumbnail_grid#nextgen_pro_thumbnail_grid', $params, $return));
 }
 /**
  * Renders a picture element for a particular image at at named size.
  *
  * A source is added for the named size, as well as a retina version
  * @param $image
  * @param $params_or_named_size
  * @param bool $echo
  *
  * @return string
  */
 static function render_picture_element($image, $params_or_named_size, $attrs = array(), $echo = TRUE)
 {
     $retval = '';
     if (!is_object($image)) {
         $image = C_Image_Mapper::get_instance()->find($image);
     }
     if ($image) {
         $dynthumbs = C_Dynamic_Thumbnails_Manager::get_instance();
         $storage = C_Gallery_Storage::get_instance();
         $sources = array();
         $srcsets = array();
         // Get the named size to display
         $named_size = $params_or_named_size;
         if (is_array($params_or_named_size)) {
             $named_size = $dynthumbs->get_size_name($params_or_named_size);
         }
         $image_url = $storage->get_image_url($image, $named_size, TRUE);
         // Get retina named size to display
         $retina_named_size = self::get_retina_named_size($image, $named_size);
         $retina_url = $storage->get_image_url($image, $retina_named_size);
         // Set attributes
         $srcsets[] = isset($_REQUEST['force_retina']) ? $retina_url : $image_url;
         $dimensions = $storage->get_image_dimensions($image, $named_size);
         if (!array_key_exists('title', $attrs)) {
             $attrs['title'] = $image->alttext;
         }
         if (!array_key_exists('alt', $attrs)) {
             $attrs['alt'] = $image->alttext;
         }
         if (!array_key_exists('style', $attrs)) {
             $attrs['style'] = 'max-width:none';
         }
         if ($dimensions && isset($dimensions['width']) && isset($dimensions['height'])) {
             if (!array_key_exists('width', $attrs)) {
                 $attrs['width'] = $dimensions['width'];
             }
             if (!array_key_exists('height', $attrs)) {
                 $attrs['height'] = $dimensions['height'];
             }
         }
         // Add sources
         if ($retina_named_size != $named_size) {
             $sources[] = self::_render_picture_source($image, $named_size, $retina_named_size);
             $srcsets[] = $retina_url . ' 2x';
         } else {
             $sources[] = self::_render_picture_source($image, $named_size);
         }
         // Create attribute strings
         $attrs['srcset'] = implode(", ", $srcsets);
         $attr_strs = array();
         foreach ($attrs as $key => $value) {
             if (!is_null($value)) {
                 $attr_strs[] = esc_attr($key) . '="' . esc_attr($value) . '"';
             }
         }
         $attr_strs = implode(' ', $attr_strs);
         // Generate picture element
         $retval = implode("\n", array('<picture>', "\t", implode("\n\t", $sources), "<img {$attr_strs}/>", '</picture>'));
         if ($echo) {
             echo $retval;
         }
     }
     return $retval;
 }
 public function prepare_legacy_album_params($displayed_gallery, $params)
 {
     $image_mapper = C_Image_Mapper::get_instance();
     $storage = C_Gallery_Storage::get_instance();
     $image_gen = C_Dynamic_Thumbnails_Manager::get_instance();
     if (empty($displayed_gallery->display_settings['override_thumbnail_settings'])) {
         // legacy templates expect these dimensions
         $image_gen_params = array('width' => 91, 'height' => 68, 'crop' => TRUE);
     } else {
         // use settings requested by user
         $image_gen_params = array('width' => $displayed_gallery->display_settings['thumbnail_width'], 'height' => $displayed_gallery->display_settings['thumbnail_height'], 'quality' => isset($displayed_gallery->display_settings['thumbnail_quality']) ? $displayed_gallery->display_settings['thumbnail_quality'] : 100, 'crop' => isset($displayed_gallery->display_settings['thumbnail_crop']) ? $displayed_gallery->display_settings['thumbnail_crop'] : NULL, 'watermark' => isset($displayed_gallery->display_settings['thumbnail_watermark']) ? $displayed_gallery->display_settings['thumbnail_watermark'] : NULL);
     }
     // so user templates can know how big the images are expected to be
     $params['image_gen_params'] = $image_gen_params;
     // Transform entities
     $params['galleries'] = $params['entities'];
     unset($params['entities']);
     foreach ($params['galleries'] as &$gallery) {
         // Get the preview image url
         $gallery->previewurl = '';
         if ($gallery->previewpic && $gallery->previewpic > 0) {
             if ($image = $image_mapper->find(intval($gallery->previewpic))) {
                 $gallery->previewurl = $storage->get_image_url($image, $image_gen->get_size_name($image_gen_params), TRUE);
                 $gallery->previewname = $gallery->name;
             }
         }
         // Get the page link. If the entity is an album, then the url will
         // look like /nggallery/album--slug.
         $id_field = $gallery->id_field;
         if ($gallery->is_album) {
             if ($gallery->pageid > 0) {
                 $gallery->pagelink = @get_page_link($gallery->pageid);
             } else {
                 $gallery->pagelink = $this->object->set_param_for($this->object->get_routed_url(TRUE), 'album', $gallery->slug);
             }
         } else {
             if ($gallery->pageid > 0) {
                 $gallery->pagelink = @get_page_link($gallery->pageid);
             }
             if (empty($gallery->pagelink)) {
                 $pagelink = $this->object->get_routed_url(TRUE);
                 $parent_album = $this->object->get_parent_album_for($gallery->{$id_field});
                 if ($parent_album) {
                     $pagelink = $this->object->set_param_for($pagelink, 'album', $parent_album->slug);
                 } else {
                     if ($displayed_gallery->container_ids === array('0') || $displayed_gallery->container_ids === array('')) {
                         $pagelink = $this->object->set_param_for($pagelink, 'album', 'all');
                     } else {
                         $pagelink = $this->object->set_param_for($pagelink, 'album', 'album');
                     }
                 }
                 $gallery->pagelink = $this->object->set_param_for($pagelink, 'gallery', $gallery->slug);
             }
         }
         // Let plugins modify the gallery
         $gallery = apply_filters('ngg_album_galleryobject', $gallery);
     }
     $params['album'] = reset($this->albums);
     $params['albums'] = $this->albums;
     // Clean up
     unset($storage);
     unset($image_mapper);
     unset($image_gen);
     unset($image_gen_params);
     return $params;
 }
 /**
  * Displays a preview image for the displayed gallery
  */
 public function preview_action()
 {
     $found_preview_pic = FALSE;
     $dyn_thumbs = C_Dynamic_Thumbnails_Manager::get_instance();
     $storage = C_Gallery_Storage::get_instance();
     $image_mapper = C_Image_Mapper::get_instance();
     // Get the first entity from the displayed gallery. We will use this
     // for a preview pic
     $entity = array_pop($this->object->_displayed_gallery->get_included_entities(1));
     $image = FALSE;
     if ($entity) {
         // This is an album or gallery
         if (isset($entity->previewpic)) {
             $image = (int) $entity->previewpic;
             if ($image = $image_mapper->find($image)) {
                 $found_preview_pic = TRUE;
             }
         } else {
             if (isset($entity->galleryid)) {
                 $image = $entity;
                 $found_preview_pic = TRUE;
             }
         }
     }
     // Were we able to find a preview pic? If so, then render it
     $image_size = $dyn_thumbs->get_size_name(array('width' => 200, 'height' => 200, 'quality' => 90, 'type' => 'jpg'));
     $found_preview_pic = $storage->render_image($image, $image_size, TRUE);
     // Render invalid image if no preview pic is found
     if (!$found_preview_pic) {
         $filename = $this->object->get_static_abspath('photocrati-attach_to_post#invalid_image.png');
         $this->set_content_type('image/png');
         readfile($filename);
         $this->render();
     }
 }
 /**
  * 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();
     if (!$display_settings['disable_pagination']) {
         $current_page = (int) $this->param('nggpage', $gallery_id, 1);
     } else {
         $current_page = 1;
     }
     $offset = $display_settings['images_per_page'] * ($current_page - 1);
     $storage = C_Gallery_Storage::get_instance();
     $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 = C_Dynamic_Thumbnails_Manager::get_instance();
             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);
             }
         }
         // 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, NGG_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 = '';
             $effect_code = "class='use_imagebrowser_effect'";
         } else {
             $effect_code = $this->object->get_effect_code($displayed_gallery);
         }
         // The render functions require different processing
         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($images, $displayed_gallery, array('next' => empty($pagination_next) ? FALSE : $pagination_next, 'prev' => empty($pagination_prev) ? FALSE : $pagination_prev, 'pagination' => $pagination, 'slideshow_link' => $slideshow_link, 'effect_code' => $effect_code));
             $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['current_page'] = $current_page;
             $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);
         }
         return $output;
     } else {
         if ($display_settings['display_no_images_error']) {
             return $this->object->render_partial("photocrati-nextgen_gallery_display#no_images_found", array(), $return);
         }
     }
 }
 public function index_action()
 {
     $dynthumbs = C_Dynamic_Thumbnails_Manager::get_instance();
     $uri = $_SERVER['REQUEST_URI'];
     $params = $dynthumbs->get_params_from_uri($uri);
     $request_params = $params;
     if ($params != null) {
         $storage = C_Gallery_Storage::get_instance();
         // Note, URLs should always include quality setting when returned by Gallery Storage component
         // this sanity check is mostly for manually testing URLs
         if (!isset($params['quality'])) {
         }
         $image_id = $params['image'];
         $size = $dynthumbs->get_size_name($params);
         $abspath = $storage->get_image_abspath($image_id, $size, true);
         $valid = true;
         // Render invalid image if hash check fails
         if ($abspath == null) {
             $uri_plain = $dynthumbs->get_uri_from_params($request_params);
             $hash = wp_hash($uri_plain);
             if (strpos($uri, $hash) === false) {
                 $valid = false;
                 $filename = $this->object->find_static_file('invalid_image.png');
                 $this->set_content_type('image/png');
                 readfile($filename);
                 $this->render();
             }
         }
         if ($valid) {
             $storage->render_image($image_id, $size);
         }
     }
 }
 function _get_preview_image()
 {
     $registry = $this->object->get_registry();
     $storage = C_Gallery_Storage::get_instance();
     $image = C_Image_Mapper::get_instance()->find_first();
     $imagegen = C_Dynamic_Thumbnails_Manager::get_instance();
     $size = $imagegen->get_size_name(array('height' => 250, 'crop' => FALSE, 'watermark' => TRUE));
     $url = $image ? $storage->get_image_url($image, $size) : NULL;
     $abspath = $image ? $storage->get_image_abspath($image, $size) : NULL;
     return array('url' => $url, 'abspath' => $abspath);
 }
 /**
  * Function exists for legacy support but has been gutted to not do anything
  *
  * @param int $width
  * @param int $height
  * @param string $mode could be watermark | web20 | crop
  * @return the url for the image or false if failed
  */
 public function cached_singlepic_file($width = '', $height = '', $mode = '')
 {
     $dynthumbs = C_Dynamic_Thumbnails_Manager::get_instance();
     $storage = $this->get_storage();
     // determine what to do with 'mode'
     $display_reflection = FALSE;
     $display_watermark = FALSE;
     if (!is_array($mode)) {
         $mode = explode(',', $mode);
     }
     if (in_array('web20', $mode)) {
         $display_reflection = TRUE;
     }
     if (in_array('watermark', $mode)) {
         $display_watermark = TRUE;
     }
     // and go for it
     $params = array('width' => $width, 'height' => $height, 'watermark' => $display_watermark, 'reflection' => $display_reflection);
     return $storage->get_image_url((object) $this->_cache, $dynthumbs->get_size_name($params));
 }
 function index_action()
 {
     $dynthumbs = C_Dynamic_Thumbnails_Manager::get_instance();
     $uri = $_SERVER['REQUEST_URI'];
     $params = $dynthumbs->get_params_from_uri($uri);
     $request_params = $params;
     if ($params != null) {
         $storage = C_Gallery_Storage::get_instance();
         // Note, URLs should always include quality setting when returned by Gallery Storage component
         // this sanity check is mostly for manually testing URLs
         if (!isset($params['quality'])) {
             // Note: there's a problem when doing this as using the same set of parameters to *retrieve* the image path/URL will lead to a different filename than the one tha was used to *generate* it (which went through here)
             // The statement above about URLs always containing quality setting is not true anymore, this is because we need to retrieve default quality from the imgQuality and thumbquality settings, depending on "full" or "thumbnail" request in the ngglegacy storage
             //$params['quality'] = 100;
         }
         $image_id = $params['image'];
         $size = $dynthumbs->get_size_name($params);
         $abspath = $storage->get_image_abspath($image_id, $size, true);
         $valid = true;
         // Render invalid image if hash check fails
         if ($abspath == null) {
             $uri_plain = $dynthumbs->get_uri_from_params($request_params);
             $hash = wp_hash($uri_plain);
             if (strpos($uri, $hash) === false) {
                 $valid = false;
                 $filename = $this->object->find_static_file('invalid_image.png');
                 $this->set_content_type('image/png');
                 readfile($filename);
                 $this->render();
             }
         }
         if ($valid) {
             $storage->render_image($image_id, $size);
         }
     }
 }
Example #15
0
    die(__('Cheatin&#8217; uh?'));
}
global $wpdb;
$id = (int) $_GET['id'];
// let's get the image data
$picture = nggdb::find_image($id);
include_once nggGallery::graphic_library();
$ngg_options = get_option('ngg_options');
$thumb = new ngg_Thumbnail($picture->imagePath, TRUE);
$thumb->resize(350, 350);
// we need the new dimension
$resizedPreviewInfo = $thumb->newDimensions;
$thumb->destruct();
// Generate a url to a preview image
$storage = C_Gallery_Storage::get_instance();
$thumbnail_manager = C_Dynamic_Thumbnails_Manager::get_instance();
$dynamic_size = $thumbnail_manager->get_size_name(array('width' => 350, 'height' => 350));
//$preview_image		= trailingslashit( home_url() ) . 'index.php?callback=image&amp;pid=' . $picture->pid . '&amp;width=350&amp;height=350';
$preview_image = $storage->get_image_url($id, $dynamic_size);
?>

<script type='text/javascript'>
	var selectedImage = "thumb<?php 
echo $id;
?>
";
	
	function rotateImage() {
		
		var rotate_angle = jQuery('input[name=ra]:checked').val();
		
 /**
  * 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);
     }
 }
 function render_download_list($order)
 {
     $cart = $order->get_cart()->to_array();
     $storage = $this->get_gallery_storage();
     $images = array();
     $settings = C_NextGen_Settings::get_instance();
     foreach ($cart['images'] as $image_obj) {
         foreach ($image_obj->items as $item) {
             $image = new stdClass();
             foreach (get_object_vars($image_obj) as $key => $val) {
                 $image->{$key} = $val;
             }
             if ($item->source == NGG_PRO_DIGITAL_DOWNLOADS_SOURCE) {
                 $named_size = 'backup';
                 // Use the full resolution image
                 if ($item->resolution != 0) {
                     $dynthumbs = C_Dynamic_Thumbnails_Manager::get_instance();
                     $params = array('width' => $item->resolution, 'height' => $item->resolution, 'crop' => FALSE, 'watermark' => FALSE, 'quality' => 100);
                     $named_size = $dynthumbs->get_size_name($params);
                     if (!$storage->get_image_abspath($image, $named_size, TRUE)) {
                         $storage->generate_image_size($image, $named_size);
                     }
                 }
                 if ($named_size == 'backup') {
                     // in case the backup files are protected by server side rules we serve fullsize images from
                     // an ajax endpoint.
                     //
                     // we don't need to honor permalink styles as this is mostly hidden just determine the most
                     // reliable path to the photocrati_ajax controller
                     $url = $settings->get('ajax_url');
                     $pos = strpos($url, '?');
                     if ($pos === FALSE) {
                         $url .= '?';
                     } else {
                         $url .= '&';
                     }
                     $url .= 'action=get_image_file&order_id=' . $order->hash . '&image_id=' . $image_obj->{$image_obj->id_field};
                     $image->download_url = $url;
                 } else {
                     $image->download_url = $storage->get_image_url($image, $named_size);
                 }
                 // Set other properties
                 $dimensions = $storage->get_image_dimensions($image, $named_size);
                 $image->dimensions = $dimensions;
                 $image->resolution = $dimensions['width'] . 'x' . $dimensions['height'];
                 $image->item_description = $item->title;
                 $image->thumbnail_url = $storage->get_thumbnail_url($image);
                 array_push($images, $image);
             }
         }
     }
     return $this->render_partial('photocrati-nextgen_pro_ecommerce#digital_downloads_list', array('images' => $images, 'order' => $order, 'i18n' => $this->get_i18n_strings($order)), TRUE);
 }