X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/8f374b7233bc2815ccc387e448d208c5434eb961..baca9ce86a38dc54c4574890ee2d352fd81f78b2:/wp-admin/includes/media.php diff --git a/wp-admin/includes/media.php b/wp-admin/includes/media.php index 179bfb8f..3938943a 100644 --- a/wp-admin/includes/media.php +++ b/wp-admin/includes/media.php @@ -7,11 +7,11 @@ */ /** - * {@internal Missing Short Description}} + * Defines the default media upload tabs * * @since 2.5.0 * - * @return unknown + * @return array default tabs */ function media_upload_tabs() { $_default_tabs = array( @@ -25,12 +25,12 @@ function media_upload_tabs() { } /** - * {@internal Missing Short Description}} + * Adds the gallery tab back to the tabs array if post has image attachments * * @since 2.5.0 * - * @param unknown_type $tabs - * @return unknown + * @param array $tabs + * @return array $tabs with gallery if post has image attachment */ function update_gallery_tab($tabs) { global $wpdb; @@ -94,18 +94,19 @@ function the_media_upload_tabs() { * * @since 2.5.0 * - * @param unknown_type $id - * @param unknown_type $alt - * @param unknown_type $title - * @param unknown_type $align - * @param unknown_type $url - * @param unknown_type $rel - * @param unknown_type $size - * @return unknown + * @param integer $id image attachment id + * @param string $caption image caption + * @param string $alt image alt attribute + * @param string $title image title attribute + * @param string $align image css alignment property + * @param string $url image src url + * @param string|bool $rel image rel attribute + * @param string $size image size (thumbnail, medium, large, full or added with add_image_size() ) + * @return string the html to insert into editor */ function get_image_send_to_editor($id, $caption, $title, $align, $url='', $rel = false, $size='medium', $alt = '') { - $html = get_image_tag($id, $alt, $title, $align, $size); + $html = get_image_tag($id, $alt, '', $align, $size); $rel = $rel ? ' rel="attachment wp-att-' . esc_attr($id).'"' : ''; @@ -118,18 +119,19 @@ function get_image_send_to_editor($id, $caption, $title, $align, $url='', $rel = } /** - * {@internal Missing Short Description}} + * Adds image shortcode with caption to editor * * @since 2.6.0 * - * @param unknown_type $html - * @param unknown_type $id - * @param unknown_type $alt - * @param unknown_type $title - * @param unknown_type $align - * @param unknown_type $url - * @param unknown_type $size - * @return unknown + * @param string $html + * @param integer $id + * @param string $caption image caption + * @param string $alt image alt attribute + * @param string $title image title attribute + * @param string $align image css alignment property + * @param string $url image src url + * @param string $size image size (thumbnail, medium, large, full or added with add_image_size() ) + * @return string */ function image_add_caption( $html, $id, $caption, $title, $align, $url, $size, $alt = '' ) { @@ -170,11 +172,11 @@ function _cleanup_image_add_caption( $matches ) { } /** - * {@internal Missing Short Description}} + * Adds image html to editor * * @since 2.5.0 * - * @param unknown_type $html + * @param string $html */ function media_send_to_editor($html) { ?> @@ -189,8 +191,6 @@ win.send_to_editor(''); } /** - * {@internal Missing Short Description}} - * * This handles the file upload POST itself, creating the attachment post. * * @since 2.5.0 @@ -269,7 +269,13 @@ function media_handle_upload($file_id, $post_id, $post_data = array(), $override function media_handle_sideload($file_array, $post_id, $desc = null, $post_data = array()) { $overrides = array('test_form'=>false); - $file = wp_handle_sideload($file_array, $overrides); + $time = current_time( 'mysql' ); + if ( $post = get_post( $post_id ) ) { + if ( substr( $post->post_date, 0, 4 ) > 0 ) + $time = $post->post_date; + } + + $file = wp_handle_sideload( $file_array, $overrides, $time ); if ( isset($file['error']) ) return new WP_Error( 'upload_error', $file['error'] ); @@ -312,14 +318,11 @@ function media_handle_sideload($file_array, $post_id, $desc = null, $post_data = } /** - * {@internal Missing Short Description}} - * - * Wrap iframe content (produced by $content_func) in a doctype, html head/body - * etc any additional function args will be passed to content_func. + * Adds the iframe to display content for the media upload page * * @since 2.5.0 * - * @param unknown_type $content_func + * @param array $content_func */ function wp_iframe($content_func /* ... */) { _wp_admin_html_begin(); @@ -355,7 +358,7 @@ if ( is_string($content_func) ) do_action( "admin_head_{$content_func}" ); ?> - class="no-js"> + class="wp-core-ui no-js"> @@ -373,22 +376,36 @@ document.body.className = document.body.className.replace('no-js', 'js'); } /** - * {@internal Missing Short Description}} + * Adds the media button to the editor * * @since 2.5.0 + * + * @param string $editor_id */ function media_buttons($editor_id = 'content') { - $context = apply_filters('media_buttons_context', __('Upload/Insert %s')); + $post = get_post(); + if ( ! $post && ! empty( $GLOBALS['post_ID'] ) ) + $post = $GLOBALS['post_ID']; - $img = ''; + wp_enqueue_media( array( + 'post' => $post + ) ); - echo '' . sprintf( $context, $img ) . ''; -} -add_action( 'media_buttons', 'media_buttons' ); + $img = ' '; + + echo '' . $img . __( 'Add Media' ) . ''; + + // Don't use this filter. Want to add a button? Use the media_buttons action. + $legacy_filter = apply_filters('media_buttons_context', ''); // deprecated -function _media_button($title, $icon, $type, $id) { - return "$title"; + if ( $legacy_filter ) { + // #WP22559. Close if a plugin started by closing to open their own tag. + if ( 0 === stripos( trim( $legacy_filter ), '' ) ) + $legacy_filter .= ''; + echo $legacy_filter; + } } +add_action( 'media_buttons', 'media_buttons' ); function get_upload_iframe_src( $type = null, $post_id = null, $tab = null ) { global $post_ID; @@ -414,7 +431,7 @@ function get_upload_iframe_src( $type = null, $post_id = null, $tab = null ) { * * @since 2.5.0 * - * @return unknown + * @return mixed void|object WP_Error on failure */ function media_upload_form_handler() { check_admin_referer('media-form'); @@ -506,7 +523,7 @@ function media_upload_form_handler() { * * @since 2.5.0 * - * @return unknown + * @return mixed */ function wp_media_upload_handler() { $errors = array(); @@ -599,7 +616,7 @@ function media_sideload_image($file, $post_id, $desc = null) { // Set variables for storage // fix file filename for query strings - preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $file, $matches); + preg_match( '/[^\?]+\.(jpe?g|jpe|gif|png)\b/i', $file, $matches ); $file_array['name'] = basename($matches[0]); $file_array['tmp_name'] = $tmp; @@ -677,9 +694,9 @@ function media_upload_library() { * * @since 2.7.0 * - * @param unknown_type $post - * @param unknown_type $checked - * @return unknown + * @param object $post + * @param string $checked + * @return string */ function image_align_input_fields( $post, $checked = '' ) { @@ -705,9 +722,9 @@ function image_align_input_fields( $post, $checked = '' ) { * * @since 2.7.0 * - * @param unknown_type $post - * @param unknown_type $check - * @return unknown + * @param object $post + * @param bool|string $check + * @return array */ function image_size_input_fields( $post, $check = '' ) { @@ -760,9 +777,9 @@ function image_size_input_fields( $post, $check = '' ) { * * @since 2.7.0 * - * @param unknown_type $post - * @param unknown_type $url_type - * @return unknown + * @param object $post + * @param string $url_type + * @return string */ function image_link_input_fields($post, $url_type = '') { @@ -798,48 +815,22 @@ function wp_caption_input_textarea($edit_post) { * * @since 2.5.0 * - * @param unknown_type $form_fields - * @param unknown_type $post - * @return unknown + * @param array $form_fields + * @param object $post + * @return array */ function image_attachment_fields_to_edit($form_fields, $post) { - if ( substr($post->post_mime_type, 0, 5) == 'image' ) { - $alt = get_post_meta($post->ID, '_wp_attachment_image_alt', true); - if ( empty($alt) ) - $alt = ''; - - $form_fields['post_title']['required'] = true; - - $form_fields['image_alt'] = array( - 'value' => $alt, - 'label' => __('Alternate Text'), - 'helps' => __('Alt text for the image, e.g. “The Mona Lisa”') - ); - - $form_fields['align'] = array( - 'label' => __('Alignment'), - 'input' => 'html', - 'html' => image_align_input_fields($post, get_option('image_default_align')), - ); - - $form_fields['image-size'] = image_size_input_fields( $post, get_option('image_default_size', 'medium') ); - - } else { - unset( $form_fields['image_alt'] ); - } return $form_fields; } -add_filter('attachment_fields_to_edit', 'image_attachment_fields_to_edit', 10, 2); - /** * {@internal Missing Short Description}} * * @since 2.5.0 * - * @param unknown_type $form_fields - * @param unknown_type $post - * @return unknown + * @param array $form_fields + * @param object $post {@internal $post not used}} + * @return array */ function media_single_attachment_fields_to_edit( $form_fields, $post ) { unset($form_fields['url'], $form_fields['align'], $form_fields['image-size']); @@ -851,9 +842,9 @@ function media_single_attachment_fields_to_edit( $form_fields, $post ) { * * @since 2.8.0 * - * @param unknown_type $form_fields - * @param unknown_type $post - * @return unknown + * @param array $form_fields + * @param object $post {@internal $post not used}} + * @return array */ function media_post_single_attachment_fields_to_edit( $form_fields, $post ) { unset($form_fields['image_url']); @@ -861,13 +852,17 @@ function media_post_single_attachment_fields_to_edit( $form_fields, $post ) { } /** - * {@internal Missing Short Description}} + * Filters input from media_upload_form_handler() and assigns a default + * post_title from the file name if none supplied. + * + * Illustrates the use of the attachment_fields_to_save filter + * which can be used to add default values to any field before saving to DB. * * @since 2.5.0 * - * @param unknown_type $post - * @param unknown_type $attachment - * @return unknown + * @param object $post + * @param array $attachment {@internal $attachment not used}} + * @return array */ function image_attachment_fields_to_save($post, $attachment) { if ( substr($post['post_mime_type'], 0, 5) == 'image' ) { @@ -887,13 +882,13 @@ add_filter('attachment_fields_to_save', 'image_attachment_fields_to_save', 10, 2 * * @since 2.5.0 * - * @param unknown_type $html - * @param unknown_type $attachment_id - * @param unknown_type $attachment - * @return unknown + * @param string $html + * @param integer $attachment_id + * @param array $attachment + * @return array */ function image_media_send_to_editor($html, $attachment_id, $attachment) { - $post =& get_post($attachment_id); + $post = get_post($attachment_id); if ( substr($post->post_mime_type, 0, 5) == 'image' ) { $url = $attachment['url']; $align = !empty($attachment['align']) ? $attachment['align'] : 'none'; @@ -914,15 +909,15 @@ add_filter('media_send_to_editor', 'image_media_send_to_editor', 10, 3); * * @since 2.5.0 * - * @param unknown_type $post - * @param unknown_type $errors - * @return unknown + * @param object $post + * @param array $errors + * @return array */ function get_attachment_fields_to_edit($post, $errors = null) { if ( is_int($post) ) - $post =& get_post($post); + $post = get_post($post); if ( is_array($post) ) - $post = (object) $post; + $post = new WP_Post( (object) $post ); $image_url = wp_get_attachment_url($post->ID); @@ -965,7 +960,7 @@ function get_attachment_fields_to_edit($post, $errors = null) { foreach ( get_attachment_taxonomies($post) as $taxonomy ) { $t = (array) get_taxonomy($taxonomy); - if ( ! $t['public'] ) + if ( ! $t['public'] || ! $t['show_ui'] ) continue; if ( empty($t['label']) ) $t['label'] = $taxonomy; @@ -973,13 +968,13 @@ function get_attachment_fields_to_edit($post, $errors = null) { $t['args'] = array(); $terms = get_object_term_cache($post->ID, $taxonomy); - if ( empty($terms) ) + if ( false === $terms ) $terms = wp_get_object_terms($post->ID, $taxonomy, $t['args']); $values = array(); foreach ( $terms as $term ) - $values[] = $term->name; + $values[] = $term->slug; $t['value'] = join(', ', $values); $form_fields[$taxonomy] = $t; @@ -989,6 +984,32 @@ function get_attachment_fields_to_edit($post, $errors = null) { // The recursive merge is easily traversed with array casting: foreach( (array) $things as $thing ) $form_fields = array_merge_recursive($form_fields, (array) $errors); + // This was formerly in image_attachment_fields_to_edit(). + if ( substr($post->post_mime_type, 0, 5) == 'image' ) { + $alt = get_post_meta($post->ID, '_wp_attachment_image_alt', true); + if ( empty($alt) ) + $alt = ''; + + $form_fields['post_title']['required'] = true; + + $form_fields['image_alt'] = array( + 'value' => $alt, + 'label' => __('Alternative Text'), + 'helps' => __('Alt text for the image, e.g. “The Mona Lisa”') + ); + + $form_fields['align'] = array( + 'label' => __('Alignment'), + 'input' => 'html', + 'html' => image_align_input_fields($post, get_option('image_default_align')), + ); + + $form_fields['image-size'] = image_size_input_fields( $post, get_option('image_default_size', 'medium') ); + + } else { + unset( $form_fields['image_alt'] ); + } + $form_fields = apply_filters('attachment_fields_to_edit', $form_fields, $post); return $form_fields; @@ -1060,7 +1081,7 @@ function get_media_item( $attachment_id, $args = null ) { $toggle_on = __( 'Show' ); $toggle_off = __( 'Hide' ); - $filename = esc_html( basename( $post->guid ) ); + $filename = esc_html( wp_basename( $post->guid ) ); $title = esc_attr( $post->post_title ); if ( $_tags = get_the_tags( $attachment_id ) ) { @@ -1111,9 +1132,9 @@ function get_media_item( $attachment_id, $args = null ) { $media_dims = apply_filters( 'media_meta', $media_dims, $post ); $image_edit_button = ''; - if ( gd_edit_image_support( $post->post_mime_type ) ) { + if ( wp_attachment_is_image( $post->ID ) && wp_image_editor_supports( array( 'mime_type' => $post->post_mime_type ) ) ) { $nonce = wp_create_nonce( "image_editor-$post->ID" ); - $image_edit_button = " "; + $image_edit_button = " "; } $attachment_url = get_permalink( $attachment_id ); @@ -1156,16 +1177,16 @@ function get_media_item( $attachment_id, $args = null ) { $send = get_submit_button( __( 'Insert into Post' ), 'button', "send[$attachment_id]", false ); if ( $delete && current_user_can( 'delete_post', $attachment_id ) ) { if ( !EMPTY_TRASH_DAYS ) { - $delete = "" . __( 'Delete Permanently' ) . ''; + $delete = "" . __( 'Delete Permanently' ) . ''; } elseif ( !MEDIA_TRASH ) { $delete = "" . __( 'Delete' ) . " "; } else { - $delete = "" . __( 'Move to Trash' ) . " - "; + $delete = "" . __( 'Move to Trash' ) . " + "; } } else { $delete = ''; @@ -1260,18 +1281,164 @@ function get_media_item( $attachment_id, $args = null ) { return $item; } +function get_compat_media_markup( $attachment_id, $args = null ) { + $post = get_post( $attachment_id ); + + $default_args = array( + 'errors' => null, + 'in_modal' => false, + ); + + $user_can_edit = current_user_can( 'edit_post', $attachment_id ); + + $args = wp_parse_args( $args, $default_args ); + $args = apply_filters( 'get_media_item_args', $args ); + + $form_fields = array(); + + if ( $args['in_modal'] ) { + foreach ( get_attachment_taxonomies($post) as $taxonomy ) { + $t = (array) get_taxonomy($taxonomy); + if ( ! $t['public'] || ! $t['show_ui'] ) + continue; + if ( empty($t['label']) ) + $t['label'] = $taxonomy; + if ( empty($t['args']) ) + $t['args'] = array(); + + $terms = get_object_term_cache($post->ID, $taxonomy); + if ( false === $terms ) + $terms = wp_get_object_terms($post->ID, $taxonomy, $t['args']); + + $values = array(); + + foreach ( $terms as $term ) + $values[] = $term->slug; + $t['value'] = join(', ', $values); + $t['taxonomy'] = true; + + $form_fields[$taxonomy] = $t; + } + } + + // Merge default fields with their errors, so any key passed with the error (e.g. 'error', 'helps', 'value') will replace the default + // The recursive merge is easily traversed with array casting: foreach( (array) $things as $thing ) + $form_fields = array_merge_recursive($form_fields, (array) $args['errors'] ); + + $form_fields = apply_filters( 'attachment_fields_to_edit', $form_fields, $post ); + + unset( $form_fields['image-size'], $form_fields['align'], $form_fields['image_alt'], + $form_fields['post_title'], $form_fields['post_excerpt'], $form_fields['post_content'], + $form_fields['url'], $form_fields['menu_order'], $form_fields['image_url'] ); + + $media_meta = apply_filters( 'media_meta', '', $post ); + + $defaults = array( + 'input' => 'text', + 'required' => false, + 'value' => '', + 'extra_rows' => array(), + 'show_in_edit' => true, + 'show_in_modal' => true, + ); + + $hidden_fields = array(); + + $item = ''; + foreach ( $form_fields as $id => $field ) { + if ( $id[0] == '_' ) + continue; + + $name = "attachments[$attachment_id][$id]"; + $id_attr = "attachments-$attachment_id-$id"; + + if ( !empty( $field['tr'] ) ) { + $item .= $field['tr']; + continue; + } + + $field = array_merge( $defaults, $field ); + + if ( ( ! $field['show_in_edit'] && ! $args['in_modal'] ) || ( ! $field['show_in_modal'] && $args['in_modal'] ) ) + continue; + + if ( $field['input'] == 'hidden' ) { + $hidden_fields[$name] = $field['value']; + continue; + } + + $readonly = ! $user_can_edit && ! empty( $field['taxonomy'] ) ? " readonly='readonly' " : ''; + $required = $field['required'] ? '*' : ''; + $aria_required = $field['required'] ? " aria-required='true' " : ''; + $class = 'compat-field-' . $id; + $class .= $field['required'] ? ' form-required' : ''; + + $item .= "\t\t"; + $item .= "\t\t\t"; + $item .= "\n\t\t\t"; + + if ( !empty( $field[ $field['input'] ] ) ) + $item .= $field[ $field['input'] ]; + elseif ( $field['input'] == 'textarea' ) { + if ( 'post_content' == $id && user_can_richedit() ) { + // sanitize_post() skips the post_content when user_can_richedit + $field['value'] = htmlspecialchars( $field['value'], ENT_QUOTES ); + } + $item .= "'; + } else { + $item .= ""; + } + if ( !empty( $field['helps'] ) ) + $item .= "

" . join( "

\n

", array_unique( (array) $field['helps'] ) ) . '

'; + $item .= "\n\t\t\n"; + + $extra_rows = array(); + + if ( !empty( $field['errors'] ) ) + foreach ( array_unique( (array) $field['errors'] ) as $error ) + $extra_rows['error'][] = $error; + + if ( !empty( $field['extra_rows'] ) ) + foreach ( $field['extra_rows'] as $class => $rows ) + foreach ( (array) $rows as $html ) + $extra_rows[$class][] = $html; + + foreach ( $extra_rows as $class => $rows ) + foreach ( $rows as $html ) + $item .= "\t\t$html\n"; + } + + if ( !empty( $form_fields['_final'] ) ) + $item .= "\t\t{$form_fields['_final']}\n"; + if ( $item ) + $item = '' . $item . '
'; + + foreach ( $hidden_fields as $hidden_field => $value ) { + $item .= '' . "\n"; + } + + if ( $item ) + $item = '' . $item; + + return array( + 'item' => $item, + 'meta' => $media_meta, + ); +} + /** * {@internal Missing Short Description}} * * @since 2.5.0 */ function media_upload_header() { - ?> - -
- -
- post_id = ' . $post_id . ";\n"; + if ( empty( $_GET['chromeless'] ) ) { + echo '
'; + the_media_upload_tabs(); + echo '
'; + } } /** @@ -1322,9 +1489,8 @@ function media_upload_form( $errors = null ) { ?> ' . sprintf( __( 'Sorry, you have filled your storage quota (%s MB).' ), get_space_allowed() ) . '

'; + do_action( 'upload_ui_over_quota' ); return; } @@ -1357,6 +1523,11 @@ $plupload_init = array( 'multipart_params' => $post_params ); +// Multi-file uploading doesn't currently work in iOS Safari, +// single-file allows the built-in camera to be used as source for images +if ( wp_is_mobile() ) + $plupload_init['multi_selection'] = false; + $plupload_init = apply_filters( 'plupload_init', $plupload_init ); ?> @@ -1413,9 +1584,9 @@ if ( ($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024 ) { ?> * * @since 2.5.0 * - * @param unknown_type $type - * @param unknown_type $errors - * @param unknown_type $id + * @param string $type + * @param object $errors + * @param integer $id */ function media_upload_type_form($type = 'file', $errors = null, $id = null) { @@ -1476,9 +1647,9 @@ if ( $id ) { * * @since 2.7.0 * - * @param unknown_type $type - * @param unknown_type $errors - * @param unknown_type $id + * @param string $type + * @param object $errors + * @param integer $id */ function media_upload_type_url_form($type = null, $errors = null, $id = null) { if ( null === $type ) @@ -1486,7 +1657,7 @@ function media_upload_type_url_form($type = null, $errors = null, $id = null) { media_upload_header(); - $post_id = intval($_REQUEST['post_id']); + $post_id = isset( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0; $form_action_url = admin_url("media-upload.php?type=$type&tab=type&post_id=$post_id"); $form_action_url = apply_filters('media_upload_form_url', $form_action_url, $type); @@ -1516,11 +1687,6 @@ var addExtImage = { if ( '' == f.src.value || '' == t.width ) return false; - if ( f.title.value ) { - title = f.title.value.replace(/'/g, ''').replace(/"/g, '"').replace(//g, '>'); - title = ' title="'+title+'"'; - } - if ( f.alt.value ) alt = f.alt.value.replace(/'/g, ''').replace(/"/g, '"').replace(//g, '>'); @@ -1537,7 +1703,7 @@ var addExtImage = { cls = caption ? '' : ' class="'+t.align+'"'; - html = ''+alt+''; + html = ''+alt+''; if ( f.url.value ) { url = f.url.value.replace(/'/g, ''').replace(/"/g, '"').replace(//g, '>'); @@ -1582,7 +1748,7 @@ var addExtImage = { return false; } - document.getElementById('status_img').innerHTML = ''; + document.getElementById('status_img').innerHTML = ''; t.preloadImg = new Image(); t.preloadImg.onload = t.updateImageData; t.preloadImg.onerror = t.resetImageData; @@ -1609,11 +1775,11 @@ jQuery(document).ready( function($) { } /** - * {@internal Missing Short Description}} + * Adds gallery form to upload iframe * * @since 2.5.0 * - * @param unknown_type $errors + * @param array $errors */ function media_upload_gallery_form($errors) { global $redir_tab, $type; @@ -1759,14 +1925,14 @@ jQuery(function($){ * * @since 2.5.0 * - * @param unknown_type $errors + * @param array $errors */ function media_upload_library_form($errors) { global $wpdb, $wp_query, $wp_locale, $type, $tab, $post_mime_types; media_upload_header(); - $post_id = intval($_REQUEST['post_id']); + $post_id = isset( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0; $form_action_url = admin_url("media-upload.php?type=$type&tab=library&post_id=$post_id"); $form_action_url = apply_filters('media_upload_form_url', $form_action_url, $type); @@ -1884,7 +2050,7 @@ foreach ($arc_result as $arc_row) { - + @@ -1922,18 +2088,19 @@ jQuery(function($){ } /** - * {@internal Missing Short Description}} + * Creates the form for external url * * @since 2.7.0 * - * @return unknown + * @param string $default_view + * @return string the form html */ function wp_media_insert_url_form( $default_view = 'image' ) { if ( !apply_filters( 'disable_captions', '' ) ) { $caption = ' - + @@ -1958,7 +2125,7 @@ function wp_media_insert_url_form( $default_view = 'image' ) { @@ -1966,7 +2133,7 @@ function wp_media_insert_url_form( $default_view = 'image' ) { @@ -1976,7 +2143,7 @@ function wp_media_insert_url_form( $default_view = 'image' ) { @@ -1998,7 +2165,7 @@ function wp_media_insert_url_form( $default_view = 'image' ) { - - - - '; - - return ' - - - - - '; -} - /** - * {@internal Missing Short Description}} + * Displays the multi-file uploader message. * * @since 2.6.0 */ function media_upload_flash_bypass() { + $browser_uploader = admin_url( 'media-new.php?browser-uploader' ); + + if ( $post = get_post() ) + $browser_uploader .= '&post_id=' . intval( $post->ID ); + elseif ( ! empty( $GLOBALS['post_ID'] ) ) + $browser_uploader .= '&post_id=' . intval( $GLOBALS['post_ID'] ); + ?>

- browser uploader instead.'); ?> + browser uploader instead.' ), $browser_uploader, '_blank' ); ?>

- - ' . sprintf( __( 'Sorry, you have used all of your storage quota of %s MB.' ), get_space_allowed() ) . '

'; +} + +/** + * Displays the image and editor in the post editor + * + * @since 3.5.0 + */ +function edit_form_image_editor( $post ) { + $open = isset( $_GET['image-editor'] ); + if ( $open ) + require_once ABSPATH . 'wp-admin/includes/image-edit.php'; + + $thumb_url = false; + if ( $attachment_id = intval( $post->ID ) ) + $thumb_url = wp_get_attachment_image_src( $attachment_id, array( 900, 450 ), true ); + + $filename = esc_html( basename( $post->guid ) ); + $title = esc_attr( $post->post_title ); + $alt_text = get_post_meta( $post->ID, '_wp_attachment_image_alt', true ); + + $att_url = wp_get_attachment_url( $post->ID ); + + if ( wp_attachment_is_image( $post->ID ) ) : + $image_edit_button = ''; + if ( wp_image_editor_supports( array( 'mime_type' => $post->post_mime_type ) ) ) { + $nonce = wp_create_nonce( "image_editor-$post->ID" ); + $image_edit_button = ""; + } + ?> +
+
+ + class="wp_attachment_image" id="media-head-"> +

+

+
+ class="image-editor" id="image-editor-"> + + + + + +
+

+
+ +

+ + post_mime_type, 0, 5 ) ) : ?> +

+
+ +

+ + + 'strong,em,link,block,del,ins,img,ul,ol,li,code,spell,close' ); + $editor_args = array( + 'textarea_name' => 'content', + 'textarea_rows' => 5, + 'media_buttons' => false, + 'tinymce' => false, + 'quicktags' => $quicktags_settings, + ); + ?> + + + post_content, 'attachment_content', $editor_args ); ?> + +
+ ID ); + echo $extras['item']; + echo '' . "\n"; +} + +/** + * Displays non-editable attachment metadata in the publish metabox + * + * @since 3.5.0 + */ +function attachment_submitbox_metadata() { + $post = get_post(); + + $filename = esc_html( basename( $post->guid ) ); + + $media_dims = ''; + $meta = wp_get_attachment_metadata( $post->ID ); + if ( is_array( $meta ) && array_key_exists( 'width', $meta ) && array_key_exists( 'height', $meta ) ) + $media_dims .= "{$meta['width']} × {$meta['height']} "; + $media_dims = apply_filters( 'media_meta', $media_dims, $post ); + + $att_url = wp_get_attachment_url( $post->ID ); +?> +
+ + +
+
+ +
+
+ ID ), $matches ) ) + echo esc_html( strtoupper( $matches[1] ) ); + else + echo strtoupper( str_replace( 'image/', '', $post->post_mime_type ) ); + ?> +
+ + +
+ +
+
- + *
- + *
- +

' . __('Alt text for the image, e.g. “The Mona Lisa”') . '

- +
@@ -2023,46 +2190,29 @@ function wp_media_insert_url_form( $default_view = 'image' ) { } -function _insert_into_post_button($type) { - if ( !post_type_supports(get_post_type($_GET['post_id']), 'editor') ) - return ''; - - if ( 'image' == $type ) - return ' -
- -
- ' . get_submit_button( __( 'Insert into Post' ), 'button', 'insertonlybutton', false ) . ' -