WordPress.org

Make WordPress Core

Ticket #19570: 19570.21.diff

File 19570.21.diff, 27.3 KB (added by wonderboymusic, 9 years ago)
  • wp-admin/css/wp-admin-rtl.css

    diff --git wp-admin/css/wp-admin-rtl.css wp-admin/css/wp-admin-rtl.css
    index ba157f5..e04fafd 100644
    TABLE OF CONTENTS: 
    2323        11.1 - Custom Fields
    2424        11.2 - Post Revisions
    2525        11.3 - Featured Images
     26        11.4 - Post Format Selection
    262712.0 - Categories
    272813.0 - Tags
    282914.0 - Media Screen
    table.diff td, table.diff th { 
    967968}
    968969
    969970/*------------------------------------------------------------------------------
     971  11.4 - Post format selection
     972------------------------------------------------------------------------------*/
     973
     974.post-format-options a {
     975        border-left: 1px solid #ebebeb;
     976        border-right: none;
     977}
     978
     979.post-format-options a:first-child {
     980        -webkit-border-bottom-left-radius: 0;
     981        -webkit-border-top-left-radius: 0;
     982        border-bottom-left-radius: 0;
     983        border-top-left-radius: 0;
     984}
     985
     986.post-format-options a:last-child {
     987        -webkit-border-bottom-right-radius: 3px;
     988        -webkit-border-top-right-radius: 3px;
     989        border-bottom-right-radius: 3px;
     990        border-top-right-radius: 3px;
     991}
     992
     993.post-format-tip {
     994        float: left;
     995}
     996
     997/*------------------------------------------------------------------------------
    970998  12.0 - Categories
    971999------------------------------------------------------------------------------*/
    9721000
  • wp-admin/css/wp-admin.css

    diff --git wp-admin/css/wp-admin.css wp-admin/css/wp-admin.css
    index 7fb44bc..5fd2a07 100644
    TABLE OF CONTENTS: 
    2424        11.1 - Custom Fields
    2525        11.2 - Post Revisions
    2626        11.3 - Featured Images
     27        11.4 - Post Format Selection
    272812.0 - Categories
    282913.0 - Tags
    293014.0 - Media Screen
    input#link_url { 
    31503151        display: none;
    31513152}
    31523153
     3154.wp-format-gallery .post-formats-fields,
     3155.wp-format-image .post-formats-fields,
    31533156.wp-format-link .post-formats-fields,
    31543157.wp-format-quote .post-formats-fields,
    31553158.wp-format-video .post-formats-fields,
    31563159.wp-format-audio .post-formats-fields,
     3160.wp-format-gallery .field.wp-format-gallery,
     3161.wp-format-image .field.wp-format-image,
    31573162.wp-format-chat .field.wp-format-chat,
    31583163.wp-format-link .field.wp-format-link,
    31593164.wp-format-quote .field.wp-format-quote,
    input#link_url { 
    31653170.post-formats-fields .field {
    31663171        display: none;
    31673172        margin-bottom: 10px;
     3173        overflow: hidden;
    31683174}
    31693175
    31703176.post-formats-fields input,
    input#link_url { 
    31733179        font-size: 1.2em;
    31743180}
    31753181
     3182.wp-format-media-holder {
     3183        float: left;
     3184        overflow: hidden;
     3185        width: 40%;
     3186        height: 200px;
     3187        border: 1px dashed #dfdfdf;
     3188        background: #f5f5f5 url(../images/media-button-2x.png) no-repeat 50% 25%;
     3189}
     3190
     3191.wp-format-media-holder.empty {
     3192        height: auto;
     3193        padding: 55px 0 20px;
     3194}
     3195
     3196.wp-format-media-holder:hover {
     3197        background-color: #eee;
     3198}
     3199
     3200.wp-format-media-preview {
     3201        margin-bottom: 20px;
     3202}
     3203
     3204.mejs-audio audio,
     3205.mejs-video video {
     3206        display: block;
     3207}
     3208
     3209.wp-format-media-select {
     3210        display: block;
     3211        height: 200px;
     3212        text-align: center;
     3213}
     3214
     3215.wp-format-media-select img {
     3216        max-width: 100%;
     3217        max-height: 100%;
     3218}
     3219
     3220.empty .wp-format-media-select {
     3221        height: 20px;
     3222}
     3223
     3224.empty .wp-format-media-metaedit {
     3225        height: 20px;
     3226        display: block;
     3227        text-align: center;
     3228}
     3229
     3230.edit-format-preview {
     3231        display: block;
     3232        margin: 5px 0;
     3233}
     3234
     3235#wp_format_audio, #wp_format_video {
     3236        float: left;
     3237        margin-right: 23px;
     3238        max-width: 50%;
     3239        min-height: 97px;
     3240}
     3241
    31763242/* Post Screen */
    31773243#post-body #normal-sortables {
    31783244        min-height: 50px;
    body .ui-tooltip { 
    40664132}
    40674133
    40684134/*------------------------------------------------------------------------------
     4135  11.4 - Post format selection
     4136------------------------------------------------------------------------------*/
     4137
     4138#icon-edit.standard {
     4139        background: url(../images/post-formats32.png) no-repeat -3px -4px;
     4140}
     4141
     4142#icon-edit.image {
     4143        background: url(../images/post-formats32.png) no-repeat  -43px -4px;
     4144}
     4145
     4146#icon-edit.gallery {
     4147        background: url(../images/post-formats32.png) no-repeat -83px -4px;
     4148}
     4149
     4150#icon-edit.audio {
     4151        background: url(../images/post-formats32.png) no-repeat -123px -4px;
     4152}
     4153
     4154#icon-edit.video {
     4155        background: url(../images/post-formats32.png) no-repeat -163px -4px;
     4156}
     4157
     4158#icon-edit.chat {
     4159        background: url(../images/post-formats32.png) no-repeat -202px -4px;
     4160}
     4161
     4162#icon-edit.status {
     4163        background: url(../images/post-formats32.png) no-repeat -242px -4px;
     4164}
     4165
     4166#icon-edit.aside {
     4167        background: url(../images/post-formats32.png) no-repeat -282px -4px;
     4168}
     4169
     4170#icon-edit.quote {
     4171        background: url(../images/post-formats32.png) no-repeat -322px -4px;
     4172}
     4173
     4174#icon-edit.link {
     4175        background: url(../images/post-formats32.png) no-repeat -362px -4px;
     4176}
     4177
     4178.post-format-description {
     4179        color: #666;
     4180        display: none;
     4181        margin: 10px 0;
     4182}
     4183
     4184.post-format-options {
     4185        height: 29px;
     4186        background: #f9f9f9;
     4187        border: 1px solid #dfdfdf;
     4188        -webkit-border-radius: 3px;
     4189        border-radius: 3px;
     4190        margin: 0 0 9px 1px;
     4191        padding: 0;
     4192}
     4193
     4194.post-format-options a {
     4195        border-right: 1px solid #ebebeb;
     4196        display: inline-block;
     4197        height: 16px;
     4198        width: 16px;
     4199        padding: 6px;
     4200        position: relative;
     4201        text-decoration: none;
     4202}
     4203
     4204.post-format-options a:first-child {
     4205        -webkit-border-bottom-left-radius: 3px;
     4206        -webkit-border-top-left-radius: 3px;
     4207        border-bottom-left-radius: 3px;
     4208        border-top-left-radius: 3px;
     4209}
     4210
     4211.post-format-options a.active,
     4212.post-format-options a:focus,
     4213.post-format-options a:hover {
     4214        background: #fff;
     4215        outline: none;
     4216        opacity: 1;
     4217}
     4218
     4219.post-format-options a div {
     4220        height: 16px;
     4221        width: 16px;
     4222        opacity: 0.4;
     4223}
     4224
     4225.post-format-options a.active div,
     4226.post-format-options a:focus div,
     4227.post-format-options a:hover div {
     4228        opacity: 1;
     4229}
     4230
     4231.post-format-options .standard {
     4232        background: url(../images/post-formats.png) no-repeat -8px -8px;
     4233}
     4234
     4235.post-format-options .image {
     4236        background: url(../images/post-formats.png) no-repeat -40px -8px;
     4237}
     4238
     4239.post-format-options .gallery {
     4240        background: url(../images/post-formats.png) no-repeat -72px -8px;
     4241}
     4242
     4243.post-format-options .audio {
     4244        background: url(../images/post-formats.png) no-repeat -104px -8px;
     4245}
     4246
     4247.post-format-options .video {
     4248        background: url(../images/post-formats.png) no-repeat -136px -8px;
     4249}
     4250
     4251.post-format-options .chat {
     4252        background: url(../images/post-formats.png) no-repeat -168px -8px;
     4253}
     4254
     4255.post-format-options .status {
     4256        background: url(../images/post-formats.png) no-repeat -200px -8px;
     4257}
     4258
     4259.post-format-options .aside {
     4260        background: url(../images/post-formats.png) no-repeat -232px -8px;
     4261}
     4262
     4263.post-format-options .quote {
     4264        background: url(../images/post-formats.png) no-repeat -264px -8px;
     4265}
     4266
     4267.post-format-options .link {
     4268        background: url(../images/post-formats.png) no-repeat -296px -8px;
     4269}
     4270
     4271.post-format-tip {
     4272        color: #999;
     4273        font-size: 14px;
     4274        float: right;
     4275        padding: 6px 10px;
     4276        text-transform: capitalize;
     4277}
     4278
     4279/*------------------------------------------------------------------------------
    40694280  12.0 - Categories
    40704281------------------------------------------------------------------------------*/
    40714282
  • wp-admin/edit-form-advanced.php

    diff --git wp-admin/edit-form-advanced.php wp-admin/edit-form-advanced.php
    index c7e8dc6..b7d6d19 100644
    foreach ( get_object_taxonomies( $post ) as $tax_name ) { 
    130130$format_class = '';
    131131if ( post_type_supports( $post_type, 'post-formats' ) ) {
    132132        wp_enqueue_script( 'post-formats' );
     133        wp_enqueue_script( 'wp-mediaelement' );
     134        wp_enqueue_style( 'wp-mediaelement' );
    133135        $post_format = get_post_format();
    134136
    135137        if ( ! $post_format )
    if ( post_type_supports( $post_type, 'post-formats' ) ) { 
    138140        $format_class = " class='wp-format-{$post_format}'";
    139141}
    140142
     143if ( post_type_supports( $post_type, 'post-formats' ) ) {
     144        $all_post_formats = array(
     145                'standard' => array (
     146                        'description' => __('Add a title and description for your post below.')
     147                ),
     148                'image' => array (
     149                        'description' => __('Select an image for your post below.')
     150                ),
     151                'gallery' => array (
     152                        'description' => __('Use the Add Media button below to select images for your gallery.')
     153                ),
     154                'link' => array (
     155                        'description' => __('Add a link URL below.')
     156                ),
     157                'video' => array (
     158                        'description' => __('Paste a video embed URL below, or upload a new video.')
     159                ),
     160                'audio' => array (
     161                        'description' => __('Paste an audio embed URL below, or upload a new audio file.')
     162                ),
     163                'chat' => array (
     164                        'description' => __('Paste a chat transcript below.')
     165                ),
     166                'status' => array (
     167                        'description' => __('What are you up to?  Enter your status message below.')
     168                ),
     169                'quote' => array (
     170                        'description' => __('Enter a quote below.')
     171                ),
     172                'aside' => array (
     173                        'description' => __('Enter a quick thought or side topic below.')
     174                )
     175        );
     176        $post_format_options = '';
     177
     178        foreach ( $all_post_formats as $slug => $attr ) {
     179                $class = '';
     180                if ( $post_format == $slug ) {
     181                        $class = 'class="active"';
     182                        $active_post_type_slug = $slug;
     183                        $active_post_type_label = ucfirst( $slug );
     184                        $active_post_format_description = $attr['description'];
     185                }
     186
     187                $post_format_options .= '<a ' . $class . ' href="?format=' . $slug . '" data-description="' . $attr['description'] . '" data-wp-format="' . $slug . '" title="' . ucfirst( sprintf( __( '%s Post' ), $slug ) ) . '"><div class="' . $slug . '"></div></a>';
     188        }
     189}
     190
     191$current_post_format = array( 'currentPostFormat' => esc_html( $active_post_type_slug ) );
     192wp_localize_script( 'post', 'postFormats', $current_post_format );
     193
    141194if ( post_type_supports($post_type, 'page-attributes') )
    142195        add_meta_box('pageparentdiv', 'page' == $post_type ? __('Page Attributes') : __('Attributes'), 'page_attributes_meta_box', null, 'side', 'core');
    143196
    wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); 
    337390?>
    338391
    339392<div id="poststuff">
    340 
    341 <?php
    342 if ( post_type_supports( $post_type, 'post-formats' ) ) {
    343         $all_post_formats = get_post_format_strings();
    344 
    345         echo '<h2 class="nav-tab-wrapper post-format-select">';
    346 
    347         foreach ( $all_post_formats as $slug => $label ) {
    348                 if ( $post_format == $slug )
    349                         $class = 'nav-tab nav-tab-active';
    350                 else
    351                         $class = 'nav-tab';
    352 
    353                 echo '<a class="' . $class . '" href="?format=' . $slug . '" data-wp-format="' . $slug . '">' . $label . '</a>';
    354         }
    355 
    356         echo '</h2>';
    357 }
    358 ?>
    359 
    360393<div id="post-body" class="metabox-holder columns-<?php echo 1 == get_current_screen()->get_columns() ? '1' : '2'; ?>">
    361394<div id="post-body-content"<?php echo $format_class; ?>>
    362395
     396<?php if ( ! empty( $post_format_options ) ) : ?>
     397<div class="post-format-options">
     398        <span class="post-format-tip">Standard Post</span>
     399        <?php echo $post_format_options; ?>
     400</div>
     401<?php endif; ?>
     402
    363403<?php if ( post_type_supports($post_type, 'title') ) { ?>
    364404<div id="titlediv">
    365405<div id="titlewrap">
    if ( has_action( 'edit_form_after_title' ) ) { 
    398438}
    399439
    400440// post format fields
    401 if ( post_type_supports( $post_type, 'post-formats' ) ) {
    402         $format_meta = get_post_format_meta( $post_ID );
    403 ?>
    404 <div class="post-formats-fields edit-form-section">
    405 
    406 <input type="hidden" name="post_format" id="post_format" value="<?php echo esc_attr( $post_format ); ?>" />
    407 
    408 <div class="field wp-format-quote">
    409         <label for="_wp_format_quote" class="screen-reader-text"><?php _e( 'Quote' ); ?>:</label>
    410         <textarea name="_wp_format_quote" placeholder="<?php esc_attr_e( 'Quote' ); ?>" class="widefat"><?php echo esc_textarea( $format_meta['quote'] ); ?></textarea>
    411 </div>
    412 
    413 <div class="field wp-format-quote">
    414         <label for="_wp_format_quote_source" class="screen-reader-text"><?php _e( 'Quote source' ); ?>:</label>
    415         <input type="text" name="_wp_format_quote_source" value="<?php echo esc_attr( $format_meta['quote_source'] ); ?>" placeholder="<?php esc_attr_e( 'Quote source' ); ?>" class="widefat" />
    416 </div>
    417 
    418 <div class="field wp-format-link wp-format-quote">
    419         <label for="_wp_format_url" class="screen-reader-text"><?php _e( 'Link URL' ); ?>:</label>
    420         <input type="text" name="_wp_format_url" value="<?php echo esc_url( $format_meta['url'] ); ?>" placeholder="<?php esc_attr_e( 'Link URL' ); ?>" class="widefat" />
    421 </div>
    422 
    423 <div class="field wp-format-audio wp-format-video">
    424         <label for="_wp_format_media" class="screen-reader-text"><?php _e( 'Embed code or URL' ); ?>:</label>
    425         <textarea name="_wp_format_media" placeholder="<?php esc_attr_e( 'Embed code or URL' ); ?>" class="widefat"><?php echo esc_textarea( $format_meta['media'] ); ?></textarea>
    426 </div>
    427 
    428 </div>
    429 <?php
    430 }
     441if ( post_type_supports( $post_type, 'post-formats' ) )
     442        require_once( './includes/post-formats.php' );
    431443
    432444if ( post_type_supports($post_type, 'editor') ) {
    433445?>
  • new file wp-admin/includes/post-formats.php

    diff --git wp-admin/includes/post-formats.php wp-admin/includes/post-formats.php
    new file mode 100644
    index 0000000..dcb4940
    - +  
     1<?php
     2global $wp_embed;
     3$format_meta = get_post_format_meta( $post_ID );
     4
     5?>
     6<div class="post-format-description"></div>
     7<div class="post-formats-fields edit-form-section">
     8
     9        <input type="hidden" name="post_format" id="post_format" value="<?php echo esc_attr( $post_format ); ?>" />
     10
     11        <div class="field wp-format-quote">
     12                <label for="_wp_format_quote" class="screen-reader-text"><?php _e( 'Quote' ); ?>:</label>
     13                <textarea name="_wp_format_quote" placeholder="<?php esc_attr_e( 'Quote' ); ?>" class="widefat"><?php echo esc_textarea( $format_meta['quote'] ); ?></textarea>
     14        </div>
     15
     16        <div class="field wp-format-quote">
     17                <label for="_wp_format_quote_source" class="screen-reader-text"><?php _e( 'Quote source' ); ?>:</label>
     18                <input type="text" name="_wp_format_quote_source" value="<?php echo esc_attr( $format_meta['quote_source'] ); ?>" placeholder="<?php esc_attr_e( 'Quote source' ); ?>" class="widefat" />
     19        </div>
     20
     21        <?php
     22        $image = false;
     23        if ( isset( $format_meta['image'] ) )
     24                $image = is_numeric( $format_meta['image'] ) ? wp_get_attachment_url( $format_meta['image'] ) : $format_meta['image'];
     25        ?>
     26        <div class="field wp-format-image">
     27                <div data-format="image" class="wp-format-media-holder hide-if-no-js<?php if ( ! $image ) echo ' empty'; ?>">
     28                        <a href="#" class="wp-format-media-select"
     29                                data-choose="<?php esc_attr_e( 'Choose an Image' ); ?>"
     30                                data-update="<?php esc_attr_e( 'Select Image' ); ?>">
     31                                <?php
     32                                        if ( $image )
     33                                                echo '<img src="' . esc_url( $image ) . '" />';
     34                                        else
     35                                                _e( 'Select Image' );
     36                                ?>
     37                        </a>
     38                </div>
     39                <label for="_wp_format_image" class="screen-reader-text"><?php _e( 'Image URL' ); ?>:</label>
     40                <input id="wp_format_image" type="hidden" name="_wp_format_image" value="<?php echo esc_url( $format_meta['image'] ); ?>" placeholder="<?php esc_attr_e( 'Image URL' ); ?>" class="widefat" />
     41        </div>
     42
     43        <div class="field wp-format-link wp-format-quote wp-format-image">
     44                <label for="_wp_format_url" class="screen-reader-text"><?php _e( 'Link URL' ); ?>:</label>
     45                <input type="text" name="_wp_format_url" value="<?php echo esc_url( $format_meta['url'] ); ?>" placeholder="<?php esc_attr_e( 'Link URL' ); ?>" class="widefat" />
     46        </div>
     47
     48        <?php
     49        $show_video_preview = ! empty( $format_meta['video'] );
     50        ?>
     51        <div class="field wp-format-video<?php if ( $show_video_preview ) echo ' has-media-preview' ?>">
     52                <?php if ( $show_video_preview ): ?>
     53                <div id="video-preview" class="wp-format-media-preview">
     54                        <?php
     55                                if ( is_numeric( $format_meta['video'] ) ) {
     56                                        $url = wp_get_attachment_url( $format_meta['video'] );
     57                                        echo do_shortcode( sprintf( '[video src="%s"]', $url ) );
     58                                } elseif ( preg_match( '/' . get_shortcode_regex() . '/s', $format_meta['video'] ) ) {
     59                                        echo do_shortcode( $format_meta['video'] );
     60                                } elseif ( ! preg_match( '#<[^>]+>#', $format_meta['video'] ) ) {
     61                                        if ( strstr( $format_meta['video'], home_url() ) )
     62                                                echo do_shortcode( sprintf( '[video src="%s"]', $format_meta['video'] ) );
     63                                        else
     64                                                echo $wp_embed->autoembed( $format_meta['video'] );
     65                                } else {
     66                                        echo $format_meta['video'];
     67                                }
     68                        ?>
     69                </div>
     70                <?php endif ?>
     71                <label for="_wp_format_video" class="screen-reader-text"><?php _e( 'Video Embed Code or URL' ); ?>:</label>
     72                <textarea id="wp_format_video" type="text" name="_wp_format_video" placeholder="<?php esc_attr_e( 'Video Embed Code or URL' ); ?>" class="widefat"><?php esc_html_e( $format_meta['video'] ); ?></textarea>
     73                <div data-format="video" class="wp-format-media-holder hide-if-no-js<?php if ( ! $image ) echo ' empty'; ?>">
     74                        <a href="#" class="wp-format-media-select"
     75                                data-choose="<?php esc_attr_e( 'Choose a Video' ); ?>"
     76                                data-update="<?php esc_attr_e( 'Select Video' ); ?>">
     77                                <?php _e( 'Select Video From Media Library' ) ?>
     78                        </a>
     79                </div>
     80        </div>
     81
     82        <?php
     83        $show_audio_preview = ! empty( $format_meta['audio'] );
     84        ?>
     85        <div class="field wp-format-audio<?php if ( $show_audio_preview ) echo ' has-media-preview' ?>">
     86                <?php if ( $show_audio_preview ): ?>
     87                <div id="audio-preview" class="wp-format-media-preview">
     88                        <?php
     89                                if ( is_numeric( $format_meta['audio'] ) ) {
     90                                        $url = wp_get_attachment_url( $format_meta['audio'] );
     91                                        echo do_shortcode( sprintf( '[audio src="%s"]', $url ) );
     92                                } elseif ( preg_match( '/' . get_shortcode_regex() . '/s', $format_meta['audio'] ) ) {
     93                                        echo do_shortcode( $format_meta['audio'] );
     94                                } elseif ( ! preg_match( '#<[^>]+>#', $format_meta['audio'] ) ) {
     95                                        if ( strstr( $format_meta['audio'], home_url() ) )
     96                                                echo do_shortcode( sprintf( '[audio src="%s"]', $format_meta['audio'] ) );
     97                                        else
     98                                                echo $wp_embed->autoembed( $format_meta['audio'] );
     99                                } else {
     100                                        echo $format_meta['audio'];
     101                                }
     102                        ?>
     103                </div>
     104                <?php endif ?>
     105                <label for="_wp_format_audio" class="screen-reader-text"><?php _e( 'Audio Embed Code or URL' ); ?>:</label>
     106                <textarea id="wp_format_audio" name="_wp_format_audio" placeholder="<?php esc_attr_e( 'Audio Embed Code or URL' ); ?>" class="widefat"><?php esc_html_e( $format_meta['audio'] ); ?></textarea>
     107                <div data-format="audio" class="wp-format-media-holder hide-if-no-js<?php if ( empty( $format_meta['audio'] ) ) echo ' empty'; ?>">
     108                        <a href="#" class="wp-format-media-select" data-choose="<?php esc_attr_e( 'Choose Audio' ); ?>" data-update="<?php esc_attr_e( 'Select Audio' ); ?>">
     109                                <?php _e( 'Select Audio From Media Library' ) ?>
     110                        </a>
     111                </div>
     112        </div>
     113</div>
     114 No newline at end of file
  • wp-admin/includes/post.php

    diff --git wp-admin/includes/post.php wp-admin/includes/post.php
    index 6167b3e..2bf7b2b 100644
    function edit_post( $post_data = null ) { 
    200200                update_post_meta( $post_ID, '_wp_format_url', wp_slash( esc_url_raw( wp_unslash( $post_data['_wp_format_url'] ) ) ) );
    201201        }
    202202
    203         $format_keys = array( 'quote', 'quote_source', 'image', 'gallery', 'media' );
     203        $format_keys = array( 'quote', 'quote_source', 'image', 'gallery', 'image', 'gallery', 'audio', 'video' );
    204204
    205205        foreach ( $format_keys as $key ) {
    206206                if ( isset( $post_data[ '_wp_format_' . $key ] ) )
  • wp-admin/includes/screen.php

    diff --git wp-admin/includes/screen.php wp-admin/includes/screen.php
    index 7103c84..b82134e 100644
    function screen_icon( $screen = '' ) { 
    142142 *
    143143 * @since 3.2.0
    144144 *
     145 * @global $post_ID
    145146 * @param string|WP_Screen $screen Optional. Accepts a screen object (and defaults to the current screen object)
    146147 *      which it uses to determine an icon HTML ID. Or, if a string is provided, it is used to form the icon HTML ID.
    147148 * @return string HTML for the screen icon.
    148149 */
    149150function get_screen_icon( $screen = '' ) {
     151        global $post_ID;
    150152        if ( empty( $screen ) )
    151153                $screen = get_current_screen();
    152154        elseif ( is_string( $screen ) )
    function get_screen_icon( $screen = '' ) { 
    165167
    166168                if ( $screen->post_type )
    167169                        $class .= ' ' . sanitize_html_class( 'icon32-posts-' . $screen->post_type );
     170
     171                if ( $post_ID ) {
     172                        $format = get_post_format( $post_ID );
     173                        if ( $format )
     174                                $class .= ' ' . $format;
     175                }
    168176        }
    169177
    170178        return '<div id="icon-' . esc_attr( $icon_id ) . '" class="' . $class . '"><br /></div>';
  • wp-admin/js/post-formats.js

    diff --git wp-admin/js/post-formats.js wp-admin/js/post-formats.js
    index 75f7f90..4a1b527 100644
     
    1 (function($){
     1window.wp = window.wp || {};
     2
     3(function($) {
     4        var mediaFrame, lastMimeType, lastMenu, mediaPreview;
    25
    36        // Post formats selection
    4         $('.post-format-select a').on( 'click.post-format', function(e) {
    5                 var $this = $(this),
    6                         editor,
    7                         body,
     7        $('.post-format-options a').on( 'click', function(e){
     8                var $this = $(this), editor, body,
     9                        parent = $this.parent(),
    810                        format = $this.data('wp-format'),
    9                         container = $('#post-body-content');
     11                        container = $('#post-body-content'),
     12                        description = $('.post-format-description');
    1013
    11                 $('.post-format-select a.nav-tab-active').removeClass('nav-tab-active');
    12                 $this.addClass('nav-tab-active').blur();
     14                parent.find('a.active').removeClass('active');
     15                $this.addClass('active');
     16                $('#icon-edit').removeClass(postFormats.currentPostFormat).addClass(format);
    1317                $('#post_format').val(format);
    1418
    1519                container.get(0).className = container.get(0).className.replace( /\bwp-format-[^ ]+/, '' );
    1620                container.addClass('wp-format-' + format);
     21                $('#title').focus();
     22
     23                // Update description line
     24                description.html($this.data('description'));
     25
     26                if (description.not(':visible'))
     27                        description.slideDown('fast');
    1728
    1829                if ( typeof tinymce != 'undefined' ) {
    1930                        editor = tinymce.get('content');
     
    2536                        }
    2637                }
    2738
     39                postFormats.currentPostFormat = format;
     40
    2841                e.preventDefault();
     42        }).on('mouseenter focusin', function () {
     43                $('.post-format-tip').html( $(this).prop('title') );
     44        }).on('mouseleave focusout', function () {
     45                $('.post-format-tip').html( $('.post-format-options a.active').prop('title') );
    2946        });
    3047
    31 })(jQuery);
     48        // Media selection
     49        $('.wp-format-media-select').click(function (event) {
     50                event.preventDefault();
     51                var $el = $(this), $holder, $field, mime = 'image', menu = '',
     52                        $holder = $el.closest('.wp-format-media-holder'),
     53                        $field = $( '#wp_format_' + $holder.data('format') );
     54
     55                switch ( $holder.data('format') ) {
     56                        case 'audio':
     57                                mime = 'audio';
     58                                break;
     59                        case 'video':
     60                                mime = 'video';
     61                                break;
     62                }
     63
     64                // If the media frame already exists, reopen it.
     65                if ( mediaFrame && lastMimeType === mime && lastMenu === menu ) {
     66                        mediaFrame.open();
     67                        return;
     68                }
     69
     70                lastMimeType = mime;
     71                lastMenu = menu;
     72
     73                // Create the media frame.
     74                mediaFrame = wp.media.frames.formatMedia = wp.media({
     75                        // Set the title of the modal.
     76                        title: $el.data('choose'),
     77
     78                        // Set the menu sidebar of the modal, if applicable
     79                        toolbar: menu,
     80
     81                        // Tell the modal to show only items matching the current mime type.
     82                        library: {
     83                                type: mime
     84                        },
     85
     86                        // Customize the submit button.
     87                        button: {
     88                                // Set the text of the button.
     89                                text: $el.data('update')
     90                        }
     91                });
     92
     93                mediaPreview = function (format, url, mime) {
     94                        $('#' + format + '-preview').remove();
     95                        $holder.parent().prepend( '<div id="' + format + '-preview" class="wp-format-media-preview">' +
     96                                '<' + format + ' class="wp-' + format + '-shortcode" controls="controls" preload="none">' +
     97                                        '<source type="' + mime + '" src="' + url + '" />' +
     98                                '</' + format + '></div>' );
     99                        $('.wp-' + format + '-shortcode').mediaelementplayer();
     100                };
     101
     102                // When an image is selected, run a callback.
     103                mediaFrame.on( 'select', function () {
     104                        // Grab the selected attachment.
     105                        var attachment = mediaFrame.state().get('selection').first(), mime, url, id;
     106
     107                        id = attachment.get('id');
     108                        url = attachment.get('url');
     109                        mime = attachment.get('mime');
     110
     111                        if ( 0 === mime.indexOf('audio') ) {
     112                                $field.val(url);
     113                                // show one preview at a time
     114                                mediaPreview('audio', url, mime);
     115                        } else if ( 0 === mime.indexOf('video') ) {
     116                                $field.val(url);
     117                                // show one preview at a time
     118                                mediaPreview('video', url, mime);
     119                        } else {
     120                                // set the hidden input's value
     121                                $field.val(url);
     122                                // Show the image in the placeholder
     123                                $el.html('<img src="' + url + '" />');
     124                                $holder.removeClass('empty').show();
     125                        }
     126                });
     127
     128                mediaFrame.open();
     129        });
     130})(jQuery);
     131 No newline at end of file
  • wp-includes/media.php

    diff --git wp-includes/media.php wp-includes/media.php
    index 9dbef91..dfcb62c 100644
    function get_the_media( $type, &$post = null ) { 
    20432043
    20442044        if ( has_post_format( $type ) ) {
    20452045                $meta = get_post_format_meta( $post->ID );
    2046                 if ( ! empty( $meta['media'] ) ) {
    2047                         if ( is_numeric( $meta['media'] ) ) {
    2048                                 $url = wp_get_attachment_url( $meta['media'] );
     2046                if ( ! empty( $meta[$type] ) ) {
     2047                        if ( is_integer( $meta[$type] ) ) {
     2048                                $url = wp_get_attachment_url( $meta[$type] );
    20492049                                $shortcode = sprintf( '[%s src="%s"]', $type, $url );
    2050                         } elseif ( preg_match( '/' . get_shortcode_regex() . '/s', $meta['media'] ) ) {
    2051                                 $shortcode = $meta['media'];
    2052                         } elseif ( preg_match( '#<[^>]+>#', $meta['media'] ) ) {
    2053                                 $post->format_content = $meta['media'];
     2050                        } elseif ( preg_match( '/' . get_shortcode_regex() . '/s', $meta[$type] ) ) {
     2051                                $shortcode = $meta[$type];
     2052                        } elseif ( preg_match( '#<[^>]+>#', $meta[$type] ) ) {
     2053                                $post->format_content = $meta[$type];
    20542054                                return $post->format_content;
    2055                         } elseif ( 0 === strpos( $meta['media'], 'http' ) ) {
    2056                                 $post->split_content = str_replace( $meta['media'], '', $post->post_content, $count );
    2057                                 if ( strstr( $meta['media'], home_url() ) ) {
    2058                                         $shortcode = sprintf( '[%s src="%s"]', $type, $meta['media'] );
     2055                        } elseif ( 0 === strpos( $meta[$type], 'http' ) ) {
     2056                                $post->split_content = str_replace( $meta[$type], '', $post->post_content, $count );
     2057                                if ( strstr( $meta[$type], home_url() ) ) {
     2058                                        $shortcode = sprintf( '[%s src="%s"]', $type, $meta[$type] );
    20592059                                } else {
    2060                                         $post->format_content = $wp_embed->autoembed( $meta['media'] );
     2060                                        $post->format_content = $wp_embed->autoembed( $meta[$type] );
    20612061                                        return $post->format_content;
    20622062                                }
    20632063                        }
  • wp-includes/post-formats.php

    diff --git wp-includes/post-formats.php wp-includes/post-formats.php
    index 86bcd74..5c34774 100644
    function get_post_format_meta( $post_id = 0 ) { 
    8484                'quote'        => '',
    8585                'quote_source' => '',
    8686                'url'          => '',
    87                 'media'        => '',
     87                'image'        => '',
     88                'gallery'      => '',
     89                'audio'        => '',
     90                'video'        => '',
    8891        );
    8992
    9093        foreach ( $values as $key => $value )
    function post_formats_compat( $content, $id = 0 ) { 
    351354
    352355                case 'video':
    353356                case 'audio':
    354                         if ( ! has_shortcode( $post->post_content, $format ) && ! empty( $meta['media'] ) ) {
     357                        if ( ! has_shortcode( $post->post_content, $format ) && ! empty( $meta[$format] ) ) {
     358                                // the metadata is an attachment ID
     359                                if ( is_numeric( $meta[$format] ) ) {
     360                                        $url = wp_get_attachment_url( $meta[$format] );
     361                                        $format_output .= sprintf( '[%s src="%s"]', $format, $url );
    355362                                // the metadata is a shortcode or an embed code
    356                                 if ( preg_match( '/' . get_shortcode_regex() . '/s', $meta['media'] ) || preg_match( '#<[^>]+>#', $meta['media'] ) ) {
    357                                         $format_output .= $meta['media'];
    358                                 } elseif ( ! stristr( $content, $meta['media'] ) ) {
     363                                } elseif ( preg_match( '/' . get_shortcode_regex() . '/s', $meta[$format] ) || preg_match( '#<[^>]+>#', $meta[$format] ) ) {
     364                                        $format_output .= $meta[$format];
     365                                } elseif ( ! stristr( $content, $meta[$format] ) ) {
    359366                                        // attempt to embed the URL
    360                                         $format_output .= sprintf( '[embed]%s[/embed]', $meta['media'] );
     367                                        $format_output .= sprintf( '[embed]%s[/embed]', $meta[$format] );
    361368                                }
    362369                        }
    363370                        break;