Make WordPress Core

Ticket #23926: 23926.5.diff

File 23926.5.diff, 3.7 KB (added by wonderboymusic, 12 years ago)
  • wp-admin/includes/media.php

    diff --git wp-admin/includes/media.php wp-admin/includes/media.php
    index 573c4db..70c400b 100644
    function media_handle_upload($file_id, $post_id, $post_data = array(), $override 
    224224        $title = $name;
    225225        $content = '';
    226226
     227        if ( preg_match( '#^audio#', $type ) ) {
     228                $meta = wp_read_audio_metadata( $file );
     229                if ( ! empty( $meta['title'] ) )
     230                        $title = $meta['title'];
     231
     232                $content = '';
     233
     234                if ( ! empty( $title ) )
     235                        $content .= sprintf( '"%s"', $title );
     236
     237                if ( ! empty( $meta['album'] ) )
     238                        $content .= sprintf( __( ' from %s' ), $meta['album'] );
     239
     240                if ( ! empty( $meta['artist'] ) )
     241                        $content .= sprintf( __( ' by %s' ), $meta['artist'] );
     242
     243                if ( ! empty( $content ) )
     244                        $content .= '. ';
     245
     246                if ( ! empty( $meta['year'] ) )
     247                        $content .= sprintf( __( 'Released: %d. ' ), $meta['year'] );
     248
     249                if ( ! empty( $meta['track_number'] ) ) {
     250                        list( $track, $length ) = explode( '/', $meta['track_number'] );
     251                        $content .= sprintf( __( 'Track %d of %d. ' ), $track, $length );
     252                }
     253
     254                if ( ! empty( $meta['genre'] ) )
     255                        $content .= sprintf( __( 'Genre: %s.' ), $meta['genre'] );
     256
    227257        // use image exif/iptc data for title and caption defaults if possible
    228         if ( $image_meta = @wp_read_image_metadata($file) ) {
     258        } elseif ( $image_meta = @wp_read_image_metadata( $file ) ) {
    229259                if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) )
    230260                        $title = $image_meta['title'];
    231261                if ( trim( $image_meta['caption'] ) )
    function edit_form_image_editor() { 
    23132343        elseif ( $attachment_id && 0 === strpos( $post->post_mime_type, 'video/' ) ):
    23142344
    23152345                $meta = wp_get_attachment_metadata( $attachment_id );
     2346                $w = ! empty( $meta['width'] ) ? min( $meta['width'], 600 ) : 0;
     2347                $h = 0;
     2348                if ( ! empty( $meta['height'] ) )
     2349                        $h = $meta['height'];
     2350                if ( $w < $meta['width'] )
     2351                        $h = ceil( $w * 0.6 );
     2352
    23162353                $shortcode = sprintf( '[video src="%s"%s%s]',
    23172354                        $att_url,
    2318                         empty( $meta['width'] ) ? '' : sprintf( ' width="%d"', $meta['width'] ),
    2319                         empty( $meta['height'] ) ? '' : sprintf( ' height="%d"', $meta['height'] )
     2355                        empty( $meta['width'] ) ? '' : sprintf( ' width="%d"', $w ),
     2356                        empty( $meta['height'] ) ? '' : sprintf( ' height="%d"', $h )
    23202357                );
    23212358                echo do_shortcode( $shortcode );
    23222359
    function attachment_submitbox_metadata() { 
    23902427                ?></strong>
    23912428        </div>
    23922429
    2393 <?php if ( $media_dims ) : ?>
     2430<?php
     2431        if ( preg_match( '#^audio|video#', $post->post_mime_type ) ):
     2432
     2433                $fields = array(
     2434                        'mime_type' => __( 'Mime-type:' ),
     2435                        'year' => __( 'Year:' ),
     2436                        'genre' => __( 'Genre:' ),
     2437                        'length_formatted' => __( 'Length:' ),
     2438                );
     2439
     2440                foreach ( $fields as $key => $label ):
     2441                        if ( ! empty( $meta[$key] ) ) : ?>
     2442                <div class="misc-pub-section">
     2443                        <?php echo $label ?> <strong><?php echo $meta[$key]; ?></strong>
     2444                </div>
     2445        <?php
     2446                        endif;
     2447                endforeach;
     2448
     2449                if ( ! empty( $meta['bitrate'] ) ) : ?>
     2450                <div class="misc-pub-section">
     2451                        <?php _e( 'Bitrate:' ); ?> <strong><?php
     2452                                echo $meta['bitrate'] / 1000, 'kb/s';
     2453
     2454                                if ( ! empty( $meta['bitrate_mode'] ) )
     2455                                        echo ' ', strtoupper( $meta['bitrate_mode'] );
     2456
     2457                        ?></strong>
     2458                </div>
     2459        <?php
     2460                endif;
     2461
     2462                $audio_fields = array(
     2463                        'dataformat' => __( 'Audio Format:' ),
     2464                        'codec' => __( 'Audio Codec:' )
     2465                );
     2466
     2467                foreach ( $audio_fields as $key => $label ):
     2468                        if ( ! empty( $meta['audio'][$key] ) ) : ?>
     2469                <div class="misc-pub-section">
     2470                        <?php echo $label; ?> <strong><?php echo $meta['audio'][$key]; ?></strong>
     2471                </div>
     2472        <?php
     2473                        endif;
     2474                endforeach;
     2475
     2476        endif;
     2477
     2478        if ( $media_dims ) : ?>
    23942479        <div class="misc-pub-section">
    23952480                <?php _e( 'Dimensions:' ); ?> <strong><?php echo $media_dims; ?></strong>
    23962481        </div>