X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/4713a14935b83517997f3c88f808eb41da55033d..3194d1bb103c2d8db4f44feeced5e58ee2756658:/wp-admin/includes/media.php
diff --git a/wp-admin/includes/media.php b/wp-admin/includes/media.php
index 06cd1c12..9990b9fd 100644
--- a/wp-admin/includes/media.php
+++ b/wp-admin/includes/media.php
@@ -36,6 +36,8 @@ function media_upload_tabs() {
*
* @since 2.5.0
*
+ * @global wpdb $wpdb WordPress database abstraction object.
+ *
* @param array $tabs
* @return array $tabs with gallery if post has image attachment
*/
@@ -61,12 +63,13 @@ function update_gallery_tab($tabs) {
return $tabs;
}
-add_filter('media_upload_tabs', 'update_gallery_tab');
/**
- * {@internal Missing Short Description}}
+ * Outputs the legacy media upload tabs UI.
*
* @since 2.5.0
+ *
+ * @global string $redir_tab
*/
function the_media_upload_tabs() {
global $redir_tab;
@@ -99,25 +102,30 @@ function the_media_upload_tabs() {
}
/**
- * {@internal Missing Short Description}}
+ * Retrieves the image HTML to send to the editor.
*
* @since 2.5.0
*
- * @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
+ * @param int $id Image attachment id.
+ * @param string $caption Image caption.
+ * @param string $title Image title attribute.
+ * @param string $align Image CSS alignment property.
+ * @param string $url Optional. Image src URL. Default empty.
+ * @param string $rel Optional. Image rel attribute. Default empty.
+ * @param string|array $size Optional. Image size. Accepts any valid image size, or an array of width
+ * and height values in pixels (in that order). Default 'medium'.
+ * @param string $alt Optional. Image alt attribute. Default empty.
+ * @return string The HTML output to insert into the editor.
*/
-function get_image_send_to_editor($id, $caption, $title, $align, $url='', $rel = false, $size='medium', $alt = '') {
+function get_image_send_to_editor( $id, $caption, $title, $align, $url = '', $rel = '', $size = 'medium', $alt = '' ) {
$html = get_image_tag($id, $alt, '', $align, $size);
- $rel = $rel ? ' rel="attachment wp-att-' . esc_attr($id).'"' : '';
+ if ( ! $rel ) {
+ $rel = ' rel="attachment wp-att-' . esc_attr( $id ) . '"';
+ } else {
+ $rel = ' rel="' . esc_attr( $rel ) . '"';
+ }
if ( $url )
$html = '$html";
@@ -127,14 +135,15 @@ function get_image_send_to_editor($id, $caption, $title, $align, $url='', $rel =
*
* @since 2.5.0
*
- * @param string $html The image HTML markup to send.
- * @param int $id The attachment id.
- * @param string $caption The image caption.
- * @param string $title The image title.
- * @param string $align The image alignment.
- * @param string $url The image source URL.
- * @param string $size The image size.
- * @param string $alt The image alternative, or alt, text.
+ * @param string $html The image HTML markup to send.
+ * @param int $id The attachment id.
+ * @param string $caption The image caption.
+ * @param string $title The image title.
+ * @param string $align The image alignment.
+ * @param string $url The image source URL.
+ * @param string|array $size Size of image. Image size or array of width and height values
+ * (in that order). Default 'medium'.
+ * @param string $alt The image alternative, or alt, text.
*/
$html = apply_filters( 'image_send_to_editor', $html, $id, $caption, $title, $align, $url, $size, $alt );
@@ -158,6 +167,22 @@ function get_image_send_to_editor($id, $caption, $title, $align, $url='', $rel =
*/
function image_add_caption( $html, $id, $caption, $title, $align, $url, $size, $alt = '' ) {
+ /**
+ * Filter the caption text.
+ *
+ * Note: If the caption text is empty, the caption shortcode will not be appended
+ * to the image HTML when inserted into the editor.
+ *
+ * Passing an empty value also prevents the {@see 'image_add_caption_shortcode'}
+ * filter from being evaluated at the end of {@see image_add_caption()}.
+ *
+ * @since 4.1.0
+ *
+ * @param string $caption The original caption text.
+ * @param int $id The attachment ID.
+ */
+ $caption = apply_filters( 'image_add_caption_text', $caption, $id );
+
/**
* Filter whether to disable captions.
*
@@ -180,7 +205,8 @@ function image_add_caption( $html, $id, $caption, $title, $align, $url, $size, $
$caption = str_replace( array("\r\n", "\r"), "\n", $caption);
$caption = preg_replace_callback( '/<[a-zA-Z0-9]+(?: [^<>]+>)*/', '_cleanup_image_add_caption', $caption );
- // convert any remaining line breaks to
+
+ // Convert any remaining line breaks to
.
$caption = preg_replace( '/[ \n\t]*\n[ \t]*/', '
', $caption );
$html = preg_replace( '/(class=["\'][^\'"]*)align(none|left|right|center)\s?/', '$1', $html );
@@ -199,7 +225,6 @@ function image_add_caption( $html, $id, $caption, $title, $align, $url, $size, $
*/
return apply_filters( 'image_add_caption_shortcode', $shcode, $html );
}
-add_filter( 'image_send_to_editor', 'image_add_caption', 20, 8 );
/**
* Private preg_replace callback used in image_add_caption()
@@ -208,7 +233,7 @@ add_filter( 'image_send_to_editor', 'image_add_caption', 20, 8 );
* @since 3.4.0
*/
function _cleanup_image_add_caption( $matches ) {
- // remove any line breaks from inside the tags
+ // Remove any line breaks from inside the tags.
return preg_replace( '/[\r\n\t]+/', ' ', $matches[0] );
}
@@ -222,24 +247,23 @@ function _cleanup_image_add_caption( $matches ) {
function media_send_to_editor($html) {
?>
false )) {
@@ -264,31 +288,31 @@ function media_handle_upload($file_id, $post_id, $post_data = array(), $override
$file = $file['file'];
$title = $name;
$content = '';
+ $excerpt = '';
if ( preg_match( '#^audio#', $type ) ) {
$meta = wp_read_audio_metadata( $file );
- if ( ! empty( $meta['title'] ) )
+ if ( ! empty( $meta['title'] ) ) {
$title = $meta['title'];
-
- $content = '';
+ }
if ( ! empty( $title ) ) {
if ( ! empty( $meta['album'] ) && ! empty( $meta['artist'] ) ) {
/* translators: 1: audio track title, 2: album title, 3: artist name */
$content .= sprintf( __( '"%1$s" from %2$s by %3$s.' ), $title, $meta['album'], $meta['artist'] );
- } else if ( ! empty( $meta['album'] ) ) {
+ } elseif ( ! empty( $meta['album'] ) ) {
/* translators: 1: audio track title, 2: album title */
$content .= sprintf( __( '"%1$s" from %2$s.' ), $title, $meta['album'] );
- } else if ( ! empty( $meta['artist'] ) ) {
+ } elseif ( ! empty( $meta['artist'] ) ) {
/* translators: 1: audio track title, 2: artist name */
$content .= sprintf( __( '"%1$s" by %2$s.' ), $title, $meta['artist'] );
} else {
$content .= sprintf( __( '"%s".' ), $title );
}
- } else if ( ! empty( $meta['album'] ) ) {
+ } elseif ( ! empty( $meta['album'] ) ) {
if ( ! empty( $meta['artist'] ) ) {
/* translators: 1: audio album title, 2: artist name */
@@ -297,7 +321,7 @@ function media_handle_upload($file_id, $post_id, $post_data = array(), $override
$content .= $meta['album'] . '.';
}
- } else if ( ! empty( $meta['artist'] ) ) {
+ } elseif ( ! empty( $meta['artist'] ) ) {
$content .= $meta['artist'] . '.';
@@ -317,12 +341,15 @@ function media_handle_upload($file_id, $post_id, $post_data = array(), $override
if ( ! empty( $meta['genre'] ) )
$content .= ' ' . sprintf( __( 'Genre: %s.' ), $meta['genre'] );
- // use image exif/iptc data for title and caption defaults if possible
- } elseif ( $image_meta = @wp_read_image_metadata( $file ) ) {
- if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) )
+ // Use image exif/iptc data for title and caption defaults if possible.
+ } elseif ( 0 === strpos( $type, 'image/' ) && $image_meta = @wp_read_image_metadata( $file ) ) {
+ if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) ) {
$title = $image_meta['title'];
- if ( trim( $image_meta['caption'] ) )
- $content = $image_meta['caption'];
+ }
+
+ if ( trim( $image_meta['caption'] ) ) {
+ $excerpt = $image_meta['caption'];
+ }
}
// Construct the attachment array
@@ -332,11 +359,11 @@ function media_handle_upload($file_id, $post_id, $post_data = array(), $override
'post_parent' => $post_id,
'post_title' => $title,
'post_content' => $content,
+ 'post_excerpt' => $excerpt,
), $post_data );
// This should never be set as it would then overwrite an existing attachment.
- if ( isset( $attachment['ID'] ) )
- unset( $attachment['ID'] );
+ unset( $attachment['ID'] );
// Save the data
$id = wp_insert_attachment($attachment, $file, $post_id);
@@ -378,7 +405,7 @@ function media_handle_sideload($file_array, $post_id, $desc = null, $post_data =
$title = preg_replace('/\.[^.]+$/', '', basename($file));
$content = '';
- // use image exif/iptc data for title and caption defaults if possible
+ // Use image exif/iptc data for title and caption defaults if possible.
if ( $image_meta = @wp_read_image_metadata($file) ) {
if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) )
$title = $image_meta['title'];
@@ -389,7 +416,7 @@ function media_handle_sideload($file_array, $post_id, $desc = null, $post_data =
if ( isset( $desc ) )
$title = $desc;
- // Construct the attachment array
+ // Construct the attachment array.
$attachment = array_merge( array(
'post_mime_type' => $type,
'guid' => $url,
@@ -399,8 +426,7 @@ function media_handle_sideload($file_array, $post_id, $desc = null, $post_data =
), $post_data );
// This should never be set as it would then overwrite an existing attachment.
- if ( isset( $attachment['ID'] ) )
- unset( $attachment['ID'] );
+ unset( $attachment['ID'] );
// Save the attachment metadata
$id = wp_insert_attachment($attachment, $file, $post_id);
@@ -415,7 +441,9 @@ function media_handle_sideload($file_array, $post_id, $desc = null, $post_data =
*
* @since 2.5.0
*
- * @param array $content_func
+ * @global int $body_id
+ *
+ * @param string|callable $content_func
*/
function wp_iframe($content_func /* ... */) {
_wp_admin_html_begin();
@@ -431,11 +459,9 @@ if ( ( is_array( $content_func ) && ! empty( $content_func[1] ) && 0 === strpos(
wp_enqueue_style( 'ie' );
?>
';
- echo '' . $img . __( 'Add Media' ) . '';
-
+ $id_attribute = $instance === 1 ? ' id="insert-media-button"' : '';
+ printf( '',
+ $id_attribute,
+ esc_attr( $editor_id ),
+ $img . __( 'Add Media' )
+ );
/**
* Filter the legacy (pre-3.5.0) media buttons.
*
@@ -543,8 +580,15 @@ function media_buttons($editor_id = 'content') {
echo $legacy_filter;
}
}
-add_action( 'media_buttons', 'media_buttons' );
+/**
+ *
+ * @global int $post_ID
+ * @param string $type
+ * @param int $post_id
+ * @param string $tab
+ * @return string
+ */
function get_upload_iframe_src( $type = null, $post_id = null, $tab = null ) {
global $post_ID;
@@ -562,7 +606,7 @@ function get_upload_iframe_src( $type = null, $post_id = null, $tab = null ) {
/**
* Filter the upload iframe source URL for a specific media type.
*
- * The dynamic portion of the hook name, $type, refers to the type
+ * The dynamic portion of the hook name, `$type`, refers to the type
* of media uploaded.
*
* @since 3.0.0
@@ -575,7 +619,7 @@ function get_upload_iframe_src( $type = null, $post_id = null, $tab = null ) {
}
/**
- * {@internal Missing Short Description}}
+ * Handles form submissions for the legacy media uploader.
*
* @since 2.5.0
*
@@ -587,8 +631,8 @@ function media_upload_form_handler() {
$errors = null;
if ( isset($_POST['send']) ) {
- $keys = array_keys($_POST['send']);
- $send_id = (int) array_shift($keys);
+ $keys = array_keys( $_POST['send'] );
+ $send_id = (int) reset( $keys );
}
if ( !empty($_POST['attachments']) ) foreach ( $_POST['attachments'] as $attachment_id => $attachment ) {
@@ -618,8 +662,8 @@ function media_upload_form_handler() {
*
* @see wp_get_attachment_metadata()
*
- * @param WP_Post $post The WP_Post object.
- * @param array $attachment An array of attachment metadata.
+ * @param array $post An array of post data.
+ * @param array $attachment An array of attachment metadata.
*/
$post = apply_filters( 'attachment_fields_to_save', $post, $attachment );
@@ -627,7 +671,8 @@ function media_upload_form_handler() {
$image_alt = wp_unslash( $attachment['image_alt'] );
if ( $image_alt != get_post_meta($attachment_id, '_wp_attachment_image_alt', true) ) {
$image_alt = wp_strip_all_tags( $image_alt, true );
- // update_meta expects slashed
+
+ // Update_meta expects slashed.
update_post_meta( $attachment_id, '_wp_attachment_image_alt', wp_slash( $image_alt ) );
}
}
@@ -648,10 +693,8 @@ function media_upload_form_handler() {
if ( isset($_POST['insert-gallery']) || isset($_POST['update-gallery']) ) { ?>
";
return $html;
+ } else {
+ return new WP_Error( 'image_sideload_failed' );
}
}
/**
- * {@internal Missing Short Description}}
+ * Retrieves the legacy media uploader form in an iframe.
*
* @since 2.5.0
*
- * @return unknown
+ * @return string|null
*/
function media_upload_gallery() {
$errors = array();
@@ -860,11 +915,11 @@ function media_upload_gallery() {
}
/**
- * {@internal Missing Short Description}}
+ * Retrieves the legacy media library form in an iframe.
*
* @since 2.5.0
*
- * @return unknown
+ * @return string|null
*/
function media_upload_library() {
$errors = array();
@@ -885,7 +940,7 @@ function media_upload_library() {
*
* @since 2.7.0
*
- * @param object $post
+ * @param WP_Post $post
* @param string $checked
* @return string
*/
@@ -913,12 +968,11 @@ function image_align_input_fields( $post, $checked = '' ) {
*
* @since 2.7.0
*
- * @param object $post
+ * @param WP_Post $post
* @param bool|string $check
* @return array
*/
function image_size_input_fields( $post, $check = '' ) {
-
/**
* Filter the names and labels of the default image sizes.
*
@@ -934,45 +988,53 @@ function image_size_input_fields( $post, $check = '' ) {
'full' => __( 'Full Size' )
) );
- if ( empty($check) )
- $check = get_user_setting('imgsize', 'medium');
-
- foreach ( $size_names as $size => $label ) {
- $downsize = image_downsize($post->ID, $size);
- $checked = '';
-
- // is this size selectable?
- $enabled = ( $downsize[3] || 'full' == $size );
- $css_id = "image-size-{$size}-{$post->ID}";
- // if this size is the default but that's not available, don't select it
- if ( $size == $check ) {
- if ( $enabled )
- $checked = " checked='checked'";
- else
- $check = '';
- } elseif ( !$check && $enabled && 'thumbnail' != $size ) {
- // if $check is not enabled, default to the first available size that's bigger than a thumbnail
- $check = $size;
+ if ( empty( $check ) ) {
+ $check = get_user_setting('imgsize', 'medium');
+ }
+ $out = array();
+
+ foreach ( $size_names as $size => $label ) {
+ $downsize = image_downsize( $post->ID, $size );
+ $checked = '';
+
+ // Is this size selectable?
+ $enabled = ( $downsize[3] || 'full' == $size );
+ $css_id = "image-size-{$size}-{$post->ID}";
+
+ // If this size is the default but that's not available, don't select it.
+ if ( $size == $check ) {
+ if ( $enabled ) {
$checked = " checked='checked'";
+ } else {
+ $check = '';
}
+ } elseif ( ! $check && $enabled && 'thumbnail' != $size ) {
+ /*
+ * If $check is not enabled, default to the first available size
+ * that's bigger than a thumbnail.
+ */
+ $check = $size;
+ $checked = " checked='checked'";
+ }
- $html = "