Changeset 7149

Show
Ignore:
Timestamp:
03/04/08 04:21:37 (10 months ago)
Author:
matt
Message:

New functions for attachment image display, fixes #6086. Hat tip: tellyworth.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/wp-admin/includes/schema.php

    r7148 r7149  
    248248    add_option('thumbnail_size_h', 150); 
    249249    add_option('thumbnail_crop', 1); 
    250     add_option('medium_size_w', ''); 
    251     add_option('medium_size_h', ''); 
     250    add_option('medium_size_w', 300); 
     251    add_option('medium_size_h', 300); 
    252252    add_option('autosave_interval', 60); 
    253253 
  • trunk/wp-includes/media.php

    r7137 r7149  
    1919        $max_height = intval(get_option('medium_size_h')); 
    2020        // if no width is set, default to the theme content width if available 
    21         if ( !$max_width ) { 
    22             // $content_width might be set in the current theme's functions.php 
    23             if ( !empty($GLOBALS['content_width']) ) { 
    24                 $max_width = $GLOBALS['content_width']; 
    25             } 
    26             else 
    27                 $max_width = 500; 
    28         } 
    2921    } 
    3022    else { // $size == 'full' 
    31         $max_width = 0; 
    32         $max_height = 0; 
     23        // we're inserting a full size image into the editor.  if it's a really big image we'll scale it down to fit reasonably 
     24        // within the editor itself, and within the theme's content width if it's known.  the user can resize it in the editor 
     25        // if they wish. 
     26        if ( !empty($GLOBALS['content_width']) ) { 
     27            $max_width = $GLOBALS['content_width']; 
     28        } 
     29        else 
     30            $max_width = 500; 
    3331    } 
    3432 
     
    259257} 
    260258 
     259// get an image to represent an attachment - a mime icon for files, thumbnail or intermediate size for images 
     260// returns an array (url, width, height), or false if no image is available 
     261function wp_get_attachment_image_src($attachment_id, $size='thumbnail') { 
     262     
     263    // get a thumbnail or intermediate image if there is one 
     264    $image = image_downsize($attachment_id, $size); 
     265    if ( $image ) { 
     266        list ( $src, $width, $height ) = $image; 
     267    } 
     268    elseif ( $src = wp_mime_type_icon($attachment_id) ) { 
     269        $icon_dir = apply_filters( 'icon_dir', get_template_directory() . '/images' ); 
     270        $src_file = $icon_dir . '/' . basename($src); 
     271        @list($width, $height) = getimagesize($src_file); 
     272    } 
     273     
     274    if ( $src && $width && $height ) 
     275        return array( $src, $width, $height ); 
     276    return false; 
     277} 
     278 
     279// as per wp_get_attachment_image_src, but returns an <img> tag 
     280function wp_get_attachment_image($attachment_id, $size='thumbnail') { 
     281 
     282    $html = ''; 
     283    $image = wp_get_attachment_image_src($attachment_id, $size); 
     284    if ( $image ) { 
     285        list($src, $width, $height) = $image; 
     286        $hwstring = image_hwstring($width, $height); 
     287        $html = '<img src="'.attribute_escape($src).'" '.$hwstring.'class="attachment-'.attribute_escape($size).'" />'; 
     288    } 
     289     
     290    return $html; 
     291} 
    261292 
    262293?> 
  • trunk/wp-includes/post-template.php

    r7135 r7149  
    363363// 
    364364 
    365 function the_attachment_link($id = 0, $fullsize = false, $max_dims = false, $permalink = false) { 
    366     echo get_the_attachment_link($id, $fullsize, $max_dims, $permalink); 
    367 
    368  
     365function the_attachment_link($id = 0, $fullsize = false, $deprecated = false, $permalink = false) { 
     366    if ( $fullsize ) 
     367        echo wp_get_attachment_link($id, 'full', $permalink); 
     368    else 
     369        echo wp_get_attachment_link($id, 'thumbnail', $permalink); 
     370
     371 
     372// get an attachment page link using an image or icon if possible 
     373function wp_get_attachment_link($id = 0, $size = 'thumbnail', $permalink = false) { 
     374    $_post = & get_post( intval($id) ); 
     375 
     376    if ( ('attachment' != $_post->post_type) || !$url = wp_get_attachment_url($_post->ID) ) 
     377        return __('Missing Attachment'); 
     378 
     379    if ( $permalink ) 
     380        $url = get_attachment_link($_post->ID); 
     381 
     382    $post_title = attribute_escape($_post->post_title); 
     383 
     384    $link_text = wp_get_attachment_image($attachment_id, $size); 
     385    if ( !$link_text ) 
     386        $link_text = $_post->post_title; 
     387 
     388    return "<a href='$url' title='$post_title'>$link_text</a>"; 
     389 
     390
     391 
     392// deprecated - use wp_get_attachment_link() 
    369393function get_the_attachment_link($id = 0, $fullsize = false, $max_dims = false, $permalink = false) { 
    370394    $id = (int) $id; 
     
    383407} 
    384408 
     409 
     410// deprecated: use wp_get_attachment_image_src() 
    385411function get_attachment_icon_src( $id = 0, $fullsize = false ) { 
    386412    $id = (int) $id; 
     
    414440} 
    415441 
     442// deprecated: use wp_get_attachment_image() 
    416443function get_attachment_icon( $id = 0, $fullsize = false, $max_dims = false ) { 
    417444    $id = (int) $id; 
    418445    if ( !$post = & get_post($id) ) 
    419446        return false; 
    420  
     447         
    421448    if ( !$src = get_attachment_icon_src( $post->ID, $fullsize ) ) 
    422449        return false; 
     
    457484} 
    458485 
     486// deprecated: use wp_get_attachment_image() 
    459487function get_attachment_innerHTML($id = 0, $fullsize = false, $max_dims = false) { 
    460488    $id = (int) $id; 
     
    473501function prepend_attachment($content) { 
    474502    $p = '<p class="attachment">'; 
    475     $p .= get_the_attachment_link(false, true, array(400, 300)); 
     503    // show the medium sized image representation of the attachment if available, and link to the raw file 
     504    $p .= wp_get_attachment_link(0, 'medium', false); 
    476505    $p .= '</p>'; 
    477506    $p = apply_filters('prepend_attachment', $p);