Make WordPress Core

Changeset 13246


Ignore:
Timestamp:
02/20/2010 11:18:25 AM (15 years ago)
Author:
nacin
Message:

Comments moderation code cleanup. Dry up some code, add screen icon to AYS, fix notice in comment_footer_die(). Redirect to edit-comments.php on an error, instead of stranding them with dull comment_footer_die() message. See #11441

Location:
trunk/wp-admin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/comment.php

    r12789 r13246  
    3636 */
    3737function comment_footer_die( $msg ) {
     38    global $hook_suffix;
    3839    echo "<div class='wrap'><p>$msg</p></div>";
    3940    include('admin-footer.php');
     
    7172case 'spam'    :
    7273
     74    $comment_id = absint( $_GET['c'] );
     75
     76    if ( !$comment = get_comment_to_edit( $comment_id ) ) {
     77        wp_redirect( admin_url('edit-comments.php?error=1') );
     78        die();
     79    }
     80
     81    if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) ) {
     82        wp_redirect( admin_url('edit-comments.php?error=2') );
     83        die();
     84    }
     85
    7386    require_once('admin-header.php');
    7487
    75     $comment_id = absint( $_GET['c'] );
    7688    $formaction    = $action . 'comment';
    7789    $nonce_action  = 'approve' == $action ? 'approve-comment_' : 'delete-comment_';
    7890    $nonce_action .= $comment_id;
    7991
    80     if ( !$comment = get_comment_to_edit( $comment_id ) )
    81         comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit.php') );
    82 
    83     if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
    84         comment_footer_die( 'approve' != $action ? __('You are not allowed to delete comments on this post.') : __('You are not allowed to edit comments on this post, so you cannot approve this comment.') );
    8592?>
    8693<div class='wrap'>
    8794
    8895<div class="narrow">
     96
     97<?php screen_icon(); ?>
     98<h2><?php esc_html_e( 'Moderate Comment' ); ?></h2>
     99
    89100<?php
    90101switch ( $action ) {
     
    156167    break;
    157168
    158 case 'deletecomment' :
    159 case 'trashcomment' :
    160 case 'untrashcomment' :
    161 case 'spamcomment' :
    162 case 'unspamcomment' :
     169case 'deletecomment'    :
     170case 'trashcomment'     :
     171case 'untrashcomment'   :
     172case 'spamcomment'      :
     173case 'unspamcomment'    :
     174case 'approvecomment'   :
     175case 'unapprovecomment' :
    163176    $comment_id = absint( $_REQUEST['c'] );
    164     check_admin_referer( 'delete-comment_' . $comment_id );
     177
     178    if ( in_array( $action, array( 'approvecomment', 'unapprovecomment' ) ) )
     179        check_admin_referer( 'approve-comment_' . $comment_id );
     180    else
     181        check_admin_referer( 'delete-comment_' . $comment_id );
    165182
    166183    $noredir = isset($_REQUEST['noredir']);
     
    171188        comment_footer_die( __('You are not allowed to edit comments on this post.') );
    172189
    173     if ( '' != wp_get_referer() && false == $noredir && false === strpos(wp_get_referer(), 'comment.php') )
     190    if ( '' != wp_get_referer() && ! $noredir && false === strpos(wp_get_referer(), 'comment.php') )
    174191        $redir = wp_get_referer();
    175     elseif ( '' != wp_get_original_referer() && false == $noredir )
     192    elseif ( '' != wp_get_original_referer() && ! $noredir )
    176193        $redir = wp_get_original_referer();
     194    elseif ( in_array( $action, array( 'approvecomment', 'unapprovecomment' ) ) )
     195        $redir = admin_url('edit-comments.php?p=' . absint( $comment->comment_post_ID ) );
    177196    else
    178197        $redir = admin_url('edit-comments.php');
    179198
    180     $redir = remove_query_arg( array('spammed', 'unspammed', 'trashed', 'untrashed', 'deleted', 'ids'), $redir );
     199    $redir = remove_query_arg( array('spammed', 'unspammed', 'trashed', 'untrashed', 'deleted', 'ids', 'approved', 'unapproved'), $redir );
    181200
    182201    switch ( $action ) {
     
    201220            $redir = add_query_arg( array('unspammed' => '1'), $redir );
    202221            break;
    203     }
     222        case 'approvecomment' :
     223            wp_set_comment_status( $comment_id, 'approve' );
     224            $redir = add_query_arg( array( 'approved' => 1 ), $redir );
     225            break;
     226        case 'unapprovecomment' :
     227            wp_set_comment_status( $comment_id, 'hold' );
     228            $redir = add_query_arg( array( 'unapproved' => 1 ), $redir );
     229            break;
     230    }   
    204231
    205232    wp_redirect( $redir );
    206 
    207233    die;
    208     break;
    209 
    210 case 'approvecomment'   :
    211 case 'unapprovecomment' :
    212     $comment_id = absint( $_GET['c'] );
    213     check_admin_referer( 'approve-comment_' . $comment_id );
    214 
    215     $noredir = isset( $_GET['noredir'] );
    216 
    217     if ( !$comment = get_comment( $comment_id ) )
    218         comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit.php') );
    219 
    220     if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) ) {
    221         if ( 'approvecomment' == $action )
    222             comment_footer_die( __('You are not allowed to edit comments on this post, so you cannot approve this comment.') );
    223         else
    224             comment_footer_die( __('You are not allowed to edit comments on this post, so you cannot disapprove this comment.') );
    225     }
    226 
    227     if ( '' != wp_get_referer() && false == $noredir )
    228         $redir = remove_query_arg( array('approved', 'unapproved'), wp_get_referer() );
    229     else
    230         $redir = admin_url('edit-comments.php?p=' . absint( $comment->comment_post_ID ) );
    231 
    232     if ( 'approvecomment' == $action ) {
    233         wp_set_comment_status( $comment_id, 'approve' );
    234         $redir = add_query_arg( array( 'approved' => 1 ), $redir );
    235     } else {
    236         wp_set_comment_status( $comment_id, 'hold' );
    237         $redir = add_query_arg( array( 'unapproved' => 1 ), $redir );
    238     }
    239 
    240     wp_redirect( $redir );
    241 
    242     exit();
    243234    break;
    244235
  • trunk/wp-admin/edit-comments.php

    r13100 r13246  
    127127
    128128<?php
     129if ( isset( $_GET['error'] ) ) {
     130    $error = (int) $_GET['error'];
     131    $error_msg = '';
     132    switch ( $error ) {
     133        case 1 :
     134            $error_msg = __( 'Oops, no comment with this ID.' );
     135            break;
     136        case 2 :
     137            $error_msg = __( 'You are not allowed to edit comments on this post.' );
     138            break;
     139    }
     140    if ( $error_msg )
     141        echo '<div id="moderated" class="error"><p>' . $error_msg . '</p></div>';
     142}
     143
    129144if ( isset($_GET['approved']) || isset($_GET['deleted']) || isset($_GET['trashed']) || isset($_GET['untrashed']) || isset($_GET['spammed']) || isset($_GET['unspammed']) ) {
    130     $approved = isset($_GET['approved']) ? (int) $_GET['approved'] : 0;
    131     $deleted = isset($_GET['deleted']) ? (int) $_GET['deleted'] : 0;
    132     $trashed = isset($_GET['trashed']) ? (int) $_GET['trashed'] : 0;
    133     $untrashed = isset($_GET['untrashed']) ? (int) $_GET['untrashed'] : 0;
    134     $spammed = isset($_GET['spammed']) ? (int) $_GET['spammed'] : 0;
    135     $unspammed = isset($_GET['unspammed']) ? (int) $_GET['unspammed'] : 0;
     145    $approved  = isset( $_GET['approved']  ) ? (int) $_GET['approved'] : 0;
     146    $deleted   = isset( $_GET['deleted']   ) ? (int) $_GET['deleted']  : 0;
     147    $trashed   = isset( $_GET['trashed']   ) ? (int) $_GET['trashed']  : 0;
     148    $untrashed = isset( $_GET['untrashed'] ) ? (int) $_GET['untrashed'] : 0;
     149    $spammed   = isset( $_GET['spammed']   ) ? (int) $_GET['spammed']  : 0;
     150    $unspammed = isset( $_GET['unspammed'] ) ? (int) $_GET['unspammed'] : 0;
    136151
    137152    if ( $approved > 0 || $deleted > 0 || $trashed > 0 || $untrashed > 0 || $spammed > 0 || $unspammed > 0 ) {
    138         echo '<div id="moderated" class="updated"><p>';
    139 
    140         if ( $approved > 0 ) {
    141             printf( _n( '%s comment approved', '%s comments approved', $approved ), $approved );
    142             echo '<br />';
     153        if ( $approved > 0 )
     154            $messages[] = sprintf( _n( '%s comment approved', '%s comments approved', $approved ), $approved );
     155
     156        if ( $spammed > 0 ) {
     157            $ids = isset($_GET['ids']) ? $_GET['ids'] : 0;
     158            $messages[] = sprintf( _n( '%s comment marked as spam.', '%s comments marked as spam.', $spammed ), $spammed ) . ' <a href="' . esc_url( wp_nonce_url( "edit-comments.php?doaction=undo&action=unspam&ids=$ids", "bulk-comments" ) ) . '">' . __('Undo') . '</a><br />';
    143159        }
    144         if ( $spammed > 0 ) {
    145             printf( _n( '%s comment marked as spam.', '%s comments marked as spam.', $spammed ), $spammed );
     160
     161        if ( $unspammed > 0 )
     162            $messages = sprintf( _n( '%s comment restored from the spam', '%s comments restored from the spam', $unspammed ), $unspammed );
     163
     164        if ( $trashed > 0 ) {
    146165            $ids = isset($_GET['ids']) ? $_GET['ids'] : 0;
    147             echo ' <a href="' . esc_url( wp_nonce_url( "edit-comments.php?doaction=undo&action=unspam&ids=$ids", "bulk-comments" ) ) . '">' . __('Undo') . '</a><br />';
     166            $messages[] = sprintf( _n( '%s comment moved to the trash.', '%s comments moved to the trash.', $trashed ), $trashed ) . ' <a href="' . esc_url( wp_nonce_url( "edit-comments.php?doaction=undo&action=untrash&ids=$ids", "bulk-comments" ) ) . '">' . __('Undo') . '</a><br />';
    148167        }
    149         if ( $unspammed > 0 ) {
    150             printf( _n( '%s comment restored from the spam', '%s comments restored from the spam', $unspammed ), $unspammed );
    151             echo '<br />';
    152         }
    153         if ( $trashed > 0 ) {
    154             printf( _n( '%s comment moved to the trash.', '%s comments moved to the trash.', $trashed ), $trashed );
    155             $ids = isset($_GET['ids']) ? $_GET['ids'] : 0;
    156             echo ' <a href="' . esc_url( wp_nonce_url( "edit-comments.php?doaction=undo&action=untrash&ids=$ids", "bulk-comments" ) ) . '">' . __('Undo') . '</a><br />';
    157         }
    158         if ( $untrashed > 0 ) {
    159             printf( _n( '%s comment restored from the trash', '%s comments restored from the trash', $untrashed ), $untrashed );
    160             echo '<br />';
    161         }
    162         if ( $deleted > 0 ) {
    163             printf( _n( '%s comment permanently deleted', '%s comments permanently deleted', $deleted ), $deleted );
    164             echo '<br />';
    165         }
    166 
    167         echo '</p></div>';
     168
     169        if ( $untrashed > 0 )
     170            $messages[] = sprintf( _n( '%s comment restored from the trash', '%s comments restored from the trash', $untrashed ), $untrashed );
     171
     172        if ( $deleted > 0 )
     173            $messages[] = sprintf( _n( '%s comment permanently deleted', '%s comments permanently deleted', $deleted ), $deleted );
     174
     175        echo '<div id="moderated" class="updated"><p>' . implode( "<br/>\n", $messages ) . '</p></div>';
    168176    }
    169177}
Note: See TracChangeset for help on using the changeset viewer.