WordPress.org

Make WordPress Core

Changeset 18831


Ignore:
Timestamp:
09/30/11 06:22:29 (3 years ago)
Author:
nacin
Message:

Merge the four media buttons into one.

  • Lots of red.
  • Removes the type_url_form_\$type filter, where \$type is audio, video, file, or image.
  • Replacement filter is a generic type_url_form_media filter for the new unified form.
  • Some functions have gone missing; they'll be restored and deprecated in a later pass.

see #17578.

Location:
trunk/wp-admin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/css/media.dev.css

    r18802 r18831  
    363363} 
    364364 
     365p.media-types { 
     366    margin: 1em; 
     367} 
     368 
     369tr.not-image { 
     370    display: none; 
     371} 
     372 
     373table.not-image tr.not-image { 
     374    display: table-row; 
     375} 
     376 
     377table.not-image tr.image-only { 
     378    display: none; 
     379} 
  • trunk/wp-admin/includes/media.php

    r18823 r18831  
    375375 */ 
    376376function media_buttons($editor_id = 'content') { 
    377     $out = ''; 
    378  
    379     if ( is_multisite() ) 
    380         $_buttons = get_site_option('mu_media_buttons'); 
    381     else 
    382         $_buttons = array( 'image' => true, 'video' => true, 'audio' => true ); 
    383  
    384     if ( !empty($_buttons['image']) ) 
    385         $out .= _media_button(__('Add an Image'), 'images/media-button-image.gif?ver=20100531', 'image', $editor_id); 
    386     if ( !empty($_buttons['video']) ) 
    387         $out .= _media_button(__('Add Video'), 'images/media-button-video.gif?ver=20100531', 'video', $editor_id); 
    388     if ( !empty($_buttons['audio']) ) 
    389         $out .= _media_button(__('Add Audio'), 'images/media-button-music.gif?ver=20100531', 'audio', $editor_id); 
    390  
    391     $out .= _media_button(__('Add Media'), 'images/media-button-other.gif?ver=20100531', 'media', $editor_id); 
     377    $out = _media_button(__('Add Media'), 'images/media-button-video.gif?ver=20100531', 'media', $editor_id); 
    392378 
    393379    $context = apply_filters('media_buttons_context', __('Upload/Insert %s')); 
     
    530516 
    531517    if ( !empty($_POST['insertonlybutton']) ) { 
    532         $alt = $align = ''; 
    533  
    534518        $src = $_POST['insertonly']['src']; 
    535519        if ( !empty($src) && !strpos($src, '://') ) 
    536520            $src = "http://$src"; 
    537         $alt = esc_attr($_POST['insertonly']['alt']); 
    538         if ( isset($_POST['insertonly']['align']) ) { 
    539             $align = esc_attr($_POST['insertonly']['align']); 
    540             $class = " class='align$align'"; 
     521 
     522        if ( isset( $_POST['media_type'] ) && 'image' != $_POST['media_type'] ) { 
     523            $title = esc_attr($_POST['insertonly']['title']); 
     524            if ( empty($title) ) 
     525                $title = esc_attr( basename($src) ); 
     526 
     527            if ( !empty($title) && !empty($src) ) 
     528                $html = "<a href='" . esc_url($src) . "' >$title</a>"; 
     529 
     530            $type = 'file'; 
     531            if ( $ext = preg_replace( '/^.+?\.([^.]+)$/', '$1', $src ) && $ext_type = wp_ext2type( $ext ) 
     532                && ( 'audio' == $ext_type || 'video' == $ext_type ) ) 
     533                    $type = $ext_type; 
     534 
     535            $html = apply_filters( $type . '_send_to_editor_url', $html, esc_url_raw( $src ), $title ); 
     536        } else { 
     537            $align = ''; 
     538            $alt = esc_attr($_POST['insertonly']['alt']); 
     539            if ( isset($_POST['insertonly']['align']) ) { 
     540                $align = esc_attr($_POST['insertonly']['align']); 
     541                $class = " class='align$align'"; 
     542            } 
     543            if ( !empty($src) ) 
     544                $html = "<img src='" . esc_url($src) . "' alt='$alt'$class />"; 
     545 
     546            $html = apply_filters( 'image_send_to_editor_url', $html, esc_url_raw( $src ), $alt, $align ); 
    541547        } 
    542         if ( !empty($src) ) 
    543             $html = "<img src='" . esc_url($src) . "' alt='$alt'$class />"; 
    544  
    545         $html = apply_filters('image_send_to_editor_url', $html, esc_url_raw($src), $alt, $align); 
     548 
    546549        return media_send_to_editor($html); 
    547550    } 
     
    561564    } 
    562565 
    563     if ( isset($_GET['tab']) && $_GET['tab'] == 'type_url' ) 
    564         return wp_iframe( 'media_upload_type_url_form', 'image', $errors, $id ); 
     566    if ( isset($_GET['tab']) && $_GET['tab'] == 'type_url' ) { 
     567        $type = 'image'; 
     568        if ( isset( $_GET['type'] ) && in_array( $_GET['type'], array( 'video', 'audio', 'file' ) ) ) 
     569            $type = $_GET['type']; 
     570        return wp_iframe( 'media_upload_type_url_form', $type, $errors, $id ); 
     571    } 
    565572 
    566573    return wp_iframe( 'media_upload_type_form', 'image', $errors, $id ); 
     
    611618        return $html; 
    612619    } 
    613 } 
    614  
    615 /** 
    616  * {@internal Missing Short Description}} 
    617  * 
    618  * @since 2.5.0 
    619  * 
    620  * @return unknown 
    621  */ 
    622 function media_upload_audio() { 
    623     $errors = array(); 
    624     $id = 0; 
    625  
    626     if ( isset($_POST['html-upload']) && !empty($_FILES) ) { 
    627         check_admin_referer('media-form'); 
    628         // Upload File button was clicked 
    629         $id = media_handle_upload('async-upload', $_REQUEST['post_id']); 
    630         unset($_FILES); 
    631         if ( is_wp_error($id) ) { 
    632             $errors['upload_error'] = $id; 
    633             $id = false; 
    634         } 
    635     } 
    636  
    637     if ( !empty($_POST['insertonlybutton']) ) { 
    638         $href = $_POST['insertonly']['href']; 
    639         if ( !empty($href) && !strpos($href, '://') ) 
    640             $href = "http://$href"; 
    641  
    642         $title = esc_attr($_POST['insertonly']['title']); 
    643         if ( empty($title) ) 
    644             $title = esc_attr( basename($href) ); 
    645  
    646         if ( !empty($title) && !empty($href) ) 
    647             $html = "<a href='" . esc_url($href) . "' >$title</a>"; 
    648  
    649         $html = apply_filters('audio_send_to_editor_url', $html, $href, $title); 
    650  
    651         return media_send_to_editor($html); 
    652     } 
    653  
    654     if ( !empty($_POST) ) { 
    655         $return = media_upload_form_handler(); 
    656  
    657         if ( is_string($return) ) 
    658             return $return; 
    659         if ( is_array($return) ) 
    660             $errors = $return; 
    661     } 
    662  
    663     if ( isset($_POST['save']) ) { 
    664         $errors['upload_notice'] = __('Saved.'); 
    665         return media_upload_gallery(); 
    666     } 
    667  
    668     if ( isset($_GET['tab']) && $_GET['tab'] == 'type_url' ) 
    669         return wp_iframe( 'media_upload_type_url_form', 'audio', $errors, $id ); 
    670  
    671     return wp_iframe( 'media_upload_type_form', 'audio', $errors, $id ); 
    672 } 
    673  
    674 /** 
    675  * {@internal Missing Short Description}} 
    676  * 
    677  * @since 2.5.0 
    678  * 
    679  * @return unknown 
    680  */ 
    681 function media_upload_video() { 
    682     $errors = array(); 
    683     $id = 0; 
    684  
    685     if ( isset($_POST['html-upload']) && !empty($_FILES) ) { 
    686         check_admin_referer('media-form'); 
    687         // Upload File button was clicked 
    688         $id = media_handle_upload('async-upload', $_REQUEST['post_id']); 
    689         unset($_FILES); 
    690         if ( is_wp_error($id) ) { 
    691             $errors['upload_error'] = $id; 
    692             $id = false; 
    693         } 
    694     } 
    695  
    696     if ( !empty($_POST['insertonlybutton']) ) { 
    697         $href = $_POST['insertonly']['href']; 
    698         if ( !empty($href) && !strpos($href, '://') ) 
    699             $href = "http://$href"; 
    700  
    701         $title = esc_attr($_POST['insertonly']['title']); 
    702         if ( empty($title) ) 
    703             $title = esc_attr( basename($href) ); 
    704  
    705         if ( !empty($title) && !empty($href) ) 
    706             $html = "<a href='" . esc_url($href) . "' >$title</a>"; 
    707  
    708         $html = apply_filters('video_send_to_editor_url', $html, $href, $title); 
    709  
    710         return media_send_to_editor($html); 
    711     } 
    712  
    713     if ( !empty($_POST) ) { 
    714         $return = media_upload_form_handler(); 
    715  
    716         if ( is_string($return) ) 
    717             return $return; 
    718         if ( is_array($return) ) 
    719             $errors = $return; 
    720     } 
    721  
    722     if ( isset($_POST['save']) ) { 
    723         $errors['upload_notice'] = __('Saved.'); 
    724         return media_upload_gallery(); 
    725     } 
    726  
    727     if ( isset($_GET['tab']) && $_GET['tab'] == 'type_url' ) 
    728         return wp_iframe( 'media_upload_type_url_form', 'video', $errors, $id ); 
    729  
    730     return wp_iframe( 'media_upload_type_form', 'video', $errors, $id ); 
    731 } 
    732  
    733 /** 
    734  * {@internal Missing Short Description}} 
    735  * 
    736  * @since 2.5.0 
    737  * 
    738  * @return unknown 
    739  */ 
    740 function media_upload_file() { 
    741     $errors = array(); 
    742     $id = 0; 
    743  
    744     if ( isset($_POST['html-upload']) && !empty($_FILES) ) { 
    745         check_admin_referer('media-form'); 
    746         // Upload File button was clicked 
    747         $id = media_handle_upload('async-upload', $_REQUEST['post_id']); 
    748         unset($_FILES); 
    749         if ( is_wp_error($id) ) { 
    750             $errors['upload_error'] = $id; 
    751             $id = false; 
    752         } 
    753     } 
    754  
    755     if ( !empty($_POST['insertonlybutton']) ) { 
    756         $href = $_POST['insertonly']['href']; 
    757         if ( !empty($href) && !strpos($href, '://') ) 
    758             $href = "http://$href"; 
    759  
    760         $title = esc_attr($_POST['insertonly']['title']); 
    761         if ( empty($title) ) 
    762             $title = basename($href); 
    763         if ( !empty($title) && !empty($href) ) 
    764             $html = "<a href='" . esc_url($href) . "' >$title</a>"; 
    765         $html = apply_filters('file_send_to_editor_url', $html, esc_url_raw($href), $title); 
    766         return media_send_to_editor($html); 
    767     } 
    768  
    769     if ( !empty($_POST) ) { 
    770         $return = media_upload_form_handler(); 
    771  
    772         if ( is_string($return) ) 
    773             return $return; 
    774         if ( is_array($return) ) 
    775             $errors = $return; 
    776     } 
    777  
    778     if ( isset($_POST['save']) ) { 
    779         $errors['upload_notice'] = __('Saved.'); 
    780         return media_upload_gallery(); 
    781     } 
    782  
    783     if ( isset($_GET['tab']) && $_GET['tab'] == 'type_url' ) 
    784         return wp_iframe( 'media_upload_type_url_form', 'file', $errors, $id ); 
    785  
    786     return wp_iframe( 'media_upload_type_form', 'file', $errors, $id ); 
    787620} 
    788621 
     
    16081441 * @param unknown_type $id 
    16091442 */ 
    1610 function media_upload_type_url_form($type = 'file', $errors = null, $id = null) { 
     1443function media_upload_type_url_form($type = null, $errors = null, $id = null) { 
     1444    if ( null === $type ) 
     1445        $type = 'image'; 
     1446 
    16111447    media_upload_header(); 
    16121448 
     
    16151451    $form_action_url = admin_url("media-upload.php?type=$type&tab=type&post_id=$post_id"); 
    16161452    $form_action_url = apply_filters('media_upload_form_url', $form_action_url, $type); 
    1617  
    1618     $callback = "type_url_form_$type"; 
    16191453?> 
    16201454 
     
    16221456<input type="hidden" name="post_id" id="post_id" value="<?php echo (int) $post_id; ?>" /> 
    16231457<?php wp_nonce_field('media-form'); ?> 
    1624  
    1625 <?php if ( is_callable($callback) ) { ?> 
    16261458 
    16271459<h3 class="media-title"><?php _e('Add media file from URL'); ?></h3> 
     
    16911523        var t = addExtImage, src = document.forms[0].src.value; 
    16921524 
    1693         if ( ! src ) { 
     1525        if ( ! src || jQuery('table.describe').hasClass('not-image') ) { 
    16941526            t.resetImageData(); 
    16951527            return false; 
    16961528        } 
     1529 
    16971530        document.getElementById('status_img').innerHTML = '<img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />'; 
    16981531        t.preloadImg = new Image(); 
     
    17021535    } 
    17031536} 
     1537 
     1538jQuery(document).ready( function($) { 
     1539    $('.media-types input').click( function() { 
     1540        $('table.describe').toggleClass('not-image', $('#not-image').prop('checked') ); 
     1541    }); 
     1542}); 
     1543 
    17041544//]]> 
    17051545</script> 
     
    17071547<div id="media-items"> 
    17081548<div class="media-item media-blank"> 
    1709 <?php echo apply_filters($callback, call_user_func($callback)); ?> 
     1549<?php echo apply_filters( 'type_url_form_media', type_url_form_image( $type ) ); ?> 
    17101550</div> 
    17111551</div> 
    17121552</form> 
    17131553<?php 
    1714     } else { 
    1715         wp_die( __('Unknown action.') ); 
    1716     } 
    17171554} 
    17181555 
     
    20281865 * @return unknown 
    20291866 */ 
    2030 function type_url_form_image() { 
     1867function type_url_form_image( $default_view = 'image' ) { 
    20311868    if ( !apply_filters( 'disable_captions', '' ) ) { 
    20321869        $caption = ' 
    2033         <tr> 
     1870        <tr class="image-only"> 
    20341871            <th valign="top" scope="row" class="label"> 
    20351872                <span class="alignleft"><label for="caption">' . __('Image Caption') . '</label></span> 
     
    20461883        $default_align = 'none'; 
    20471884 
     1885    if ( 'image' == $default_view ) { 
     1886        $view = 'image-only'; 
     1887        $table_class = ''; 
     1888    } else { 
     1889        $view = $table_class = 'not-image'; 
     1890    } 
     1891 
    20481892    return ' 
    2049     <h4 class="media-sub-title">' . __('Insert an image from another web site') . '</h4> 
    2050     <table class="describe"><tbody> 
     1893    <h4 class="media-sub-title">' . __('Insert media from another web site') . '</h4> 
     1894    <p class="media-types"><label><input type="radio" name="media_type" value="image" id="image-only"' . checked( 'image-only', $view, false ) . ' /> ' . __( 'Images' ) . '</label> &nbsp; &nbsp; <label><input type="radio" name="media_type" value="generic" id="not-image"' . checked( 'not-image', $view, false ) . ' /> ' . __( 'Audio, Video, or Files' ) . '</label></p> 
     1895    <table class="describe ' . $table_class . '"><tbody> 
    20511896        <tr> 
    20521897            <th valign="top" scope="row" class="label" style="width:130px;"> 
    2053                 <span class="alignleft"><label for="src">' . __('Image URL') . '</label></span> 
     1898                <span class="alignleft"><label for="src">' . __('URL') . '</label></span> 
    20541899                <span class="alignright"><abbr id="status_img" title="required" class="required">*</abbr></span> 
    20551900            </th> 
     
    20591904        <tr> 
    20601905            <th valign="top" scope="row" class="label"> 
    2061                 <span class="alignleft"><label for="title">' . __('Image Title') . '</label></span> 
     1906                <span class="alignleft"><label for="title">' . __('Title') . '</label></span> 
    20621907                <span class="alignright"><abbr title="required" class="required">*</abbr></span> 
    20631908            </th> 
     
    20651910        </tr> 
    20661911 
    2067         <tr> 
     1912        <tr class="not-image"><td></td><td><p class="help">' . __('Link text, e.g. &#8220;Ransom Demands (PDF)&#8221;') . '</p></td></tr> 
     1913 
     1914        <tr class="image-only"> 
    20681915            <th valign="top" scope="row" class="label"> 
    20691916                <span class="alignleft"><label for="alt">' . __('Alternate Text') . '</label></span> 
     
    20731920        </tr> 
    20741921        ' . $caption . ' 
    2075         <tr class="align"> 
     1922        <tr class="align image-only"> 
    20761923            <th valign="top" scope="row" class="label"><p><label for="align">' . __('Alignment') . '</label></p></th> 
    20771924            <td class="field"> 
     
    20871934        </tr> 
    20881935 
    2089         <tr> 
     1936        <tr class="image-only"> 
    20901937            <th valign="top" scope="row" class="label"> 
    20911938                <span class="alignleft"><label for="url">' . __('Link Image To:') . '</label></span> 
     
    20971944            <p class="help">' . __('Enter a link URL or click above for presets.') . '</p></td> 
    20981945        </tr> 
    2099     ' . _insert_into_post_button('image') . ' 
     1946        <tr class="image-only"> 
     1947            <td></td> 
     1948            <td> 
     1949                <input type="button" class="button" id="go_button" style="color:#bbb;" onclick="addExtImage.insert()" value="' . esc_attr__('Insert into Post') . '" /> 
     1950            </td> 
     1951        </tr> 
     1952        <tr class="not-image"> 
     1953            <td></td> 
     1954            <td> 
     1955                ' . get_submit_button( __( 'Insert into Post' ), 'button', 'insertonlybutton', false ) . ' 
     1956            </td> 
     1957        </tr> 
    21001958    </tbody></table> 
    21011959'; 
    21021960 
    21031961} 
    2104  
    2105 /** 
    2106  * {@internal Missing Short Description}} 
    2107  * 
    2108  * @since 2.7.0 
    2109  * 
    2110  * @return unknown 
    2111  */ 
    2112 function type_url_form_audio() { 
    2113     return ' 
    2114     <table class="describe"><tbody> 
    2115         <tr> 
    2116             <th valign="top" scope="row" class="label"> 
    2117                 <span class="alignleft"><label for="insertonly[href]">' . __('Audio File URL') . '</label></span> 
    2118                 <span class="alignright"><abbr title="required" class="required">*</abbr></span> 
    2119             </th> 
    2120             <td class="field"><input id="insertonly[href]" name="insertonly[href]" value="" type="text" aria-required="true"></td> 
    2121         </tr> 
    2122         <tr> 
    2123             <th valign="top" scope="row" class="label"> 
    2124                 <span class="alignleft"><label for="insertonly[title]">' . __('Title') . '</label></span> 
    2125                 <span class="alignright"><abbr title="required" class="required">*</abbr></span> 
    2126             </th> 
    2127             <td class="field"><input id="insertonly[title]" name="insertonly[title]" value="" type="text" aria-required="true"></td> 
    2128         </tr> 
    2129         <tr><td></td><td class="help">' . __('Link text, e.g. &#8220;Still Alive by Jonathan Coulton&#8221;') . '</td></tr> 
    2130     ' . _insert_into_post_button('audio') . ' 
    2131     </tbody></table> 
    2132 '; 
    2133 } 
    2134  
    2135 /** 
    2136  * {@internal Missing Short Description}} 
    2137  * 
    2138  * @since 2.7.0 
    2139  * 
    2140  * @return unknown 
    2141  */ 
    2142 function type_url_form_video() { 
    2143     return ' 
    2144     <table class="describe"><tbody> 
    2145         <tr> 
    2146             <th valign="top" scope="row" class="label"> 
    2147                 <span class="alignleft"><label for="insertonly[href]">' . __('Video URL') . '</label></span> 
    2148                 <span class="alignright"><abbr title="required" class="required">*</abbr></span> 
    2149             </th> 
    2150             <td class="field"><input id="insertonly[href]" name="insertonly[href]" value="" type="text" aria-required="true"></td> 
    2151         </tr> 
    2152         <tr> 
    2153             <th valign="top" scope="row" class="label"> 
    2154                 <span class="alignleft"><label for="insertonly[title]">' . __('Title') . '</label></span> 
    2155                 <span class="alignright"><abbr title="required" class="required">*</abbr></span> 
    2156             </th> 
    2157             <td class="field"><input id="insertonly[title]" name="insertonly[title]" value="" type="text" aria-required="true"></td> 
    2158         </tr> 
    2159         <tr><td></td><td class="help">' . __('Link text, e.g. &#8220;Lucy on YouTube&#8221;') . '</td></tr> 
    2160     ' . _insert_into_post_button('video') . ' 
    2161     </tbody></table> 
    2162 '; 
    2163 } 
    2164  
    2165 /** 
    2166  * {@internal Missing Short Description}} 
    2167  * 
    2168  * @since 2.7.0 
    2169  * 
    2170  * @return unknown 
    2171  */ 
    2172 function type_url_form_file() { 
    2173     return ' 
    2174     <table class="describe"><tbody> 
    2175         <tr> 
    2176             <th valign="top" scope="row" class="label"> 
    2177                 <span class="alignleft"><label for="insertonly[href]">' . __('URL') . '</label></span> 
    2178                 <span class="alignright"><abbr title="required" class="required">*</abbr></span> 
    2179             </th> 
    2180             <td class="field"><input id="insertonly[href]" name="insertonly[href]" value="" type="text" aria-required="true"></td> 
    2181         </tr> 
    2182         <tr> 
    2183             <th valign="top" scope="row" class="label"> 
    2184                 <span class="alignleft"><label for="insertonly[title]">' . __('Title') . '</label></span> 
    2185                 <span class="alignright"><abbr title="required" class="required">*</abbr></span> 
    2186             </th> 
    2187             <td class="field"><input id="insertonly[title]" name="insertonly[title]" value="" type="text" aria-required="true"></td> 
    2188         </tr> 
    2189         <tr><td></td><td class="help">' . __('Link text, e.g. &#8220;Ransom Demands (PDF)&#8221;') . '</td></tr> 
    2190     ' . _insert_into_post_button('file') . ' 
    2191     </tbody></table> 
    2192 '; 
    2193 } 
    2194  
    21951962 
    21961963function _insert_into_post_button($type) { 
     
    22412008 
    22422009add_action('media_upload_image', 'media_upload_image'); 
    2243 add_action('media_upload_audio', 'media_upload_audio'); 
    2244 add_action('media_upload_video', 'media_upload_video'); 
    2245 add_action('media_upload_file', 'media_upload_file'); 
     2010add_action('media_upload_audio', 'media_upload_image'); 
     2011add_action('media_upload_video', 'media_upload_image'); 
     2012add_action('media_upload_file', 'media_upload_image'); 
    22462013 
    22472014add_filter('media_upload_gallery', 'media_upload_gallery'); 
Note: See TracChangeset for help on using the changeset viewer.