Example #1
0
function rt_vt_resize($attach_id = null, $img_url = null, $width, $height, $crop = false, $v_crop = false)
{
    $file_path = "";
    $image_src = array();
    // fix demo image urls
    $upload_dir = wp_upload_dir();
    $img_url = str_replace(RT_DEMOUPLOADSDIR, $upload_dir['url'], $img_url);
    //clean if thumbnail used instead of full image
    if ($img_url) {
        $img_url = rt_clean_thumbnail_ext($img_url);
    }
    // this is an attachment, so we have the ID
    if ($attach_id) {
        $image_src = wp_get_attachment_image_src($attach_id, 'full');
        $file_path = get_attached_file($attach_id);
        // this is not an attachment, let's use the image url
    } else {
        if ($img_url) {
            //parse
            $file_path = parse_url($img_url);
            $file_path = $_SERVER['DOCUMENT_ROOT'] . $file_path['path'];
            /* alternative find paths
            			$file_path = parse_url( $img_url );
            			$uploads = wp_upload_dir();  
            			$file_path = $uploads['basedir'] . str_replace("/wp-content/uploads","", $file_path['path']);
            		*/
            $orig_size = file_exists($file_path) ? getimagesize($file_path) : false;
            $image_src[0] = $img_url;
            $image_src[1] = $orig_size[0];
            $image_src[2] = $orig_size[1];
            //let WP find image urls
            if (!$orig_size) {
                $get_image_id_from_url = rt_get_attachment_id_from_src($img_url);
                if ($get_image_id_from_url) {
                    $image_src = wp_get_attachment_image_src($get_image_id_from_url, 'full');
                    $file_path = get_attached_file($get_image_id_from_url);
                }
            }
        }
    }
    $file_info = pathinfo($file_path);
    $extension = isset($file_info['extension']) ? '.' . $file_info['extension'] : "";
    // the image path without the extension
    $no_ext_path = isset($file_info['dirname']) && isset($file_info['filename']) ? $file_info['dirname'] . '/' . $file_info['filename'] : "";
    if (isset($image_src[2]) && $height <= $image_src[2] && $v_crop != false && $crop == false) {
        $cropped_img_path = $no_ext_path . '-vc-' . $width . 'x' . $height . $extension;
        //cropped vertically
    } else {
        $cropped_img_path = $no_ext_path . '-' . $width . 'x' . $height . $extension;
        //cropped normal
    }
    // checking if the file size is larger than the target size
    // if it is smaller or the same size, stop right here and return
    if (isset($image_src[1]) && $image_src[1] > $width || isset($image_src[2]) && $image_src[2] > $height) {
        // the file is larger, check if the resized version already exists (for $crop = true but will also work for $crop = false if the sizes match)
        if (file_exists($cropped_img_path) && $crop != false) {
            $cropped_img_url = str_replace(basename($image_src[0]), basename($cropped_img_path), $image_src[0]);
            $vt_image = array('url' => $cropped_img_url, 'width' => $width, 'height' => $height);
            return $vt_image;
        }
        // $crop = false
        if ($crop == false && $v_crop == false) {
            // calculate the size proportionaly
            $proportional_size = wp_constrain_dimensions($image_src[1], $image_src[2], $width, $height);
            $resized_img_path = $no_ext_path . '-' . $proportional_size[0] . 'x' . $proportional_size[1] . $extension;
            // checking if the file already exists
            if (file_exists($resized_img_path)) {
                $resized_img_url = str_replace(basename($image_src[0]), basename($resized_img_path), $image_src[0]);
                $vt_image = array('url' => $resized_img_url, 'width' => $proportional_size[0], 'height' => $proportional_size[1]);
                return $vt_image;
            }
        }
        // $v_crop = true
        if ($height <= $image_src[2] && $v_crop != false && $crop == false) {
            // calculate the size proportionaly
            if ($width > $image_src[1]) {
                $proportional_size = array($image_src[1], $height);
            } else {
                $proportional_size = array($width, $height);
            }
            $resized_img_path = $no_ext_path . '-vc-' . $proportional_size[0] . 'x' . $proportional_size[1] . $extension;
            // checking if the file already exists
            if (file_exists($resized_img_path)) {
                $resized_img_url = str_replace(basename($image_src[0]), basename($resized_img_path), $image_src[0]);
                $vt_image = array('url' => $resized_img_url, 'width' => $proportional_size[0], 'height' => $proportional_size[1]);
                return $vt_image;
            }
        }
        // no cache files - let's finally resize it
        $new_img_path = wp_get_image_editor($file_path);
        if (!is_wp_error($new_img_path)) {
            /*
             *  resize & crop
             */
            //crop images with the height value, and take x and y = 0
            if ($height <= $image_src[2] && $v_crop != false && $crop == false) {
                if ($width > $image_src[1]) {
                    $resized = $new_img_path->crop(0, 0, $image_src[1], $height);
                    $v_crop_sfx = "vc-" . $image_src[1] . "x" . $height;
                } else {
                    $resized = $new_img_path->crop(0, 0, $width, $height);
                    $v_crop_sfx = "vc-" . $width . "x" . $height;
                }
            }
            if ($v_crop == false) {
                $resized = $new_img_path->resize($width, $height, $crop);
                // regular resize
            }
            //if no wp error save the new file
            if (!is_wp_error($resized)) {
                if ($height <= $image_src[2] && $v_crop != false && $crop == false) {
                    $dest_file = $new_img_path->generate_filename($v_crop_sfx);
                    //v_crop
                } else {
                    $dest_file = $new_img_path->generate_filename();
                }
                $saved = $new_img_path->save($dest_file);
                if (!is_wp_error($saved)) {
                    $new_img_path = $saved["path"];
                } else {
                    $new_img_path = $file_path;
                }
            } else {
                $new_img_path = $file_path;
            }
        } else {
            $new_img_path = $file_path;
        }
        $new_img_size = getimagesize($new_img_path);
        $new_img = str_replace(basename($image_src[0]), basename($new_img_path), $image_src[0]);
        // resized output
        $vt_image = array('url' => $new_img, 'width' => $new_img_size[0], 'height' => $new_img_size[1]);
        return $vt_image;
    }
    // default output - without resizing
    $vt_image = array('url' => isset($image_src[0]) ? $image_src[0] : "", 'width' => isset($image_src[0]) ? $image_src[1] : "", 'height' => isset($image_src[0]) ? $image_src[2] : "");
    return $vt_image;
}
Example #2
0
    /**
     * Display the new Custom Fields meta box
     */
    function displayCustomFields()
    {
        global $post;
        ?>
			 <div class="box right-col metaboxes side">
				<?php 
        wp_nonce_field($this->settings['slug'], $this->settings['slug'] . '_wpnonce', false, true);
        // Check capability
        if (!current_user_can($this->settings['capability'], $post->ID)) {
            $output = false;
        } else {
            $output = true;
        }
        // Output if allowed
        if ($output) {
            ?>
  
		
							<?php 
            //get stored values
            $rt_gallery_images = get_post_meta($post->ID, $this->prefix . "rt_gallery_images", true);
            //to compatible with earlier rt-framework implode the images into an array first
            if (is_array($rt_gallery_images) && !empty($rt_gallery_images)) {
                $rt_gallery_images = implode(",", $rt_gallery_images);
            }
            ?>

							<ul class="rt-gallery-uploaded-photos">
							 

									<?php 
            if (!empty($rt_gallery_images)) {
                //make an array from the image list
                $rt_gallery_images_array = explode(",", $rt_gallery_images);
                for ($i = 0; $i < count($rt_gallery_images_array); $i++) {
                    //the image url
                    $image_url = rt_find_image_org_path(trim($rt_gallery_images_array[$i]));
                    //find the id of image
                    $image_id = rt_get_attachment_id_from_src(rt_clean_thumbnail_ext($image_url));
                    //the thumbmail url
                    $thumbnail = wp_get_attachment_image_src($image_id, "thumbnail", true, "");
                    if (strpos($thumbnail[0], "default.png")) {
                        $thumbnail[0] = $image_url;
                    }
                    echo ' <li><img src="' . $thumbnail[0] . '" data-rel="' . $image_url . '"></li> ';
                }
            }
            ?>

							</ul> 

							<input type="hidden" name="<?php 
            echo $this->prefix;
            ?>
rt_gallery_images" value="<?php 
            echo $rt_gallery_images;
            ?>
" id="rt-gallery-images" class="upload_field">

							<div class="rt-gallery-new-photos-holder">
								<div class="rt-gallery-new-photos"></div>
							</div>
					<?php 
        }
        ?>
 
					
					<div class="rt_gallery_add_button icon-plus-squared-1 button"><?php 
        echo __("Add New Images", "rt_theme_admin");
        ?>
</div> 	 
			</div>
			<?php 
    }
Example #3
0
 function rt_find_image_org_path($image)
 {
     if (is_multisite()) {
         global $blog_id;
         if (isset($blog_id) && $blog_id > 0) {
             if (strpos($image, get_bloginfo('wpurl')) !== false) {
                 //image is local
                 if (empty(get_current_site(1)->path)) {
                     $the_image_path = get_current_site(1)->path . str_replace(get_blog_option($blog_id, 'fileupload_url'), get_blog_option($blog_id, 'upload_path'), $image);
                 } else {
                     $the_image_path = $image;
                 }
             } else {
                 $the_image_path = $image;
             }
         } else {
             $the_image_path = $image;
         }
     } else {
         $the_image_path = $image;
     }
     return rt_clean_thumbnail_ext($the_image_path);
 }