X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/177fd6fefd2e3d5a0ea6591c71d660cabdb3c1a4..341dfbb66f24f5145174c373267f889c31615cc5:/wp-admin/edit-comments.php diff --git a/wp-admin/edit-comments.php b/wp-admin/edit-comments.php index bc62681b..224d3674 100644 --- a/wp-admin/edit-comments.php +++ b/wp-admin/edit-comments.php @@ -1,245 +1,257 @@ get_var("SELECT comment_post_ID FROM $wpdb->comments WHERE comment_ID = $comment"); - // $authordata = get_userdata( $wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $post_id") ); - if ( !current_user_can('edit_post', $post_id) ) - continue; - if ( !empty( $_REQUEST['spamit'] ) ) { - wp_set_comment_status($comment, 'spam'); - $comments_spammed++; - } elseif ( !empty( $_REQUEST['deleteit'] ) ) { - wp_set_comment_status($comment, 'delete'); - $comments_deleted++; - } elseif ( !empty( $_REQUEST['approveit'] ) ) { - wp_set_comment_status($comment, 'approve'); - $comments_approved++; - } elseif ( !empty( $_REQUEST['unapproveit'] ) ) { - wp_set_comment_status($comment, 'hold'); - $comments_unapproved++; - } - endforeach; - $redirect_to = basename( __FILE__ ) . '?deleted=' . $comments_deleted . '&approved=' . $comments_approved . '&spam=' . $comments_spammed . '&unapproved=' . $comments_unapproved; - 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 ( !empty($_GET['_wp_http_referer']) ) { - wp_redirect(remove_query_arg(array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI']))); - exit; -} - -require_once('admin-header.php'); - -if ( empty($_GET['mode']) ) - $mode = 'detail'; -else - $mode = attribute_escape($_GET['mode']); - -if ( isset($_GET['comment_status']) ) - $comment_status = attribute_escape($_GET['comment_status']); -else - $comment_status = ''; - -if ( isset($_GET['s']) ) - $search_dirty = $_GET['s']; -else - $search_dirty = ''; -$search = attribute_escape( $search_dirty ); -?> -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; + } - if ( $approved > 0 || $deleted > 0 || $spam > 0 ) { - echo '

'; + $approved = $unapproved = $spammed = $unspammed = $trashed = $untrashed = $deleted = 0; - if ( $approved > 0 ) { - printf( __ngettext( '%s comment approved', '%s comments approved', $approved ), $approved ); - echo '
'; - } + $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 ); - if ( $deleted > 0 ) { - printf( __ngettext( '%s comment deleted', '%s comments deleted', $deleted ), $deleted ); - echo '
'; - } + foreach ( $comment_ids as $comment_id ) { // Check the permissions on each + if ( !current_user_can( 'edit_comment', $comment_id ) ) + continue; - if ( $spam > 0 ) { - printf( __ngettext( '%s comment marked as spam', '%s comments marked as spam', $spam ), $spam ); - echo '
'; + switch ( $doaction ) { + case 'approve' : + wp_set_comment_status( $comment_id, 'approve' ); + $approved++; + break; + case 'unapprove' : + 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; } - - echo '

'; } -} -?> -
-
-

- +wp_enqueue_script('admin-comments'); +enqueue_comment_hotkeys_js(); -

- - -

+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' => + '' +) ); + +get_current_screen()->set_help_sidebar( + '

' . __( 'For more information:' ) . '

' . + '

' . __( 'Documentation on Comments' ) . '

' . + '

' . __( 'Documentation on Comment Spam' ) . '

' . + '

' . __( 'Documentation on Keyboard Shortcuts' ) . '

' . + '

' . __( 'Support Forums' ) . '

' +); + +require_once('./admin-header.php'); +?> - - -
+
+ +

%s', + get_edit_post_link($post_id), + wp_html_excerpt(_draft_or_post_title($post_id), 50) + ) + ); +else + echo __('Comments'); -
    -
  • >
  • -
  • >
  • -
+if ( isset($_REQUEST['s']) && $_REQUEST['s'] ) + printf( '' . sprintf( __( 'Search results for “%s”' ), wp_html_excerpt( esc_html( stripslashes( $_REQUEST['s'] ) ), 50 ) ) . '' ); ?> +

