X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/11be8dc178e77d0b46189bbd8e33a216a9b90942..refs/tags/wordpress-3.3.1-scripts:/wp-admin/edit-comments.php diff --git a/wp-admin/edit-comments.php b/wp-admin/edit-comments.php index 43eecffc..224d3674 100644 --- a/wp-admin/edit-comments.php +++ b/wp-admin/edit-comments.php @@ -1,393 +1,257 @@ get_pagenum(); + +$doaction = $wp_list_table->current_action(); + +if ( $doaction ) { + check_admin_referer( 'bulk-comments' ); + + if ( 'delete_all' == $doaction && !empty( $_REQUEST['pagegen_timestamp'] ) ) { + $comment_status = $wpdb->escape( $_REQUEST['comment_status'] ); + $delete_time = $wpdb->escape( $_REQUEST['pagegen_timestamp'] ); + $comment_ids = $wpdb->get_col( "SELECT comment_ID FROM $wpdb->comments WHERE comment_approved = '$comment_status' AND '$delete_time' > comment_date_gmt" ); + $doaction = 'delete'; + } elseif ( isset( $_REQUEST['delete_comments'] ) ) { + $comment_ids = $_REQUEST['delete_comments']; + $doaction = ( $_REQUEST['action'] != -1 ) ? $_REQUEST['action'] : $_REQUEST['action2']; + } elseif ( isset( $_REQUEST['ids'] ) ) { + $comment_ids = array_map( 'absint', explode( ',', $_REQUEST['ids'] ) ); + } elseif ( wp_get_referer() ) { + wp_safe_redirect( wp_get_referer() ); + exit; + } -$post_id = isset($_REQUEST['p']) ? (int) $_REQUEST['p'] : 0; + $approved = $unapproved = $spammed = $unspammed = $trashed = $untrashed = $deleted = 0; -if ( ( isset( $_REQUEST['delete_all_spam'] ) || isset( $_REQUEST['delete_all_spam2'] ) ) && !empty( $_REQUEST['pagegen_timestamp'] ) ) { - check_admin_referer('bulk-spam-delete', '_spam_nonce'); + $redirect_to = remove_query_arg( array( 'trashed', 'untrashed', 'deleted', 'spammed', 'unspammed', 'approved', 'unapproved', 'ids' ), wp_get_referer() ); + $redirect_to = add_query_arg( 'paged', $pagenum, $redirect_to ); - $delete_time = $wpdb->escape( $_REQUEST['pagegen_timestamp'] ); - if ( current_user_can('moderate_comments')) { - $deleted_spam = $wpdb->query( "DELETE FROM $wpdb->comments WHERE comment_approved = 'spam' AND '$delete_time' > comment_date_gmt" ); - } else { - $deleted_spam = 0; - } - $redirect_to = 'edit-comments.php?comment_status=spam&deleted=' . (int) $deleted_spam; - if ( $post_id ) - $redirect_to = add_query_arg( 'p', absint( $post_id ), $redirect_to ); - wp_redirect( $redirect_to ); -} elseif ( isset($_REQUEST['delete_comments']) && isset($_REQUEST['action']) && ( -1 != $_REQUEST['action'] || -1 != $_REQUEST['action2'] ) ) { - check_admin_referer('bulk-comments'); - $doaction = ( -1 != $_REQUEST['action'] ) ? $_REQUEST['action'] : $_REQUEST['action2']; - - $deleted = $approved = $unapproved = $spammed = 0; - foreach ( (array) $_REQUEST['delete_comments'] as $comment_id) : // Check the permissions on each - $comment_id = (int) $comment_id; - $_post_id = (int) $wpdb->get_var( $wpdb->prepare( "SELECT comment_post_ID FROM $wpdb->comments WHERE comment_ID = %d", $comment_id) ); - - if ( !current_user_can('edit_post', $_post_id) ) + foreach ( $comment_ids as $comment_id ) { // Check the permissions on each + if ( !current_user_can( 'edit_comment', $comment_id ) ) continue; - switch( $doaction ) { - case 'markspam' : - wp_set_comment_status($comment_id, 'spam'); - $spammed++; - break; - case 'delete' : - wp_set_comment_status($comment_id, 'delete'); - $deleted++; - break; + switch ( $doaction ) { case 'approve' : - wp_set_comment_status($comment_id, 'approve'); + wp_set_comment_status( $comment_id, 'approve' ); $approved++; break; case 'unapprove' : - wp_set_comment_status($comment_id, 'hold'); + wp_set_comment_status( $comment_id, 'hold' ); $unapproved++; break; + case 'spam' : + wp_spam_comment( $comment_id ); + $spammed++; + break; + case 'unspam' : + wp_unspam_comment( $comment_id ); + $unspammed++; + break; + case 'trash' : + wp_trash_comment( $comment_id ); + $trashed++; + break; + case 'untrash' : + wp_untrash_comment( $comment_id ); + $untrashed++; + break; + case 'delete' : + wp_delete_comment( $comment_id ); + $deleted++; + break; } - endforeach; - - $redirect_to = 'edit-comments.php?deleted=' . $deleted . '&approved=' . $approved . '&spam=' . $spammed . '&unapproved=' . $unapproved; - if ( $post_id ) - $redirect_to = add_query_arg( 'p', absint( $post_id ), $redirect_to ); - if ( isset($_REQUEST['apage']) ) - $redirect_to = add_query_arg( 'apage', absint($_REQUEST['apage']), $redirect_to ); - if ( !empty($_REQUEST['mode']) ) - $redirect_to = add_query_arg('mode', $_REQUEST['mode'], $redirect_to); - if ( !empty($_REQUEST['comment_status']) ) - $redirect_to = add_query_arg('comment_status', $_REQUEST['comment_status'], $redirect_to); - if ( !empty($_REQUEST['s']) ) - $redirect_to = add_query_arg('s', $_REQUEST['s'], $redirect_to); - wp_redirect( $redirect_to ); -} 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']) ) ); + } + + if ( $approved ) + $redirect_to = add_query_arg( 'approved', $approved, $redirect_to ); + if ( $unapproved ) + $redirect_to = add_query_arg( 'unapproved', $unapproved, $redirect_to ); + if ( $spammed ) + $redirect_to = add_query_arg( 'spammed', $spammed, $redirect_to ); + if ( $unspammed ) + $redirect_to = add_query_arg( 'unspammed', $unspammed, $redirect_to ); + if ( $trashed ) + $redirect_to = add_query_arg( 'trashed', $trashed, $redirect_to ); + if ( $untrashed ) + $redirect_to = add_query_arg( 'untrashed', $untrashed, $redirect_to ); + if ( $deleted ) + $redirect_to = add_query_arg( 'deleted', $deleted, $redirect_to ); + if ( $trashed || $spammed ) + $redirect_to = add_query_arg( 'ids', join( ',', $comment_ids ), $redirect_to ); + + wp_safe_redirect( $redirect_to ); + exit; +} elseif ( ! empty( $_GET['_wp_http_referer'] ) ) { + wp_redirect( remove_query_arg( array( '_wp_http_referer', '_wpnonce' ), stripslashes( $_SERVER['REQUEST_URI'] ) ) ); exit; } -if ( $post_id ) - $title = sprintf(__('Edit Comments on “%s”'), wp_html_excerpt(_draft_or_post_title($post_id), 50)); -else - $title = __('Edit Comments'); - -require_once('admin-header.php'); - -$mode = ( ! isset($_GET['mode']) || empty($_GET['mode']) ) ? 'detail' : attribute_escape($_GET['mode']); - -$comment_status = !empty($_GET['comment_status']) ? attribute_escape($_GET['comment_status']) : ''; +$wp_list_table->prepare_items(); -$comment_type = !empty($_GET['comment_type']) ? attribute_escape($_GET['comment_type']) : ''; +wp_enqueue_script('admin-comments'); +enqueue_comment_hotkeys_js(); -$search_dirty = ( isset($_GET['s']) ) ? $_GET['s'] : ''; -$search = attribute_escape( $search_dirty ); ?> +if ( $post_id ) + $title = sprintf(__('Comments on “%s”'), wp_html_excerpt(_draft_or_post_title($post_id), 50)); +else + $title = __('Comments'); + +add_screen_option( 'per_page', array('label' => _x( 'Comments', 'comments per page (screen options)' )) ); + +get_current_screen()->add_help_tab( array( +'id' => 'overview', +'title' => __('Overview'), +'content' => + '
' . __( 'You can manage comments made on your site similar to the way you manage posts and other content. This screen is customizable in the same ways as other management screens, and you can act on comments using the on-hover action links or the Bulk Actions.' ) . '
' +) ); +get_current_screen()->add_help_tab( array( +'id' => 'moderating-comments', +'title' => __('Moderating Comments'), +'content' => + '' . __( 'For more information:' ) . '
' . + '' . __( 'Documentation on Comments' ) . '
' . + '' . __( 'Documentation on Comment Spam' ) . '
' . + '' . __( 'Documentation on Keyboard Shortcuts' ) . '
' . + '' . __( 'Support Forums' ) . '
' +); + +require_once('./admin-header.php'); +?>'; +if ( isset( $_REQUEST['error'] ) ) { + $error = (int) $_REQUEST['error']; + $error_msg = ''; + switch ( $error ) { + case 1 : + $error_msg = __( 'Oops, no comment with this ID.' ); + break; + case 2 : + $error_msg = __( 'You are not allowed to edit comments on this post.' ); + break; + } + if ( $error_msg ) + echo '
' . $error_msg . '
' . implode( "
\n", $messages ) . '