X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/76aea3697c6043c1613370f172395b4f65ee71f0..refs/tags/wordpress-2.9:/wp-admin/upload.php?ds=sidebyside diff --git a/wp-admin/upload.php b/wp-admin/upload.php index cf6c1916..2b891e13 100644 --- a/wp-admin/upload.php +++ b/wp-admin/upload.php @@ -1,157 +1,306 @@ post_type == 'attachment' ) - if ( ! wp_delete_attachment($post_id_del) ) - wp_die( __('Error in deleting...') ); + $all_posts = $wpdb->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 = $referer; + $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; } - $location = add_query_arg('message', 2, $location); - $location = remove_query_arg('posted', $location); wp_redirect($location); exit; -} elseif ( !empty($_GET['_wp_http_referer']) ) { - wp_redirect(remove_query_arg(array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI']))); - 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 = 'edit.php'; -wp_enqueue_script( 'admin-forms' ); +$parent_file = 'upload.php'; + +if ( ! isset( $_GET['paged'] ) || $_GET['paged'] < 1 ) + $_GET['paged'] = 1; -list($post_mime_types, $avail_post_mime_types) = wp_edit_attachments_query(); +if ( isset($_GET['detached']) ) { -if ( is_singular() ) - wp_enqueue_script( 'admin-comments' ); + $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 ); -require_once('admin-header.php'); + if ( !empty($lost) ) { + $start = ( (int) $_GET['paged'] - 1 ) * $media_per_page; + $page_links_total = ceil(count($lost) / $media_per_page); + $lost = implode(',', $lost); -if ( !isset( $_GET['paged'] ) ) - $_GET['paged'] = 1; + $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() ) ); ?> +

-
-

post_title)); -} else { - $post_mime_type_label = _c('Manage Media|manage media header'); - if ( isset($_GET['post_mime_type']) && in_array( $_GET['post_mime_type'], array_keys($post_mime_types) ) ) - $post_mime_type_label = $post_mime_types[$_GET['post_mime_type']][1]; - if ( $post_listing_pageable && !is_archive() && !is_search() ) - $h2_noun = is_paged() ? sprintf(__( 'Previous %s' ), $post_mime_type_label) : sprintf(__('Latest %s'), $post_mime_type_label); - else - $h2_noun = $post_mime_type_label; - // Use $_GET instead of is_ since they can override each other - $h2_author = ''; - $_GET['author'] = (int) $_GET['author']; - if ( $_GET['author'] != 0 ) { - if ( $_GET['author'] == '-' . $user_ID ) { // author exclusion - $h2_author = ' ' . __('by other authors'); - } else { - $author_user = get_userdata( get_query_var( 'author' ) ); - $h2_author = ' ' . sprintf(__('by %s'), wp_specialchars( $author_user->display_name )); - } - } - $h2_search = isset($_GET['s']) && $_GET['s'] ? ' ' . sprintf(__('matching “%s”'), wp_specialchars( get_search_query() ) ) : ''; - $h2_cat = isset($_GET['cat']) && $_GET['cat'] ? ' ' . sprintf( __('in “%s”'), single_cat_title('', false) ) : ''; - $h2_tag = isset($_GET['tag']) && $_GET['tag'] ? ' ' . sprintf( __('tagged with “%s”'), single_tag_title('', false) ) : ''; - $h2_month = isset($_GET['m']) && $_GET['m'] ? ' ' . sprintf( __('during %s'), single_month_title(' ', false) ) : ''; - printf( _c( '%1$s%2$s%3$s%4$s%5$s%6$s|You can reorder these: 1: Posts, 2: by {s}, 3: matching {s}, 4: in {s}, 5: tagged with {s}, 6: during {s}' ), $h2_noun, $h2_author, $h2_search, $h2_cat, $h2_tag, $h2_month ); +' . __('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) ) { ?> +

+ - -

|

- -

- - -

- - - + +

+
- - +
- max_num_pages; + $page_links = paginate_links( array( 'base' => add_query_arg( 'paged', '%#%' ), 'format' => '', - 'total' => $wp_query->max_num_pages, + 'prev_text' => __('«'), + 'next_text' => __('»'), + 'total' => $page_links_total, 'current' => $_GET['paged'] )); -if ( $page_links ) - echo "
$page_links
"; -?> - -
- +if ( $page_links ) : ?> +
' . __( 'Displaying %s–%s of %s' ) . '%s', + number_format_i18n( ( $_GET['paged'] - 1 ) * $wp_query->query_vars['posts_per_page'] + 1 ), + number_format_i18n( min( $_GET['paged'] * $wp_query->query_vars['posts_per_page'], $wp_query->found_posts ) ), + number_format_i18n( $wp_query->found_posts ), + $page_links +); echo $page_links_text; ?>
+ + +
+ + -posts WHERE post_type = 'attachment' ORDER BY post_date DESC"; $arc_result = $wpdb->get_results( $arc_query ); @@ -160,19 +309,19 @@ if ( !is_singular() ) : if ( $month_count && !( 1 == $month_count && 0 == $arc_result[0]->mmonth ) ) : ?> - + + + - + + + + +

-
+
- + + + + + + + + + + + - + + + + + + + + + + + +ID) ); +?> + + + + + + + +post_date && 'date' == $column_name ) { + $t_time = $h_time = __('Unpublished'); + } else { + $t_time = get_the_time(__('Y/m/d g:i:s A')); + $m_time = $post->post_date; + $time = get_post_time( 'G', true ); + if ( ( abs($t_diff = time() - $time) ) < 86400 ) { + if ( $t_diff < 0 ) + $h_time = sprintf( __('%s from now'), human_time_diff( $time ) ); + else + $h_time = sprintf( __('%s ago'), human_time_diff( $time ) ); + } else { + $h_time = mysql2date(__('Y/m/d'), $m_time); + } + } ?> + + + + + + +
ID) ) { ?>ID, array(80, 60), true ) ) { ?> + +
+ ID))); ?> + +
+ ID) ) + $actions['edit'] = '' . __('Edit') . ''; + if ( current_user_can('delete_post', $post->ID) ) + if ( EMPTY_TRASH_DAYS && MEDIA_TRASH ) + $actions['trash'] = "ID) . "'>" . __('Trash') . ""; + else + $actions['delete'] = "ID) . "'>" . __('Delete Permanently') . ""; + $actions['view'] = '' . __('View') . ''; + if ( current_user_can('edit_post', $post->ID) ) + $actions['attach'] = ''.__('Attach').''; + $actions = apply_filters( 'media_row_actions', $actions, $post ); + $action_count = count($actions); + $i = 0; + foreach ( $actions as $action => $link ) { + ++$i; + ( $i == $action_count ) ? $sep = '' : $sep = ' | '; + echo "$link$sep"; + } ?> +
post_author); echo $author->display_name; ?>
+ +
@@ -201,50 +446,36 @@ foreach ($arc_result as $arc_row) { $page_links
"; + echo "
$page_links_text
"; ?> +
+ + + + + +

- -get_results( $wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_approved != 'spam' ORDER BY comment_date", $id) ); - if ( $comments ) : - // Make sure comments, post, and post_author are cached - update_comment_cache($comments); - $post = get_post($id); - $authordata = get_userdata($post->post_author); - ?> - +
+ +
- - - - - - - - - -comment_ID, 'detail', false, false ); -?> - -
- - - - +