diff -r a4642baaf829 -r 4d4862461b8d web/wp-admin/upload.php
--- a/web/wp-admin/upload.php Tue Feb 02 14:45:47 2010 +0000
+++ b/web/wp-admin/upload.php Tue Feb 02 15:44:16 2010 +0000
@@ -1,417 +1,483 @@
-get_col("SELECT ID FROM $wpdb->posts WHERE post_type = 'post' OR post_type = 'page'");
- $all_att = $wpdb->get_results("SELECT ID, post_parent FROM $wpdb->posts WHERE post_type = 'attachment'");
-
- $lost = array();
- foreach ( (array) $all_att as $att ) {
- if ( $att->post_parent > 0 && ! in_array($att->post_parent, $all_posts) )
- $lost[] = $att->ID;
- }
- $_GET['detached'] = 1;
-
-} elseif ( isset($_GET['found_post_id']) && isset($_GET['media']) ) {
- check_admin_referer('bulk-media');
-
- if ( ! ( $parent_id = (int) $_GET['found_post_id'] ) )
- return;
-
- $parent = &get_post($parent_id);
- if ( !current_user_can('edit_post', $parent_id) )
- wp_die( __('You are not allowed to edit this post.') );
-
- $attach = array();
- foreach( (array) $_GET['media'] as $att_id ) {
- $att_id = (int) $att_id;
-
- if ( !current_user_can('edit_post', $att_id) )
- continue;
-
- $attach[] = $att_id;
- }
-
- if ( ! empty($attach) ) {
- $attach = implode(',', $attach);
- $attached = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET post_parent = %d WHERE post_type = 'attachment' AND ID IN ($attach)", $parent_id) );
- }
-
- if ( isset($attached) ) {
- $location = 'upload.php';
- if ( $referer = wp_get_referer() ) {
- if ( false !== strpos($referer, 'upload.php') )
- $location = $referer;
- }
-
- $location = add_query_arg( array( 'detached' => 1, 'attached' => $attached ) , $location );
- wp_redirect($location);
- exit;
- }
-
-} elseif ( isset($_GET['action']) && isset($_GET['media']) && ( -1 != $_GET['action'] || -1 != $_GET['action2'] ) ) {
- check_admin_referer('bulk-media');
- $doaction = ( -1 != $_GET['action'] ) ? $_GET['action'] : $_GET['action2'];
-
- if ( 'delete' == $doaction ) {
- foreach( (array) $_GET['media'] as $post_id_del ) {
- $post_del = & get_post($post_id_del);
-
- if ( !current_user_can('delete_post', $post_id_del) )
- wp_die( __('You are not allowed to delete this post.') );
-
- if ( $post_del->post_type == 'attachment' )
- if ( ! wp_delete_attachment($post_id_del) )
- wp_die( __('Error in deleting...') );
- }
-
- $location = 'upload.php';
- if ( $referer = wp_get_referer() ) {
- if ( false !== strpos($referer, 'upload.php') )
- $location = $referer;
- }
-
- $location = add_query_arg('message', 2, $location);
- $location = remove_query_arg('posted', $location);
- wp_redirect($location);
- exit;
- }
-} elseif ( isset($_GET['_wp_http_referer']) && ! empty($_GET['_wp_http_referer']) ) {
- wp_redirect( remove_query_arg( array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI']) ) );
- exit;
-}
-
-$title = __('Media Library');
-$parent_file = 'upload.php';
-
-if ( ! isset( $_GET['paged'] ) || $_GET['paged'] < 1 )
- $_GET['paged'] = 1;
-
-if ( isset($_GET['detached']) ) {
-
- if ( !empty($lost) ) {
- $start = ( $_GET['paged'] - 1 ) * 50;
- $page_links_total = ceil(count($lost) / 50);
- $lost = implode(',', $lost);
-
- $orphans = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_type = 'attachment' AND ID IN ($lost) LIMIT $start, 50" );
- } else {
- $start = ( $_GET['paged'] - 1 ) * 25;
- $orphans = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS * FROM $wpdb->posts WHERE post_type = 'attachment' AND post_parent < 1 LIMIT $start, 25" );
- $page_links_total = ceil($wpdb->get_var( "SELECT FOUND_ROWS()" ) / 25);
- }
-
- $post_mime_types = array(
- 'image' => array(__('Images'), __('Manage Images'), _n_noop('Image (%s)', 'Images (%s)')),
- 'audio' => array(__('Audio'), __('Manage Audio'), _n_noop('Audio (%s)', 'Audio (%s)')),
- 'video' => array(__('Video'), __('Manage Video'), _n_noop('Video (%s)', 'Video (%s)')),
- );
- $post_mime_types = apply_filters('post_mime_types', $post_mime_types);
-
- $avail_post_mime_types = get_available_post_mime_types('attachment');
-
- if ( isset($_GET['post_mime_type']) && !array_intersect( (array) $_GET['post_mime_type'], array_keys($post_mime_types) ) )
- unset($_GET['post_mime_type']);
-
-} else {
- list($post_mime_types, $avail_post_mime_types) = wp_edit_attachments_query();
-}
-
-wp_enqueue_script('media');
-require_once('admin-header.php'); ?>
-
-
-
-
-
-
-
-
' . __('Search results for “%s”') . '', esc_html( get_search_query() ) ); ?>
-
-
-
-
-
-
-
- $reals )
- foreach ( $reals as $real )
- $num_posts[$type] = ( isset( $num_posts[$type] ) ) ? $num_posts[$type] + $_num_posts[$real] : $_num_posts[$real];
-
-$class = empty($_GET['post_mime_type']) && ! isset($_GET['detached']) ? ' class="current"' : '';
-$type_links[] = "- " . sprintf( _nx( 'All (%s)', 'All (%s)', $_total_posts, 'uploaded files' ), number_format_i18n( $_total_posts ) ) . '';
-foreach ( $post_mime_types as $mime_type => $label ) {
- $class = '';
-
- if ( !wp_match_mime_types($mime_type, $avail_post_mime_types) )
- continue;
-
- if ( !empty($_GET['post_mime_type']) && wp_match_mime_types($mime_type, $_GET['post_mime_type']) )
- $class = ' class="current"';
-
- $type_links[] = "
- " . sprintf( _n( $label[2][0], $label[2][1], $num_posts[$mime_type] ), number_format_i18n( $num_posts[$mime_type] )) . '';
-}
-$class = isset($_GET['detached']) ? ' class="current"' : '';
-$type_links[] = '
- ' . __('Unattached') . '';
-
-echo implode( " |
\n", $type_links) . '';
-unset($type_links);
-?>
-
-
-
-
-
-
-
-
-
-
-get_col("SELECT ID FROM $wpdb->posts WHERE post_type = 'post' OR post_type = 'page'");
+ $all_att = $wpdb->get_results("SELECT ID, post_parent FROM $wpdb->posts WHERE post_type = 'attachment'");
+
+ $lost = array();
+ foreach ( (array) $all_att as $att ) {
+ if ( $att->post_parent > 0 && ! in_array($att->post_parent, $all_posts) )
+ $lost[] = $att->ID;
+ }
+ $_GET['detached'] = 1;
+
+} elseif ( isset($_GET['found_post_id']) && isset($_GET['media']) ) {
+ check_admin_referer('bulk-media');
+
+ if ( ! ( $parent_id = (int) $_GET['found_post_id'] ) )
+ return;
+
+ $parent = &get_post($parent_id);
+ if ( !current_user_can('edit_post', $parent_id) )
+ wp_die( __('You are not allowed to edit this post.') );
+
+ $attach = array();
+ foreach( (array) $_GET['media'] as $att_id ) {
+ $att_id = (int) $att_id;
+
+ if ( !current_user_can('edit_post', $att_id) )
+ continue;
+
+ $attach[] = $att_id;
+ }
+
+ if ( ! empty($attach) ) {
+ $attach = implode(',', $attach);
+ $attached = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET post_parent = %d WHERE post_type = 'attachment' AND ID IN ($attach)", $parent_id) );
+ }
+
+ if ( isset($attached) ) {
+ $location = 'upload.php';
+ if ( $referer = wp_get_referer() ) {
+ if ( false !== strpos($referer, 'upload.php') )
+ $location = $referer;
+ }
+
+ $location = add_query_arg( array( 'attached' => $attached ) , $location );
+ wp_redirect($location);
+ exit;
+ }
+
+} elseif ( isset($_GET['doaction']) || isset($_GET['doaction2']) || isset($_GET['delete_all']) || isset($_GET['delete_all2']) ) {
+ check_admin_referer('bulk-media');
+
+ if ( isset($_GET['delete_all']) || isset($_GET['delete_all2']) ) {
+ $post_ids = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_type='attachment' AND post_status = 'trash'" );
+ $doaction = 'delete';
+ } elseif ( ( $_GET['action'] != -1 || $_GET['action2'] != -1 ) && ( isset($_GET['media']) || isset($_GET['ids']) ) ) {
+ $post_ids = isset($_GET['media']) ? $_GET['media'] : explode(',', $_GET['ids']);
+ $doaction = ($_GET['action'] != -1) ? $_GET['action'] : $_GET['action2'];
+ } else {
+ wp_redirect($_SERVER['HTTP_REFERER']);
+ }
+
+ $location = 'upload.php';
+ if ( $referer = wp_get_referer() ) {
+ if ( false !== strpos($referer, 'upload.php') )
+ $location = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'message', 'ids', 'posted'), $referer );
+ }
+
+ switch ( $doaction ) {
+ case 'trash':
+ foreach( (array) $post_ids as $post_id ) {
+ if ( !current_user_can('delete_post', $post_id) )
+ wp_die( __('You are not allowed to move this post to the trash.') );
+
+ if ( !wp_trash_post($post_id) )
+ wp_die( __('Error in moving to trash...') );
+ }
+ $location = add_query_arg( array( 'message' => 4, 'ids' => join(',', $post_ids) ), $location );
+ break;
+ case 'untrash':
+ foreach( (array) $post_ids as $post_id ) {
+ if ( !current_user_can('delete_post', $post_id) )
+ wp_die( __('You are not allowed to move this post out of the trash.') );
+
+ if ( !wp_untrash_post($post_id) )
+ wp_die( __('Error in restoring from trash...') );
+ }
+ $location = add_query_arg('message', 5, $location);
+ break;
+ case 'delete':
+ foreach( (array) $post_ids as $post_id_del ) {
+ if ( !current_user_can('delete_post', $post_id_del) )
+ wp_die( __('You are not allowed to delete this post.') );
+
+ if ( !wp_delete_attachment($post_id_del) )
+ wp_die( __('Error in deleting...') );
+ }
+ $location = add_query_arg('message', 2, $location);
+ break;
+ }
+
+ wp_redirect($location);
+ exit;
+} elseif ( isset($_GET['_wp_http_referer']) && ! empty($_GET['_wp_http_referer']) ) {
+ wp_redirect( remove_query_arg( array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI']) ) );
+ exit;
+}
+
+$title = __('Media Library');
+$parent_file = 'upload.php';
+
+if ( ! isset( $_GET['paged'] ) || $_GET['paged'] < 1 )
+ $_GET['paged'] = 1;
+
+if ( isset($_GET['detached']) ) {
+
+ $media_per_page = (int) get_user_option( 'upload_per_page', 0, false );
+ if ( empty($media_per_page) || $media_per_page < 1 )
+ $media_per_page = 20;
+ $media_per_page = apply_filters( 'upload_per_page', $media_per_page );
+
+ if ( !empty($lost) ) {
+ $start = ( (int) $_GET['paged'] - 1 ) * $media_per_page;
+ $page_links_total = ceil(count($lost) / $media_per_page);
+ $lost = implode(',', $lost);
+
+ $orphans = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_type = 'attachment' AND ID IN (%s) LIMIT %d, %d", $lost, $start, $media_per_page ) );
+ } else {
+ $start = ( (int) $_GET['paged'] - 1 ) * $media_per_page;
+ $orphans = $wpdb->get_results( $wpdb->prepare( "SELECT SQL_CALC_FOUND_ROWS * FROM $wpdb->posts WHERE post_type = 'attachment' AND post_status != 'trash' AND post_parent < 1 LIMIT %d, %d", $start, $media_per_page ) );
+ $page_links_total = ceil($wpdb->get_var( "SELECT FOUND_ROWS()" ) / $media_per_page);
+ }
+
+ $post_mime_types = get_post_mime_types();
+ $avail_post_mime_types = get_available_post_mime_types('attachment');
+
+ if ( isset($_GET['post_mime_type']) && !array_intersect( (array) $_GET['post_mime_type'], array_keys($post_mime_types) ) )
+ unset($_GET['post_mime_type']);
+
+} else {
+ list($post_mime_types, $avail_post_mime_types) = wp_edit_attachments_query();
+}
+
+$is_trash = ( isset($_GET['status']) && $_GET['status'] == 'trash' );
+
+wp_enqueue_script('media');
+require_once('admin-header.php');
+
+do_action('restrict_manage_posts');
+?>
+
+
+
+
' . __('Search results for “%s”') . '', esc_html( get_search_query() ) ); ?>
+
+
+' . __('Undo') . '';
+$messages[5] = __('Media restored from the trash.');
+
+if ( isset($_GET['message']) && (int) $_GET['message'] ) {
+ $message = $messages[$_GET['message']];
+ $_SERVER['REQUEST_URI'] = remove_query_arg(array('message'), $_SERVER['REQUEST_URI']);
+}
+
+if ( !empty($message) ) { ?>
+
+
+
+
+ $reals )
+ foreach ( $reals as $real )
+ $num_posts[$type] = ( isset( $num_posts[$type] ) ) ? $num_posts[$type] + $_num_posts[$real] : $_num_posts[$real];
+
+$class = ( empty($_GET['post_mime_type']) && !isset($_GET['detached']) && !isset($_GET['status']) ) ? ' class="current"' : '';
+$type_links[] = "- " . sprintf( _nx( 'All (%s)', 'All (%s)', $_total_posts, 'uploaded files' ), number_format_i18n( $_total_posts ) ) . '';
+foreach ( $post_mime_types as $mime_type => $label ) {
+ $class = '';
+
+ if ( !wp_match_mime_types($mime_type, $avail_post_mime_types) )
+ continue;
+
+ if ( !empty($_GET['post_mime_type']) && wp_match_mime_types($mime_type, $_GET['post_mime_type']) )
+ $class = ' class="current"';
+
+ $type_links[] = "
- " . sprintf( _n( $label[2][0], $label[2][1], $num_posts[$mime_type] ), number_format_i18n( $num_posts[$mime_type] )) . '';
+}
+$type_links[] = '
- ' . __('Unattached') . '';
+if ( EMPTY_TRASH_DAYS && ( MEDIA_TRASH || !empty($_num_posts['trash']) ) )
+ $type_links[] = '
- ' . sprintf( _nx( 'Trash (%s)', 'Trash (%s)', $_num_posts['trash'], 'uploaded files' ), number_format_i18n( $_num_posts['trash'] ) ) . '';
+
+echo implode( " |
\n", $type_links) . '';
+unset($type_links);
+?>
+
+
+
+
+
+
+
+
+
+
+
+