WordPress.org

Make WordPress Core

Ticket #24449: 24449.7.diff

File 24449.7.diff, 4.2 KB (added by nacin, 9 months ago)
  • wp-includes/js/media-editor.js

     
    9797                }, 
    9898 
    9999                audio: function( props, attachment ) { 
    100                         return wp.media.string._audioVideo( 'audio', props, attachment ); 
     100                        var shortcode, html, extension; 
     101 
     102                        props = wp.media.string.props( props, attachment ); 
     103                        if ( props.link !== 'embed' ) 
     104                                return wp.media.string.link( props ); 
     105 
     106                        shortcode = {}; 
     107                        extension = attachment.filename.split('.').pop(); 
     108 
     109                        // Render unsupported audio files as links. 
     110                        if ( _.contains( wp.media.view.settings.audioExts, extension ) ) 
     111                                shortcode[extension] = attachment.url; 
     112                        else 
     113                                return wp.media.string.link( props ); 
     114 
     115                        html = wp.shortcode.string({ 
     116                                tag:     'audio', 
     117                                attrs:   shortcode 
     118                        }); 
     119 
     120                        return html; 
    101121                }, 
    102122 
    103123                video: function( props, attachment ) { 
    104                         return wp.media.string._audioVideo( 'video', props, attachment ); 
    105                 }, 
    106  
    107                 _audioVideo: function( type, props, attachment ) { 
    108124                        var shortcode, html, extension; 
    109125 
    110126                        props = wp.media.string.props( props, attachment ); 
     
    113129 
    114130                        shortcode = {}; 
    115131 
    116                         if ( 'video' === type ) { 
    117                                 if ( attachment.width ) 
    118                                         shortcode.width = attachment.width; 
     132                        if ( attachment.width ) 
     133                                shortcode.width = attachment.width; 
    119134 
    120                                 if ( attachment.height ) 
    121                                         shortcode.height = attachment.height; 
    122                         } 
     135                        if ( attachment.height ) 
     136                                shortcode.height = attachment.height; 
    123137 
    124138                        extension = attachment.filename.split('.').pop(); 
    125139 
    126                         if ( _.contains( wp.media.view.settings.embedExts, extension ) ) { 
     140                        // Render unsupported video files as links. 
     141                        if ( _.contains( wp.media.view.settings.videoExts, extension ) ) 
    127142                                shortcode[extension] = attachment.url; 
    128                         } else { 
    129                                 // Render unsupported audio and video files as links. 
     143                        else 
    130144                                return wp.media.string.link( props ); 
    131                         } 
    132145 
    133146                        html = wp.shortcode.string({ 
    134                                 tag:     type, 
     147                                tag:     'video', 
    135148                                attrs:   shortcode 
    136149                        }); 
    137150 
  • wp-includes/js/media-views.js

     
    462462                }, 
    463463 
    464464                canEmbed: function( attachment ) { 
    465                         var type = attachment.get('type'); 
    466                         if ( type !== 'audio' && type !== 'video' ) 
    467                                 return false; 
     465                        var type, ext; 
     466                        // If uploading, we know the filename but not the mime type. 
     467                        if ( ! attachment.get('uploading') ) { 
     468                                type = attachment.get('type'); 
     469                                if ( type !== 'audio' && type !== 'video' ) 
     470                                        return false; 
     471                        } 
    468472 
    469                         return _.contains( media.view.settings.embedExts, attachment.get('filename').split('.').pop() ); 
     473                        ext = attachment.get('filename').split('.').pop(); 
     474                        if ( _.contains( media.view.settings.audioExts, ext ) ) 
     475                                return 'audio'; 
     476                        if ( _.contains( media.view.settings.videoExts, ext ) ) 
     477                                return 'video'; 
     478                        return false; 
    470479                }, 
    471480 
    472481                syncSelection: function() { 
  • wp-includes/media-template.php

     
    297297                                                data-user-setting="urlbutton" 
    298298                                        <# } #>> 
    299299 
    300                                 <# if ( data.model.canEmbed && 'audio' === data.type ) { #> 
     300                                <# if ( data.model.canEmbed === 'audio' ) { #> 
    301301                                        <option value="embed" selected> 
    302302                                                <?php esc_attr_e('Embed Audio Player'); ?> 
    303303                                        </option> 
    304304                                        <option value="file"> 
    305                                 <# } else if ( data.model.canEmbed && 'video' === data.type ) { #> 
     305                                <# } else if ( data.model.canEmbed === 'video' ) { #> 
    306306                                        <option value="embed" selected> 
    307307                                                <?php esc_attr_e('Embed Video Player'); ?> 
    308308                                        </option> 
  • wp-includes/media.php

     
    17581758                        'id' => 0, 
    17591759                ), 
    17601760                'defaultProps' => $props, 
    1761                 'embedExts'    => array_merge( wp_get_audio_extensions(), wp_get_video_extensions() ), 
     1761                'audioExts'    => wp_get_audio_extensions(), 
     1762                'videoExts'    => wp_get_video_extensions(), 
    17621763        ); 
    17631764 
    17641765        $post = null;