| Current Path : /home/ereika83/www/wp-content/themes/Builder/lib/builder-core/extensions/slider/lib/ |
| Current File : /home/ereika83/www/wp-content/themes/Builder/lib/builder-core/extensions/slider/lib/image-size.php |
<?php
if ( function_exists( 'add_image_size' ) ) {
add_image_size( 'it-slider-thumb', 630, 300, true );
add_image_size( 'it-teaser-thumb', 120, 120, true );
}
// Custom image resize code by iThemes.com Dustin Bolton - Iteration 20 - 3/24/11
if ( !function_exists( 'builder_extension_image_downsize' ) ) {
add_filter( 'image_downsize', 'builder_extension_image_downsize', 10, 3 ); // Latch in when a custom image size is called.
add_filter( 'intermediate_image_sizes_advanced', 'builder_extension_image_downsize_blockextra', 10, 3 ); // Custom image size blocker to block generation of thumbs for sizes other sizes except when called.
function builder_extension_image_downsize( $result, $id, $size ) {
global $_ithemes_temp_downsize_size;
if ( is_array( $size ) ) { // Dont bother with non-named sizes. Let them proceed normally. We need to set something to block the blocker though.
$_ithemes_temp_downsize_size = 'array_size';
return;
}
// Store current meta information and size data.
global $_ithemes_temp_downsize_meta;
$_ithemes_temp_downsize_size = $size;
$_ithemes_temp_downsize_meta = wp_get_attachment_metadata( $id );
if ( !is_array( $_ithemes_temp_downsize_meta ) ) { return $result; }
if ( !is_array( $size ) && !empty( $_ithemes_temp_downsize_meta['sizes'][$size] ) ) {
$data = $_ithemes_temp_downsize_meta['sizes'][$size];
// Some handling if the size defined for this size name has changed.
global $_wp_additional_image_sizes;
if ( empty( $_wp_additional_image_sizes[$size] ) ) { // Not a custom size so return data as is.
$img_url = wp_get_attachment_url( $id );
$img_url = path_join( dirname( $img_url ), $data['file'] );
return array( $img_url, $data['width'], $data['height'], true );
} else { // Custom size so only return if current image file dimensions match the defined ones.
$img_url = wp_get_attachment_url( $id );
$img_url = path_join( dirname( $img_url ), $data['file'] );
return array( $img_url, $data['width'], $data['height'], true );
}
}
require_once( ABSPATH . '/wp-admin/includes/image.php' );
$uploads = wp_upload_dir();
if ( !is_array( $uploads ) || ( false !== $uploads['error'] ) ) { return $result; }
$file_path = "{$uploads['basedir']}/{$_ithemes_temp_downsize_meta['file']}";
// Image is resized within the function in the following line.
$temp_meta_information = wp_generate_attachment_metadata( $id, $file_path ); // triggers filter_image_downsize_blockextra() function via filter within. generate images. returns new meta data for image (only includes the just-generated image size).
$meta_information = $_ithemes_temp_downsize_meta; // Get the old original meta information.
if ( !empty( $temp_meta_information['sizes'][$_ithemes_temp_downsize_size] ) ) { // This named size returned size dimensions in the size array key so copy it.
$meta_information['sizes'][$_ithemes_temp_downsize_size] = $temp_meta_information['sizes'][$_ithemes_temp_downsize_size]; // Merge old meta back in.
wp_update_attachment_metadata( $id, $meta_information ); // Update image meta data.
}
unset( $_ithemes_temp_downsize_size ); // Cleanup.
unset( $_ithemes_temp_downsize_meta );
return $result;
}
/* Prevents image resizer from resizing ALL images; just the currently requested size. */
function builder_extension_image_downsize_blockextra( $sizes ) {
//return $sizes;
global $_ithemes_temp_downsize_size;
if ( empty( $_ithemes_temp_downsize_size ) || ( $_ithemes_temp_downsize_size == 'array_size' ) ) { // Dont bother with non-named sizes. Let them proceed normally.
return $sizes;
}
if ( !empty( $sizes[$_ithemes_temp_downsize_size] ) ) { // unavailable size so don't set.
$sizes = array( $_ithemes_temp_downsize_size => $sizes[$_ithemes_temp_downsize_size] ); // Strip out all extra meta data so only the requested size will be generated.
}
return $sizes;
}
}