X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/d3b1ea255664edd2deef17f900a655613d20820d..refs/tags/wordpress-2.9:/wp-admin/includes/media.php diff --git a/wp-admin/includes/media.php b/wp-admin/includes/media.php index ab7cc58b..1bfe3e27 100644 --- a/wp-admin/includes/media.php +++ b/wp-admin/includes/media.php @@ -40,8 +40,10 @@ function update_gallery_tab($tabs) { return $tabs; } - if ( intval($_REQUEST['post_id']) ) - $attachments = intval($wpdb->get_var($wpdb->prepare("SELECT count(*) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_parent = %d", $_REQUEST['post_id']))); + $post_id = intval($_REQUEST['post_id']); + + if ( $post_id ) + $attachments = intval( $wpdb->get_var( $wpdb->prepare( "SELECT count(*) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_status != 'trash' AND post_parent = %d", $post_id ) ) ); if ( empty($attachments) ) { unset($tabs['gallery']); @@ -98,18 +100,16 @@ function the_media_upload_tabs() { * @param unknown_type $size * @return unknown */ -function get_image_send_to_editor($id, $alt, $title, $align, $url='', $rel = false, $size='medium') { - - $htmlalt = ( empty($alt) ) ? $title : $alt; +function get_image_send_to_editor($id, $caption, $title, $align, $url='', $rel = false, $size='medium', $alt = '') { - $html = get_image_tag($id, $htmlalt, $title, $align, $size); + $html = get_image_tag($id, $alt, $title, $align, $size); $rel = $rel ? ' rel="attachment wp-att-' . esc_attr($id).'"' : ''; if ( $url ) - $html = '$html"; + $html = '$html"; - $html = apply_filters( 'image_send_to_editor', $html, $id, $alt, $title, $align, $url, $size ); + $html = apply_filters( 'image_send_to_editor', $html, $id, $caption, $title, $align, $url, $size, $alt ); return $html; } @@ -128,15 +128,14 @@ function get_image_send_to_editor($id, $alt, $title, $align, $url='', $rel = fal * @param unknown_type $size * @return unknown */ -function image_add_caption( $html, $id, $alt, $title, $align, $url, $size ) { +function image_add_caption( $html, $id, $caption, $title, $align, $url, $size, $alt = '' ) { - if ( empty($alt) || apply_filters( 'disable_captions', '' ) ) + if ( empty($caption) || apply_filters( 'disable_captions', '' ) ) return $html; $id = ( 0 < (int) $id ) ? 'attachment_' . $id : ''; - preg_match( '/width="([0-9]+)/', $html, $matches ); - if ( ! isset($matches[1]) ) + if ( ! preg_match( '/width="([0-9]+)/', $html, $matches ) ) return $html; $width = $matches[1]; @@ -145,14 +144,12 @@ function image_add_caption( $html, $id, $alt, $title, $align, $url, $size ) { if ( empty($align) ) $align = 'none'; - $alt = ! empty($alt) ? addslashes($alt) : ''; - $shcode = '[caption id="' . $id . '" align="align' . $align - . '" width="' . $width . '" caption="' . $alt . '"]' . $html . '[/caption]'; + . '" width="' . $width . '" caption="' . addslashes($caption) . '"]' . $html . '[/caption]'; return apply_filters( 'image_add_caption_shortcode', $shcode, $html ); } -add_filter( 'image_send_to_editor', 'image_add_caption', 20, 7 ); +add_filter( 'image_send_to_editor', 'image_add_caption', 20, 8 ); /** * {@internal Missing Short Description}} @@ -169,7 +166,7 @@ var win = window.dialogArguments || opener || parent || top; win.send_to_editor(''); /* ]]> */ - false); - $file = wp_handle_sideload($file_array, $overrides); + $file = wp_handle_sideload($file_array, $overrides); if ( isset($file['error']) ) return new WP_Error( 'upload_error', $file['error'] ); @@ -279,7 +276,7 @@ function media_handle_sideload($file_array, $post_id, $desc = null, $post_data = 'post_content' => $content, ), $post_data ); - // Save the data + // Save the attachment metadata $id = wp_insert_attachment($attachment, $file, $post_id); if ( !is_wp_error($id) ) { wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) ); @@ -316,13 +313,19 @@ wp_enqueue_style( 'ie' ); @@ -369,7 +372,6 @@ EOF; printf($context, $out); } add_action( 'media_buttons', 'media_buttons' ); -add_action('media_upload_media', 'media_upload_handler'); /** * {@internal Missing Short Description}} @@ -381,7 +383,7 @@ add_action('media_upload_media', 'media_upload_handler'); function media_upload_form_handler() { check_admin_referer('media-form'); - $errors = array(); + $errors = null; if ( isset($_POST['send']) ) { $keys = array_keys($_POST['send']); @@ -406,6 +408,15 @@ function media_upload_form_handler() { $post = apply_filters('attachment_fields_to_save', $post, $attachment); + if ( isset($attachment['image_alt']) && !empty($attachment['image_alt']) ) { + $image_alt = get_post_meta($attachment_id, '_wp_attachment_image_alt', true); + if ( $image_alt != stripslashes($attachment['image_alt']) ) { + $image_alt = wp_strip_all_tags( stripslashes($attachment['image_alt']), true ); + // update_meta expects slashed + update_post_meta( $attachment_id, '_wp_attachment_image_alt', addslashes($image_alt) ); + } + } + if ( isset($post['errors']) ) { $errors[$attachment_id] = $post['errors']; unset($post['errors']); @@ -414,9 +425,10 @@ function media_upload_form_handler() { if ( $post != $_post ) wp_update_post($post); - foreach ( get_attachment_taxonomies($post) as $t ) + foreach ( get_attachment_taxonomies($post) as $t ) { if ( isset($attachment[$t]) ) wp_set_object_terms($attachment_id, array_map('trim', preg_split('/,+/', $attachment[$t])), $t, false); + } } if ( isset($_POST['insert-gallery']) || isset($_POST['update-gallery']) ) { ?> @@ -469,6 +481,8 @@ function media_upload_image() { } if ( !empty($_POST['insertonlybutton']) ) { + $alt = $align = ''; + $src = $_POST['insertonly']['src']; if ( !empty($src) && !strpos($src, '://') ) $src = "http://$src"; @@ -478,8 +492,9 @@ function media_upload_image() { $class = " class='align$align'"; } if ( !empty($src) ) - $html = ""; - $html = apply_filters('image_send_to_editor_url', $html, $src, $alt, $align); + $html = ""; + + $html = apply_filters('image_send_to_editor_url', $html, esc_url_raw($src), $alt, $align); return media_send_to_editor($html); } @@ -515,25 +530,33 @@ function media_upload_image() { */ function media_sideload_image($file, $post_id, $desc = null) { if (!empty($file) ) { - $file_array['name'] = basename($file); + // Download file to temp location $tmp = download_url($file); + + // Set variables for storage + // fix file filename for query strings + preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $file, $matches); + $file_array['name'] = basename($matches[0]); $file_array['tmp_name'] = $tmp; - $desc = @$desc; + // If error storing temporarily, unlink if ( is_wp_error($tmp) ) { @unlink($file_array['tmp_name']); $file_array['tmp_name'] = ''; } - $id = media_handle_sideload($file_array, $post_id, $desc); + // do the validation and storage stuff + $id = media_handle_sideload($file_array, $post_id, @$desc); $src = $id; + // If error storing permanently, unlink if ( is_wp_error($id) ) { @unlink($file_array['tmp_name']); return $id; } } + // Finally check to make sure the file has been saved, then return the html if ( !empty($src) ) { $alt = @$desc; $html = ""; @@ -566,12 +589,16 @@ function media_upload_audio() { $href = $_POST['insertonly']['href']; if ( !empty($href) && !strpos($href, '://') ) $href = "http://$href"; + $title = esc_attr($_POST['insertonly']['title']); if ( empty($title) ) - $title = basename($href); + $title = esc_attr( basename($href) ); + if ( !empty($title) && !empty($href) ) - $html = "$title"; + $html = "$title"; + $html = apply_filters('audio_send_to_editor_url', $html, $href, $title); + return media_send_to_editor($html); } @@ -620,12 +647,16 @@ function media_upload_video() { $href = $_POST['insertonly']['href']; if ( !empty($href) && !strpos($href, '://') ) $href = "http://$href"; + $title = esc_attr($_POST['insertonly']['title']); - if ( empty($title) ) - $title = basename($href); + if ( empty($title) ) + $title = esc_attr( basename($href) ); + if ( !empty($title) && !empty($href) ) - $html = "$title"; + $html = "$title"; + $html = apply_filters('video_send_to_editor_url', $html, $href, $title); + return media_send_to_editor($html); } @@ -674,12 +705,13 @@ function media_upload_file() { $href = $_POST['insertonly']['href']; if ( !empty($href) && !strpos($href, '://') ) $href = "http://$href"; + $title = esc_attr($_POST['insertonly']['title']); if ( empty($title) ) $title = basename($href); if ( !empty($title) && !empty($href) ) - $html = "$title"; - $html = apply_filters('file_send_to_editor_url', $html, $href, $title); + $html = "$title"; + $html = apply_filters('file_send_to_editor_url', $html, esc_url_raw($href), $title); return media_send_to_editor($html); } @@ -758,16 +790,19 @@ function media_upload_library() { */ function image_align_input_fields( $post, $checked = '' ) { + if ( empty($checked) ) + $checked = get_user_setting('align', 'none'); + $alignments = array('none' => __('None'), 'left' => __('Left'), 'center' => __('Center'), 'right' => __('Right')); if ( !array_key_exists( (string) $checked, $alignments ) ) $checked = 'none'; $out = array(); - foreach ($alignments as $name => $label) { + foreach ( $alignments as $name => $label ) { $name = esc_attr($name); $out[] = ""; + " />"; } return join("\n", $out); } @@ -781,27 +816,36 @@ function image_align_input_fields( $post, $checked = '' ) { * @param unknown_type $checked * @return unknown */ -function image_size_input_fields( $post, $checked = '' ) { +function image_size_input_fields( $post, $check = '' ) { // get a list of the actual pixel dimensions of each possible intermediate version of this image $size_names = array('thumbnail' => __('Thumbnail'), 'medium' => __('Medium'), 'large' => __('Large'), 'full' => __('Full size')); - foreach ( $size_names as $size => $name ) { + 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 ( $checked && !$enabled ) - $checked = ''; - // if $checked was not specified, default to the first available size that's bigger than a thumbnail - if ( !$checked && $enabled && 'thumbnail' != $size ) - $checked = $size; - - $html = "
- | $filename | ++ | " . __('File name:') . " $filename |
$post->post_mime_type | |||
" . mysql2date($post->post_date, get_option('time_format')) . " | |||
" . apply_filters('media_meta', '', $post) . " | |||
" . __('File type:') . " $post->post_mime_type | |||
" . __('Upload date:') . " " . mysql2date( get_option('date_format'), $post->post_date ) . " | |||
" . __('Dimensions:') . " $media_dims | |||
$image_edit_button | |||
$send $delete - | |||
$send $thumbnail $delete |