a_data ) ) {
$this->_orig_image = \Imagely\NGG\Util\Serializable::unserialize(
$this->_orig_image->meta_data
);
}
if ( ! isset( $this->_orig_image->meta_data['thumbnail'] ) ) {
$storage = $this->get_storage();
$storage->generate_thumbnail( $this->_orig_image );
}
$w = $this->_orig_image->meta_data['thumbnail']['width'];
$h = $this->_orig_image->meta_data['thumbnail']['height'];
}
return "width='{$w}' height='{$h}'";
case 'slug':
$gallery = $this->get_legacy_gallery( $this->__get( 'galleryid' ) );
$this->_cache['slug'] = $gallery->name;
return $this->_cache['slug'];
case 'tags':
$this->_cache['tags'] = wp_get_object_terms( $this->__get( 'id' ), 'ngg_tag', 'fields=all' );
return $this->_cache['tags'];
case 'thumbHTML':
$tmp = 'get_thumbcode( $this->__get( 'name' ) ) . '>' . '' . '';
$this->_cache['href'] = $tmp;
$this->_cache['thumbHTML'] = $tmp;
return $this->_cache['thumbHTML'];
case 'thumbPath':
$storage = $this->get_storage();
$this->_cache['thumbPath'] = $storage->get_image_abspath( $this->_orig_image, 'thumbnail' );
return $this->_cache['thumbPath'];
case 'thumbnailURL':
$storage = $this->get_storage();
$thumbnail_size_name = 'thumbnail';
if ( $this->_displayed_gallery && isset( $this->_displayed_gallery->display_settings ) ) {
$ds = $this->_displayed_gallery->display_settings;
if ( isset( $ds['override_thumbnail_settings'] ) && $ds['override_thumbnail_settings'] ) {
$dynthumbs = \Imagely\NGG\DynamicThumbnails\Manager::get_instance();
$dyn_params = [
'width' => $ds['thumbnail_width'],
'height' => $ds['thumbnail_height'],
];
if ( $ds['thumbnail_quality'] ) {
$dyn_params['quality'] = $ds['thumbnail_quality'];
}
if ( $ds['thumbnail_crop'] ) {
$dyn_params['crop'] = true;
}
if ( $ds['thumbnail_watermark'] ) {
$dyn_params['watermark'] = true;
}
$thumbnail_size_name = $dynthumbs->get_size_name( $dyn_params );
}
}
$this->_cache['thumbnailURL'] = $storage->get_image_url( $this->_orig_image, $thumbnail_size_name );
return $this->_cache['thumbnailURL'];
case 'thumbcode':
if ( $this->_displayed_gallery
&& isset( $this->_displayed_gallery->display_settings )
&& isset( $this->_displayed_gallery->display_settings['use_imagebrowser_effect'] )
&& $this->_displayed_gallery->display_settings['use_imagebrowser_effect']
&& ! empty( $this->_orig_image->thumbcode ) ) {
$this->_cache['thumbcode'] = $this->_orig_image->thumbcode;
} else {
$this->_cache['thumbcode'] = $this->get_thumbcode( $this->__get( 'name' ) );
}
return $this->_cache['thumbcode'];
case 'thumbURL':
return $this->__get( 'thumbnailURL' );
case 'title':
$this->_cache['title'] = stripslashes( $this->__get( 'name' ) );
return $this->_cache['title'];
case 'url':
$storage = $this->get_storage();
$this->_cache['url'] = $storage->get_image_url( $this->_orig_image, 'full' );
return $this->_cache['url'];
default:
return $this->_cache[ $name ];
}
}
// called on initial nggLegacy image at construction. not sure what to do with it now.
public function construct_ngg_Image( $gallery ) {
do_action_ref_array( 'ngg_get_image', [ &$this ] );
unset( $this->tags );
}
/**
* Retrieves and caches an I_Settings_Manager instance
*
* @return mixed
*/
public function get_settings() {
if ( is_null( $this->_settings ) ) {
$this->_settings = \Imagely\NGG\Settings\Settings::get_instance();
}
return $this->_settings;
}
/**
* Retrieves and caches an I_Gallery_Storage instance
*
* @return mixed
*/
public function get_storage() {
if ( is_null( $this->_storage ) ) {
$this->_storage = \Imagely\NGG\DataStorage\Manager::get_instance();
}
return $this->_storage;
}
/**
* Retrieves gallery mapper instance
*
* @param int $gallery_id Gallery ID
* @return Imagely\NGG\DataTypes\Gallery|null
*/
public function get_gallery( $gallery_id ) {
if ( isset( $this->container ) && method_exists( $this->container, 'get_gallery' ) ) {
return $this->container->get_gallery( $gallery_id );
}
return \Imagely\NGG\DataMappers\Gallery::get_instance()->find( $gallery_id );
}
/**
* Retrieves gallery mapper instance
*
* @param int $gallery_id Gallery ID
* @return Imagely\NGG\DataTypes\Gallery|null
*/
public function get_legacy_gallery( $gallery_id ) {
return \Imagely\NGG\DataMappers\Gallery::get_instance()->find( $gallery_id );
}
/**
* Get the thumbnail code (to add effects on thumbnail click)
*
* Applies the filter 'ngg_get_thumbcode'
*
* @param string $gallery_name (optional) Default = ''
* @return string
*/
public function get_thumbcode( $gallery_name = '' ) {
if ( empty( $this->_displayed_gallery ) ) {
$effect_code = \Imagely\NGG\Settings\Settings::get_instance()->thumbCode;
$effect_code = str_replace( '%GALLERY_ID%', $gallery_name, $effect_code );
$effect_code = str_replace( '%GALLERY_NAME%', $gallery_name, $effect_code );
$retval = $effect_code;
} else {
$controller = new Controller();
$retval = $controller->get_effect_code( $this->_displayed_gallery );
// This setting requires that we disable the effect code.
$ds = $this->_displayed_gallery->display_settings;
if ( isset( $ds['use_imagebrowser_effect'] ) && $ds['use_imagebrowser_effect'] ) {
$retval = '';
}
}
$retval = apply_filters( 'ngg_get_thumbcode', $retval, $this );
// ensure some additional data- fields are added; provides Pro-Lightbox compatibility.
$retval .= ' data-image-id="' . $this->__get( 'id' ) . '"';
$retval .= ' data-src="' . $this->__get( 'imageURL' ) . '"';
$retval .= ' data-thumbnail="' . $this->__get( 'thumbnailURL' ) . '"';
$retval .= ' data-title="' . esc_attr( $this->__get( 'alttext' ) ) . '"';
$retval .= ' data-description="' . esc_attr( $this->__get( 'description' ) ) . '"';
$this->_cache['thumbcode'] = $retval;
return $retval;
}
/**
* For compatibility support
*
* @return mixed
*/
public function get_href_link() {
return $this->__get( 'imageHTML' );
}
/**
* For compatibility support
*
* @return mixed
*/
public function get_href_thumb_link() {
return $this->__get( 'thumbHTML' );
}
/**
* Function exists for legacy support but has been gutted to not do anything
*
* @param string|int $width (optional) Default = ''
* @param string|int $height (optional) Default = ''
* @param string $mode could be watermark | web20 | crop
* @return bool|string The url for the image or false if failed
*/
public function cached_singlepic_file( $width = '', $height = '', $mode = '' ) {
$dynthumbs = \Imagely\NGG\DynamicThumbnails\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 = [
'width' => $width,
'height' => $height,
'watermark' => $display_watermark,
'reflection' => $display_reflection,
];
return $storage->get_image_url( (object) $this->_cache, $dynthumbs->get_size_name( $params ) );
}
/**
* Get the tags associated to this image
*/
public function get_tags() {
return $this->__get( 'tags' );
}
/**
* Get the permalink to the image
*
* TODO: Get a permalink to a page presenting the image
*/
public function get_permalink() {
return $this->__get( 'permalink' );
}
/**
* Returns the _cache array; used by nggImage
*
* @return array
*/
public function _get_image() {
return $this->_cache;
}
}
Foto’s |