2006-10-26 00:55:05 +02:00
< ? php
2008-08-11 22:26:31 +02:00
/**
2011-04-28 17:24:49 +02:00
* Comment Management Screen
2008-08-11 22:26:31 +02:00
*
* @ package WordPress
* @ subpackage Administration
*/
/** Load WordPress Bootstrap */
2010-04-18 08:14:45 +02:00
require_once ( './admin.php' );
2006-10-26 00:55:05 +02:00
2006-12-07 01:40:31 +01:00
$parent_file = 'edit-comments.php' ;
2006-10-26 00:55:05 +02:00
$submenu_file = 'edit-comments.php' ;
2007-12-10 21:42:03 +01:00
wp_reset_vars ( array ( 'action' ) );
2006-10-26 00:55:05 +02:00
if ( isset ( $_POST [ 'deletecomment' ] ) )
$action = 'deletecomment' ;
2009-12-15 11:55:55 +01:00
if ( 'cdc' == $action )
$action = 'delete' ;
elseif ( 'mac' == $action )
$action = 'approve' ;
if ( isset ( $_GET [ 'dt' ] ) ) {
if ( 'spam' == $_GET [ 'dt' ] )
$action = 'spam' ;
elseif ( 'trash' == $_GET [ 'dt' ] )
$action = 'trash' ;
}
2008-08-11 22:26:31 +02:00
/**
* Display error message at bottom of comments .
*
* @ param string $msg Error Message . Assumed to contain HTML and be sanitized .
*/
2009-07-19 01:21:50 +02:00
function comment_footer_die ( $msg ) {
2007-12-10 21:42:03 +01:00
echo " <div class='wrap'><p> $msg </p></div> " ;
2010-04-18 08:14:45 +02:00
include ( './admin-footer.php' );
2007-12-10 21:42:03 +01:00
die ;
}
switch ( $action ) {
case 'editcomment' :
2006-10-26 00:55:05 +02:00
$title = __ ( 'Edit Comment' );
2011-12-01 03:22:07 +01:00
get_current_screen () -> add_help_tab ( array (
'id' => 'overview' ,
'title' => __ ( 'Overview' ),
'content' =>
'<p>' . __ ( 'You can edit the information left in a comment if needed. This is often useful when you notice that a commenter has made a typographical error.' ) . '</p>' .
'<p>' . __ ( 'You can also moderate the comment from this screen using the Status box, where you can also change the timestamp of the comment.' ) . '</p>'
) );
2011-11-02 21:54:56 +01:00
get_current_screen () -> set_help_sidebar (
2010-05-28 01:45:45 +02:00
'<p><strong>' . __ ( 'For more information:' ) . '</strong></p>' .
2011-04-28 17:24:49 +02:00
'<p>' . __ ( '<a href="http://codex.wordpress.org/Administration_Screens#Comments" target="_blank">Documentation on Comments</a>' ) . '</p>' .
2011-04-29 16:53:43 +02:00
'<p>' . __ ( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
2010-05-28 01:45:45 +02:00
);
2008-02-20 03:41:16 +01:00
wp_enqueue_script ( 'comment' );
2010-04-18 08:14:45 +02:00
require_once ( './admin-header.php' );
2006-10-26 00:55:05 +02:00
2007-12-10 21:42:03 +01:00
$comment_id = absint ( $_GET [ 'c' ] );
2006-10-26 00:55:05 +02:00
2007-12-10 21:42:03 +01:00
if ( ! $comment = get_comment ( $comment_id ) )
2012-01-29 09:12:09 +01:00
comment_footer_die ( __ ( 'Oops, no comment with this ID.' ) . sprintf ( ' <a href="%s">' . __ ( 'Go back' ) . '</a>.' , 'javascript:history.go(-1)' ) );
2006-10-26 00:55:05 +02:00
2010-09-08 01:35:28 +02:00
if ( ! current_user_can ( 'edit_comment' , $comment_id ) )
comment_footer_die ( __ ( 'You are not allowed to edit this comment.' ) );
2006-10-26 00:55:05 +02:00
2009-08-09 12:58:41 +02:00
if ( 'trash' == $comment -> comment_approved )
2009-07-30 15:39:34 +02:00
comment_footer_die ( __ ( 'This comment is in the Trash. Please move it out of the Trash if you want to edit it.' ) );
2009-09-14 16:03:32 +02:00
2007-12-10 21:42:03 +01:00
$comment = get_comment_to_edit ( $comment_id );
2006-10-26 00:55:05 +02:00
2010-04-18 08:14:45 +02:00
include ( './edit-form-comment.php' );
2006-10-26 00:55:05 +02:00
break ;
2009-12-15 11:55:55 +01:00
case 'delete' :
case 'approve' :
case 'trash' :
case 'spam' :
2006-10-26 00:55:05 +02:00
2010-09-26 11:37:25 +02:00
$title = __ ( 'Moderate Comment' );
2010-02-20 12:18:25 +01:00
$comment_id = absint ( $_GET [ 'c' ] );
if ( ! $comment = get_comment_to_edit ( $comment_id ) ) {
wp_redirect ( admin_url ( 'edit-comments.php?error=1' ) );
die ();
}
2010-09-08 01:35:28 +02:00
if ( ! current_user_can ( 'edit_comment' , $comment -> comment_ID ) ) {
2010-02-20 12:18:25 +01:00
wp_redirect ( admin_url ( 'edit-comments.php?error=2' ) );
die ();
}
2010-02-20 12:48:38 +01:00
// No need to re-approve/re-trash/re-spam a comment.
if ( $action == str_replace ( '1' , 'approve' , $comment -> comment_approved ) ) {
wp_redirect ( admin_url ( 'edit-comments.php?same=' . $comment_id ) );
die ();
}
2010-04-18 08:14:45 +02:00
require_once ( './admin-header.php' );
2006-10-26 00:55:05 +02:00
2009-12-15 11:55:55 +01:00
$formaction = $action . 'comment' ;
$nonce_action = 'approve' == $action ? 'approve-comment_' : 'delete-comment_' ;
2007-12-10 21:42:03 +01:00
$nonce_action .= $comment_id ;
2006-10-26 00:55:05 +02:00
?>
< div class = 'wrap' >
< div class = " narrow " >
2010-02-20 12:18:25 +01:00
< ? php screen_icon (); ?>
2010-09-29 11:11:08 +02:00
< h2 >< ? php echo esc_html ( $title ); ?> </h2>
2010-02-20 12:18:25 +01:00
2007-12-10 21:42:03 +01:00
< ? php
2009-12-15 11:55:55 +01:00
switch ( $action ) {
case 'spam' :
$caution_msg = __ ( 'You are about to mark the following comment as spam:' );
$button = __ ( 'Spam Comment' );
break ;
case 'trash' :
$caution_msg = __ ( 'You are about to move the following comment to the Trash:' );
$button = __ ( 'Trash Comment' );
break ;
case 'delete' :
$caution_msg = __ ( 'You are about to delete the following comment:' );
$button = __ ( 'Permanently Delete Comment' );
break ;
default :
$caution_msg = __ ( 'You are about to approve the following comment:' );
$button = __ ( 'Approve Comment' );
break ;
2007-12-10 21:42:03 +01:00
}
2010-02-20 12:48:38 +01:00
if ( $comment -> comment_approved != '0' ) { // if not unapproved
$message = '' ;
switch ( $comment -> comment_approved ) {
case '1' :
$message = __ ( 'This comment is currently approved.' );
break ;
case 'spam' :
$message = __ ( 'This comment is currently marked as spam.' );
break ;
case 'trash' :
$message = __ ( 'This comment is currently in the Trash.' );
break ;
}
if ( $message )
echo '<div class="updated"><p>' . $message . '</p></div>' ;
}
?>
2007-12-10 21:42:03 +01:00
< p >< strong >< ? php _e ( 'Caution:' ); ?> </strong> <?php echo $caution_msg; ?></p>
2006-10-26 00:55:05 +02:00
2009-12-15 11:55:55 +01:00
< table class = " form-table comment-ays " >
2006-10-26 00:55:05 +02:00
< tr class = " alt " >
2007-12-23 11:05:37 +01:00
< th scope = " row " >< ? php _e ( 'Author' ); ?> </th>
2006-10-26 00:55:05 +02:00
< td >< ? php echo $comment -> comment_author ; ?> </td>
</ tr >
< ? php if ( $comment -> comment_author_email ) { ?>
< tr >
2007-12-23 11:05:37 +01:00
< th scope = " row " >< ? php _e ( 'E-mail' ); ?> </th>
2006-10-26 00:55:05 +02:00
< td >< ? php echo $comment -> comment_author_email ; ?> </td>
</ tr >
< ? php } ?>
< ? php if ( $comment -> comment_author_url ) { ?>
< tr >
2007-12-23 11:05:37 +01:00
< th scope = " row " >< ? php _e ( 'URL' ); ?> </th>
2009-07-19 01:21:50 +02:00
< td >< a href = " <?php echo $comment->comment_author_url ; ?> " >< ? php echo $comment -> comment_author_url ; ?> </a></td>
2006-10-26 00:55:05 +02:00
</ tr >
< ? php } ?>
< tr >
2010-05-14 23:46:25 +02:00
< th scope = " row " valign = " top " >< ? php /* translators: field name in comment form */ _ex ( 'Comment' , 'noun' ); ?> </th>
2007-05-25 11:41:04 +02:00
< td >< ? php echo $comment -> comment_content ; ?> </td>
2006-10-26 00:55:05 +02:00
</ tr >
</ table >
2010-01-21 22:37:43 +01:00
< p >< ? php _e ( 'Are you sure you want to do this?' ); ?> </p>
2009-12-15 11:55:55 +01:00
< form action = 'comment.php' method = 'get' >
< table width = " 100% " >
< tr >
< td >< a class = " button " href = " <?php echo admin_url('edit-comments.php'); ?> " >< ? php esc_attr_e ( 'No' ); ?> </a></td>
2010-10-28 23:56:43 +02:00
< td class = " textright " >< ? php submit_button ( $button , 'button' ); ?> </td>
2009-12-15 11:55:55 +01:00
</ tr >
</ table >
< ? php wp_nonce_field ( $nonce_action ); ?>
< input type = 'hidden' name = 'action' value = '<?php echo esc_attr($formaction); ?>' />
< input type = 'hidden' name = 'c' value = '<?php echo esc_attr($comment->comment_ID); ?>' />
< input type = 'hidden' name = 'noredir' value = '1' />
</ form >
2006-10-26 00:55:05 +02:00
</ div >
</ div >
< ? php
break ;
2010-02-20 12:18:25 +01:00
case 'deletecomment' :
case 'trashcomment' :
case 'untrashcomment' :
case 'spamcomment' :
case 'unspamcomment' :
case 'approvecomment' :
case 'unapprovecomment' :
2009-07-30 15:39:34 +02:00
$comment_id = absint ( $_REQUEST [ 'c' ] );
2010-02-20 12:18:25 +01:00
if ( in_array ( $action , array ( 'approvecomment' , 'unapprovecomment' ) ) )
check_admin_referer ( 'approve-comment_' . $comment_id );
else
check_admin_referer ( 'delete-comment_' . $comment_id );
2009-12-15 11:55:55 +01:00
2009-07-30 15:39:34 +02:00
$noredir = isset ( $_REQUEST [ 'noredir' ]);
2009-09-14 16:03:32 +02:00
2009-10-27 04:46:31 +01:00
if ( ! $comment = get_comment ( $comment_id ) )
2012-01-29 09:12:09 +01:00
comment_footer_die ( __ ( 'Oops, no comment with this ID.' ) . sprintf ( ' <a href="%s">' . __ ( 'Go back' ) . '</a>.' , 'edit-comments.php' ) );
2010-09-08 01:35:28 +02:00
if ( ! current_user_can ( 'edit_comment' , $comment -> comment_ID ) )
2009-07-30 15:39:34 +02:00
comment_footer_die ( __ ( 'You are not allowed to edit comments on this post.' ) );
2009-09-14 16:03:32 +02:00
2010-02-20 12:18:25 +01:00
if ( '' != wp_get_referer () && ! $noredir && false === strpos ( wp_get_referer (), 'comment.php' ) )
2009-10-27 04:46:31 +01:00
$redir = wp_get_referer ();
2010-02-20 12:18:25 +01:00
elseif ( '' != wp_get_original_referer () && ! $noredir )
2009-10-27 04:46:31 +01:00
$redir = wp_get_original_referer ();
2010-02-20 12:18:25 +01:00
elseif ( in_array ( $action , array ( 'approvecomment' , 'unapprovecomment' ) ) )
$redir = admin_url ( 'edit-comments.php?p=' . absint ( $comment -> comment_post_ID ) );
2009-10-27 04:46:31 +01:00
else
$redir = admin_url ( 'edit-comments.php' );
2010-02-20 12:18:25 +01:00
$redir = remove_query_arg ( array ( 'spammed' , 'unspammed' , 'trashed' , 'untrashed' , 'deleted' , 'ids' , 'approved' , 'unapproved' ), $redir );
2009-11-27 11:34:09 +01:00
switch ( $action ) {
2009-12-15 10:45:29 +01:00
case 'deletecomment' :
2009-12-15 11:55:55 +01:00
wp_delete_comment ( $comment_id );
2009-12-15 10:45:29 +01:00
$redir = add_query_arg ( array ( 'deleted' => '1' ), $redir );
break ;
2009-11-27 11:34:09 +01:00
case 'trashcomment' :
wp_trash_comment ( $comment_id );
$redir = add_query_arg ( array ( 'trashed' => '1' , 'ids' => $comment_id ), $redir );
break ;
case 'untrashcomment' :
wp_untrash_comment ( $comment_id );
$redir = add_query_arg ( array ( 'untrashed' => '1' ), $redir );
break ;
case 'spamcomment' :
wp_spam_comment ( $comment_id );
$redir = add_query_arg ( array ( 'spammed' => '1' , 'ids' => $comment_id ), $redir );
break ;
case 'unspamcomment' :
wp_unspam_comment ( $comment_id );
$redir = add_query_arg ( array ( 'unspammed' => '1' ), $redir );
break ;
2010-02-20 12:18:25 +01:00
case 'approvecomment' :
wp_set_comment_status ( $comment_id , 'approve' );
$redir = add_query_arg ( array ( 'approved' => 1 ), $redir );
break ;
case 'unapprovecomment' :
wp_set_comment_status ( $comment_id , 'hold' );
$redir = add_query_arg ( array ( 'unapproved' => 1 ), $redir );
break ;
2010-02-21 01:03:42 +01:00
}
2009-09-14 16:03:32 +02:00
2009-10-27 04:46:31 +01:00
wp_redirect ( $redir );
2009-07-30 15:39:34 +02:00
die ;
break ;
2007-12-10 21:42:03 +01:00
case 'editedcomment' :
2006-10-26 00:55:05 +02:00
2007-12-10 21:42:03 +01:00
$comment_id = absint ( $_POST [ 'comment_ID' ] );
2009-03-06 06:06:15 +01:00
$comment_post_id = absint ( $_POST [ 'comment_post_ID' ] );
2006-10-26 00:55:05 +02:00
2007-12-10 21:42:03 +01:00
check_admin_referer ( 'update-comment_' . $comment_id );
2006-10-26 00:55:05 +02:00
edit_comment ();
2008-11-20 05:51:47 +01:00
$location = ( empty ( $_POST [ 'referredby' ] ) ? " edit-comments.php?p= $comment_post_id " : $_POST [ 'referredby' ] ) . '#comment-' . $comment_id ;
2007-12-10 21:42:03 +01:00
$location = apply_filters ( 'comment_edit_redirect' , $location , $comment_id );
wp_redirect ( $location );
2006-11-15 01:02:28 +01:00
exit ();
2006-10-26 00:55:05 +02:00
break ;
2007-12-10 21:42:03 +01:00
2006-10-26 00:55:05 +02:00
default :
2007-12-10 21:42:03 +01:00
wp_die ( __ ( 'Unknown action.' ) );
2006-10-26 00:55:05 +02:00
break ;
2007-12-10 21:42:03 +01:00
2006-10-26 00:55:05 +02:00
} // end switch
2010-04-18 08:14:45 +02:00
include ( './admin-footer.php' );