2003-11-12 10:22:47 -05:00
< ? php
2004-10-18 23:03:06 -04:00
require_once ( 'admin.php' );
2004-04-24 22:19:31 -04:00
2006-11-18 02:31:29 -05:00
$title = __ ( 'Moderate comments' );
$parent_file = 'edit-comments.php' ;
2006-06-06 00:14:04 -04:00
wp_enqueue_script ( 'admin-comments' );
2003-11-12 10:22:47 -05:00
2006-07-03 15:03:37 -04:00
wp_reset_vars ( array ( 'action' , 'item_ignored' , 'item_deleted' , 'item_approved' , 'item_spam' , 'feelinglucky' ));
2003-11-12 10:22:47 -05:00
2004-01-01 19:49:13 -05:00
$comment = array ();
2004-04-20 18:56:47 -04:00
if ( isset ( $_POST [ " comment " ])) {
foreach ( $_POST [ " comment " ] as $k => $v ) {
2004-01-01 19:49:13 -05:00
$comment [ intval ( $k )] = $v ;
}
}
2003-11-12 10:22:47 -05:00
switch ( $action ) {
case 'update' :
2006-05-02 18:36:06 -04:00
check_admin_referer ( 'moderate-comments' );
2006-03-30 18:12:54 -05:00
2006-09-26 20:51:17 -04:00
if ( ! current_user_can ( 'moderate_comments' ) )
wp_die ( __ ( 'Your level is not high enough to moderate comments.' ));
2003-11-12 10:22:47 -05:00
$item_ignored = 0 ;
$item_deleted = 0 ;
$item_approved = 0 ;
2005-02-10 20:52:19 -05:00
$item_spam = 0 ;
2003-11-12 10:22:47 -05:00
foreach ( $comment as $key => $value ) {
2004-09-08 04:30:18 -04:00
if ( $feelinglucky && 'later' == $value )
$value = 'delete' ;
2006-11-19 02:56:05 -05:00
switch ( $value ) {
2003-11-15 03:58:18 -05:00
case 'later' :
// do nothing with that comment
// wp_set_comment_status($key, "hold");
++ $item_ignored ;
break ;
case 'delete' :
wp_set_comment_status ( $key , 'delete' );
++ $item_deleted ;
break ;
2006-11-19 02:56:05 -05:00
case 'spam' :
wp_set_comment_status ( $key , 'spam' );
++ $item_spam ;
break ;
2003-11-15 03:58:18 -05:00
case 'approve' :
wp_set_comment_status ( $key , 'approve' );
2006-08-30 17:46:31 -04:00
if ( get_option ( 'comments_notify' ) == true ) {
2003-11-15 03:58:18 -05:00
wp_notify_postauthor ( $key );
}
++ $item_approved ;
break ;
2006-11-19 02:56:05 -05:00
}
2003-11-12 10:22:47 -05:00
}
$file = basename ( __FILE__ );
2006-06-27 01:38:56 -04:00
wp_redirect ( " $file ?ignored= $item_ignored &deleted= $item_deleted &approved= $item_approved &spam= $item_spam " );
2003-11-12 10:22:47 -05:00
exit ();
break ;
default :
2005-01-24 03:21:31 -05:00
require_once ( 'admin-header.php' );
2003-11-12 10:22:47 -05:00
2005-01-27 17:24:07 -05:00
if ( isset ( $_GET [ 'deleted' ]) || isset ( $_GET [ 'approved' ]) || isset ( $_GET [ 'ignored' ]) ) {
2005-09-12 20:52:22 -04:00
echo " <div id='moderated' class='updated fade'> \n <p> " ;
2005-02-06 15:49:26 -05:00
$approved = ( int ) $_GET [ 'approved' ];
2005-02-10 20:52:19 -05:00
$deleted = ( int ) $_GET [ 'deleted' ];
$ignored = ( int ) $_GET [ 'ignored' ];
$spam = ( int ) $_GET [ 'spam' ];
2004-04-15 04:28:53 -04:00
if ( $approved ) {
2006-12-21 18:06:18 -05:00
printf ( __ngettext ( '%s comment approved' , '%s comments approved' , $approved ), $approved );
echo " <br/> \n " ;
2004-04-15 04:28:53 -04:00
}
if ( $deleted ) {
2006-12-21 18:06:18 -05:00
printf ( __ngettext ( '%s comment deleted' , '%s comments deleted' , $deleted ), $deleted );
echo " <br/> \n " ;
2004-04-15 04:28:53 -04:00
}
2006-11-19 02:56:05 -05:00
if ( $spam ) {
2006-12-21 18:06:18 -05:00
printf ( __ngettext ( '%s comment marked as spam' , '%s comments marked as spam' , $spam ), $spam );
echo " <br/> \n " ;
2006-11-19 02:56:05 -05:00
}
2004-04-15 04:28:53 -04:00
if ( $ignored ) {
2006-12-21 18:06:18 -05:00
printf ( __ngettext ( '%s comment unchanged' , '%s comments unchanged' , $ignored ), $ignored );
echo " <br/> \n " ;
2003-11-12 10:22:47 -05:00
}
2004-04-15 04:28:53 -04:00
echo " </p></div> \n " ;
}
2003-11-12 10:22:47 -05:00
2004-04-15 04:28:53 -04:00
?>
2006-02-12 02:53:23 -05:00
2003-11-12 10:22:47 -05:00
< div class = " wrap " >
2004-11-18 14:51:31 -05:00
2003-11-30 17:13:53 -05:00
< ? php
2005-07-17 15:29:55 -04:00
if ( current_user_can ( 'moderate_comments' ) )
2004-11-18 14:51:31 -05:00
$comments = $wpdb -> get_results ( " SELECT * FROM $wpdb->comments WHERE comment_approved = '0' " );
else
$comments = '' ;
2003-11-22 20:15:24 -05:00
2003-11-12 10:22:47 -05:00
if ( $comments ) {
// list all comments that are waiting for approval
$file = basename ( __FILE__ );
2003-11-30 17:13:53 -05:00
?>
2004-10-05 03:13:51 -04:00
< h2 >< ? php _e ( 'Moderation Queue' ) ?> </h2>
2004-01-01 19:49:13 -05:00
< form name = " approval " action = " moderation.php " method = " post " >
2006-05-02 18:36:06 -04:00
< ? php wp_nonce_field ( 'moderate-comments' ) ?>
2003-11-30 17:13:53 -05:00
< input type = " hidden " name = " action " value = " update " />
2006-06-06 00:14:04 -04:00
< ol id = " the-comment-list " class = " commentlist " >
2003-11-30 17:13:53 -05:00
< ? php
2004-10-05 03:13:51 -04:00
$i = 0 ;
2003-11-12 10:22:47 -05:00
foreach ( $comments as $comment ) {
2004-10-05 03:13:51 -04:00
++ $i ;
2006-08-30 17:46:31 -04:00
$comment_date = mysql2date ( get_option ( " date_format " ) . " @ " . get_option ( " time_format " ), $comment -> comment_date );
2004-05-24 04:22:18 -04:00
$post_title = $wpdb -> get_var ( " SELECT post_title FROM $wpdb->posts WHERE ID=' $comment->comment_post_ID ' " );
2006-06-06 00:14:04 -04:00
if ( $i % 2 ) $class = 'js-unapproved alternate' ;
else $class = 'js-unapproved' ;
echo " \n \t <li id='comment- $comment->comment_ID ' class=' $class '> " ;
2003-11-30 17:13:53 -05:00
?>
2006-04-19 04:30:56 -04:00
< p >< strong >< ? php comment_author () ?> </strong> <?php if ($comment->comment_author_email) { ?>| <?php comment_author_email_link() ?> <?php } if ($comment->comment_author_url && 'http://' != $comment->comment_author_url) { ?> | <?php comment_author_url_link() ?> <?php } ?>| <?php _e('IP:') ?> <a href="http://ws.arin.net/cgi-bin/whois.pl?queryinput=<?php comment_author_IP() ?>"><?php comment_author_IP() ?></a></p>
2003-11-30 17:13:53 -05:00
< ? php comment_text () ?>
2007-03-06 20:25:17 -05:00
< p >< ? php comment_date ( __ ( 'M j, g:i A' )); ?> — [ <?php
2006-10-31 01:50:38 -05:00
echo '<a href="comment.php?action=editcomment&c=' . $comment -> comment_ID . '">' . __ ( 'Edit' ) . '</a> | ' ;
2007-05-13 23:41:03 -04:00
echo " <a href= \" post.php?action=deletecomment&p= " . $comment -> comment_post_ID . " &comment= " . $comment -> comment_ID . " \" onclick= \" return deleteSomething( 'comment', $comment->comment_ID , ' " . js_escape ( sprintf ( __ ( " You are about to delete this comment by '%s'. \n 'Cancel' to stop, 'OK' to delete. " ), $comment -> comment_author )) . " ', theCommentList ); \" > " . __ ( 'Delete' ) . " </a> " ; ?> ] —
2006-04-19 04:30:56 -04:00
< ? php
$post = get_post ( $comment -> comment_post_ID );
$post_title = wp_specialchars ( $post -> post_title , 'double' );
$post_title = ( '' == $post_title ) ? " # $comment->comment_post_ID " : $post_title ;
?>
2007-05-13 23:41:03 -04:00
< a href = " <?php echo get_permalink( $comment->comment_post_ID ); ?> " >< ? php echo $post_title ; ?> </a></p>
< p >< ? php _e ( 'Bulk action:' ) ?>
2006-07-07 14:35:49 -04:00
< input type = " radio " name = " comment[<?php echo $comment->comment_ID ; ?>] " id = " comment-<?php echo $comment->comment_ID ; ?>-approve " value = " approve " /> < label for = " comment-<?php echo $comment->comment_ID ; ?>-approve " >< ? php _e ( 'Approve' ) ?> </label>
< input type = " radio " name = " comment[<?php echo $comment->comment_ID ; ?>] " id = " comment-<?php echo $comment->comment_ID ; ?>-spam " value = " spam " /> < label for = " comment-<?php echo $comment->comment_ID ; ?>-spam " >< ? php _e ( 'Spam' ) ?> </label>
< input type = " radio " name = " comment[<?php echo $comment->comment_ID ; ?>] " id = " comment-<?php echo $comment->comment_ID ; ?>-delete " value = " delete " /> < label for = " comment-<?php echo $comment->comment_ID ; ?>-delete " >< ? php _e ( 'Delete' ) ?> </label>
< input type = " radio " name = " comment[<?php echo $comment->comment_ID ; ?>] " id = " comment-<?php echo $comment->comment_ID ; ?>-nothing " value = " later " checked = " checked " /> < label for = " comment-<?php echo $comment->comment_ID ; ?>-nothing " >< ? php _e ( 'Defer until later' ) ?> </label>
2004-12-11 03:24:04 -05:00
</ p >
2003-11-30 17:13:53 -05:00
</ li >
< ? php
2006-11-19 02:56:05 -05:00
}
2003-11-30 17:13:53 -05:00
?>
2006-11-19 02:56:05 -05:00
</ ol >
2004-12-20 15:03:30 -05:00
2005-08-30 22:39:17 -04:00
< div id = " ajax-response " ></ div >
2006-11-19 02:56:05 -05:00
< p class = " submit " >< input type = " submit " name = " submit " value = " <?php _e('Bulk Moderate Comments »') ?> " /></ p >
2004-12-20 15:03:30 -05:00
< script type = " text/javascript " >
2004-12-20 15:22:26 -05:00
// <![CDATA[
2004-12-20 15:03:30 -05:00
function markAllForDelete () {
for ( var i = 0 ; i < document . approval . length ; i ++ ) {
if ( document . approval [ i ] . value == " delete " ) {
document . approval [ i ] . checked = true ;
}
}
}
function markAllForApprove () {
for ( var i = 0 ; i < document . approval . length ; i ++ ) {
if ( document . approval [ i ] . value == " approve " ) {
document . approval [ i ] . checked = true ;
}
}
}
function markAllForDefer () {
for ( var i = 0 ; i < document . approval . length ; i ++ ) {
if ( document . approval [ i ] . value == " later " ) {
document . approval [ i ] . checked = true ;
}
}
}
2005-02-10 20:52:19 -05:00
function markAllAsSpam () {
for ( var i = 0 ; i < document . approval . length ; i ++ ) {
if ( document . approval [ i ] . value == " spam " ) {
document . approval [ i ] . checked = true ;
}
}
}
document . write ( '<ul><li><a href="javascript:markAllForApprove()"><?php _e(' Mark all for approval '); ?></a></li><li><a href="javascript:markAllAsSpam()"><?php _e(' Mark all as spam '); ?></a></li><li><a href="javascript:markAllForDelete()"><?php _e(' Mark all for deletion '); ?></a></li><li><a href="javascript:markAllForDefer()"><?php _e(' Mark all for later '); ?></a></li></ul>' );
2004-12-20 15:22:26 -05:00
// ]]>
2004-12-20 15:03:30 -05:00
</ script >
< noscript >
2004-09-08 04:30:18 -04:00
< p >
2007-05-02 21:23:14 -04:00
< input name = " feelinglucky " type = " checkbox " id = " feelinglucky " value = " true " /> < label for = " feelinglucky " >< ? php _e ( 'Delete every comment marked “defer.” <strong>Warning: This can’t be undone.</strong>' ); ?> </label>
2004-09-08 04:30:18 -04:00
</ p >
2004-12-20 15:03:30 -05:00
</ noscript >
2006-11-19 02:56:05 -05:00
</ form >
2003-11-30 17:13:53 -05:00
< ? php
2003-11-12 10:22:47 -05:00
} else {
2006-11-19 02:56:05 -05:00
// nothing to approve
2005-12-12 17:48:30 -05:00
echo '<p>' . __ ( " Currently there are no comments for you to moderate. " ) . " </p> \n " ;
2003-11-12 10:22:47 -05:00
}
2003-11-30 17:13:53 -05:00
?>
2003-11-12 10:22:47 -05:00
</ div >
< ? php
break ;
}
2004-08-22 19:24:50 -04:00
2006-04-19 04:30:56 -04:00
include ( 'admin-footer.php' );
2006-05-22 13:16:05 -04:00
?>