[wp-trac] [WordPress Trac] #15149: image_get_intermediate_size partly ignores 'path' and 'url' fields and has inconsistent return values

WordPress Trac wp-trac at lists.automattic.com
Tue Oct 19 13:13:33 UTC 2010


#15149: image_get_intermediate_size partly ignores 'path' and 'url' fields and has
inconsistent return values
-------------------------+--------------------------------------------------
 Reporter:  whoismanu    |       Owner:                 
     Type:  enhancement  |      Status:  new            
 Priority:  normal       |   Milestone:  Awaiting Review
Component:  Media        |     Version:  3.1            
 Severity:  normal       |    Keywords:  has-patch      
-------------------------+--------------------------------------------------
 the current implementations of image_get_intermediate_size and
 image_downsize in wp-includes/media.php have several inconsistencies.

 image_get_intermediate_size() returns the following information about an
 attachment for registered sizes: file, width, height, path, url. for ad-
 hoc sizes (if the size argument is an array) it returns: file, width,
 height.

 in the second case, path and url information that may have been set by a
 plugin is lost.

 further, the calling function, image_downsize(), in any case regenerates
 the url like this


 {{{
 $img_url = str_replace(basename($img_url), $intermediate['file'],
 $img_url);
 }}}

 this means that now also for the registered sizes, the 'url' information
 is discarded. further, this means that for registered sizes, the url is
 computed twice, once inside image_downsize as detailed above, once in
 image_get_intermediate_size() like this


 {{{
 $data['url'] = path_join( dirname($file_url), $data['file'] );
 }}}


 to me, a cleaner approach would be to return the full information (file,
 width, height, path, url) independent of whether an image size is
 registered or not. all these fields can then also be directly calculated
 inside image_get_intermediate_size() and the caller does not have to
 bother with, e.g., generating paths and urls. further, this would allow to
 accept path and url information that is already present in the db, also in
 the case of ad-hoc image sizes.

 i put together a patch that provides a potential solution.

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/15149>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list