' . $error_msg . '

'; +} -if ( isset( $_GET['apage'] ) ) - $page = abs( (int) $_GET['apage'] ); -else - $page = 1; - -$start = $offset = ( $page - 1 ) * 20; +if ( isset($_REQUEST['approved']) || isset($_REQUEST['deleted']) || isset($_REQUEST['trashed']) || isset($_REQUEST['untrashed']) || isset($_REQUEST['spammed']) || isset($_REQUEST['unspammed']) || isset($_REQUEST['same']) ) { + $approved = isset( $_REQUEST['approved'] ) ? (int) $_REQUEST['approved'] : 0; + $deleted = isset( $_REQUEST['deleted'] ) ? (int) $_REQUEST['deleted'] : 0; + $trashed = isset( $_REQUEST['trashed'] ) ? (int) $_REQUEST['trashed'] : 0; + $untrashed = isset( $_REQUEST['untrashed'] ) ? (int) $_REQUEST['untrashed'] : 0; + $spammed = isset( $_REQUEST['spammed'] ) ? (int) $_REQUEST['spammed'] : 0; + $unspammed = isset( $_REQUEST['unspammed'] ) ? (int) $_REQUEST['unspammed'] : 0; + $same = isset( $_REQUEST['same'] ) ? (int) $_REQUEST['same'] : 0; + + if ( $approved > 0 || $deleted > 0 || $trashed > 0 || $untrashed > 0 || $spammed > 0 || $unspammed > 0 || $same > 0 ) { + if ( $approved > 0 ) + $messages[] = sprintf( _n( '%s comment approved', '%s comments approved', $approved ), $approved ); + + if ( $spammed > 0 ) { + $ids = isset($_REQUEST['ids']) ? $_REQUEST['ids'] : 0; + $messages[] = sprintf( _n( '%s comment marked as spam.', '%s comments marked as spam.', $spammed ), $spammed ) . ' ' . __('Undo') . '
'; + } -list($_comments, $total) = _wp_get_comment_list( $comment_status, $search_dirty, $start, 25 ); // Grab a few extra + if ( $unspammed > 0 ) + $messages[] = sprintf( _n( '%s comment restored from the spam', '%s comments restored from the spam', $unspammed ), $unspammed ); -$comments = array_slice($_comments, 0, 20); -$extra_comments = array_slice($_comments, 20); + if ( $trashed > 0 ) { + $ids = isset($_REQUEST['ids']) ? $_REQUEST['ids'] : 0; + $messages[] = sprintf( _n( '%s comment moved to the Trash.', '%s comments moved to the Trash.', $trashed ), $trashed ) . ' ' . __('Undo') . '
'; + } -$page_links = paginate_links( array( - 'base' => add_query_arg( 'apage', '%#%' ), - 'format' => '', - 'total' => ceil($total / 20), - 'current' => $page -)); + if ( $untrashed > 0 ) + $messages[] = sprintf( _n( '%s comment restored from the Trash', '%s comments restored from the Trash', $untrashed ), $untrashed ); + + if ( $deleted > 0 ) + $messages[] = sprintf( _n( '%s comment permanently deleted', '%s comments permanently deleted', $deleted ), $deleted ); + + if ( $same > 0 && $comment = get_comment( $same ) ) { + switch ( $comment->comment_approved ) { + case '1' : + $messages[] = __('This comment is already approved.') . ' ' . __( 'Edit comment' ) . ''; + break; + case 'trash' : + $messages[] = __( 'This comment is already in the Trash.' ) . ' ' . __( 'View Trash' ) . ''; + break; + case 'spam' : + $messages[] = __( 'This comment is already marked as spam.' ) . ' ' . __( 'Edit comment' ) . ''; + break; + } + } + echo '

' . implode( "
\n", $messages ) . '

'; + } +} ?> -
+views(); ?> -
+ -$page_links
"; -?> +search_box( __( 'Search Comments' ), 'comment' ); ?> -
- - + + - - - - - - - -
+ + -
+ + + -
- -
- - - - - - - - - - - -comment_ID, $mode, $comment_status ); -?> - - -comment_ID, $mode, $comment_status ); -?> - -
+ + + +display(); ?> - - - -
- -

- -

- -

- -

- -
-$page_links
"; -?> -
- +
- +