Make WordPress Core


Ignore:
Timestamp:
04/06/2012 08:47:24 PM (14 years ago)
Author:
ryan
Message:

Make choosing a header image from the media library play nicely with file replication plugins that do not guarantee images will be retained in the local filesystem.

  • When passing an attachment ID to wp_crop_image(), use load_image_to_edit() to fetch the image via a url fopen when the image does not exist in the filesystem.
  • Move load_image_to_edit() to wp-admin/includes/image.php so that it is always available for admin pages loads.
  • Fallback to the height and width stored in the attachment meta when the image no longer exists in the filesystem.

see #19840

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/image-edit.php

    r19871 r20384  
    196196        </div>
    197197<?php
    198 }
    199 
    200 function load_image_to_edit($post_id, $mime_type, $size = 'full') {
    201         $filepath = get_attached_file($post_id);
    202 
    203         if ( $filepath && file_exists($filepath) ) {
    204                 if ( 'full' != $size && ( $data = image_get_intermediate_size($post_id, $size) ) ) {
    205                         $filepath = apply_filters('load_image_to_edit_filesystempath', path_join( dirname($filepath), $data['file'] ), $post_id, $size);
    206                 }
    207         } elseif ( function_exists('fopen') && function_exists('ini_get') && true == ini_get('allow_url_fopen') ) {
    208                 $filepath = apply_filters('load_image_to_edit_attachmenturl', wp_get_attachment_url($post_id) , $post_id, $size);
    209         }
    210 
    211         $filepath = apply_filters('load_image_to_edit_path', $filepath, $post_id, $size);
    212         if ( empty($filepath) )
    213                 return false;
    214 
    215         switch ( $mime_type ) {
    216                 case 'image/jpeg':
    217                         $image = imagecreatefromjpeg($filepath);
    218                         break;
    219                 case 'image/png':
    220                         $image = imagecreatefrompng($filepath);
    221                         break;
    222                 case 'image/gif':
    223                         $image = imagecreatefromgif($filepath);
    224                         break;
    225                 default:
    226                         $image = false;
    227                         break;
    228         }
    229         if ( is_resource($image) ) {
    230                 $image = apply_filters('load_image_to_edit', $image, $post_id, $size);
    231                 if ( function_exists('imagealphablending') && function_exists('imagesavealpha') ) {
    232                         imagealphablending($image, false);
    233                         imagesavealpha($image, true);
    234                 }
    235         }
    236         return $image;
    237198}
    238199
Note: See TracChangeset for help on using the changeset viewer.