Make WordPress Core

Changeset 13246


Ignore:
Timestamp:
02/20/2010 11:18:25 AM (16 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.