2003-11-12 16:22:47 +01:00
< ? php
2004-10-19 05:03:06 +02:00
require_once ( 'admin.php' );
2004-04-25 04:19:31 +02:00
$title = __ ( 'Moderate comments' );
2003-12-08 04:46:42 +01:00
$parent_file = 'edit.php' ;
2003-11-12 16:22:47 +01:00
2004-12-08 02:04:33 +01:00
$wpvarstoreset = array ( 'action' , 'item_ignored' , 'item_deleted' , 'item_approved' , 'feelinglucky' );
2003-12-18 10:36:13 +01:00
for ( $i = 0 ; $i < count ( $wpvarstoreset ); $i += 1 ) {
$wpvar = $wpvarstoreset [ $i ];
if ( ! isset ( $$wpvar )) {
2004-04-21 00:56:47 +02:00
if ( empty ( $_POST [ " $wpvar " ])) {
if ( empty ( $_GET [ " $wpvar " ])) {
2003-12-18 10:36:13 +01:00
$$wpvar = '' ;
2003-11-12 16:22:47 +01:00
} else {
2004-04-21 00:56:47 +02:00
$$wpvar = $_GET [ " $wpvar " ];
2003-11-12 16:22:47 +01:00
}
} else {
2004-04-21 00:56:47 +02:00
$$wpvar = $_POST [ " $wpvar " ];
2003-11-12 16:22:47 +01:00
}
}
}
2004-01-02 01:49:13 +01:00
$comment = array ();
2004-04-21 00:56:47 +02:00
if ( isset ( $_POST [ " comment " ])) {
foreach ( $_POST [ " comment " ] as $k => $v ) {
2004-01-02 01:49:13 +01:00
$comment [ intval ( $k )] = $v ;
}
}
2003-11-12 16:22:47 +01:00
switch ( $action ) {
case 'update' :
if ( $user_level < 3 ) {
2004-04-25 04:19:31 +02:00
die ( __ ( '<p>Your level is not high enough to moderate comments.</p>' ));
2003-11-12 16:22:47 +01:00
}
$item_ignored = 0 ;
$item_deleted = 0 ;
$item_approved = 0 ;
foreach ( $comment as $key => $value ) {
2004-09-08 10:30:18 +02:00
if ( $feelinglucky && 'later' == $value )
$value = 'delete' ;
2003-11-12 16:22:47 +01:00
switch ( $value ) {
2003-11-15 09:58:18 +01: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 ;
case 'approve' :
wp_set_comment_status ( $key , 'approve' );
if ( get_settings ( 'comments_notify' ) == true ) {
wp_notify_postauthor ( $key );
}
++ $item_approved ;
break ;
2003-11-12 16:22:47 +01:00
}
}
$file = basename ( __FILE__ );
header ( " Location: $file ?ignored= $item_ignored &deleted= $item_deleted &approved= $item_approved " );
exit ();
break ;
default :
2003-12-11 01:22:36 +01:00
require_once ( 'admin-header.php' );
2003-11-12 16:22:47 +01:00
2004-05-08 01:56:33 +02:00
if ( isset ( $deleted ) || isset ( $approved ) || isset ( $ignored )) {
2004-04-15 10:28:53 +02:00
echo " <div class='updated'> \n <p> " ;
if ( $approved ) {
if ( '1' == $approved ) {
2004-04-25 04:19:31 +02:00
echo __ ( " 1 comment approved <br /> " ) . " \n " ;
2003-11-12 16:22:47 +01:00
} else {
2004-04-25 04:19:31 +02:00
echo sprintf ( __ ( " %s comments approved <br /> " ), $approved ) . " \n " ;
2003-11-12 16:22:47 +01:00
}
2004-04-15 10:28:53 +02:00
}
if ( $deleted ) {
if ( '1' == $deleted ) {
2004-04-25 04:19:31 +02:00
echo __ ( " 1 comment deleted <br /> " ) . " \n " ;
2003-11-12 16:22:47 +01:00
} else {
2004-04-25 04:19:31 +02:00
echo sprintf ( __ ( " %s comments deleted <br /> " ), $deleted ) . " \n " ;
2003-11-12 16:22:47 +01:00
}
2004-04-15 10:28:53 +02:00
}
if ( $ignored ) {
if ( '1' == $ignored ) {
2004-04-25 04:19:31 +02:00
echo __ ( " 1 comment unchanged <br /> " ) . " \n " ;
2003-11-12 16:22:47 +01:00
} else {
2004-04-25 04:19:31 +02:00
echo sprintf ( __ ( " %s comments unchanged <br /> " ), $ignored ) . " \n " ;
2003-11-12 16:22:47 +01:00
}
}
2004-04-15 10:28:53 +02:00
echo " </p></div> \n " ;
}
2003-11-12 16:22:47 +01:00
2004-04-15 10:28:53 +02:00
?>
2003-11-12 16:22:47 +01:00
< div class = " wrap " >
2004-11-18 20:51:31 +01:00
2003-11-30 23:13:53 +01:00
< ? php
2004-11-18 20:51:31 +01:00
if ( $user_level > 3 )
$comments = $wpdb -> get_results ( " SELECT * FROM $wpdb->comments WHERE comment_approved = '0' " );
else
$comments = '' ;
2003-11-23 02:15:24 +01:00
2003-11-12 16:22:47 +01:00
if ( $comments ) {
// list all comments that are waiting for approval
$file = basename ( __FILE__ );
2003-11-30 23:13:53 +01:00
?>
2004-10-05 09:13:51 +02:00
< h2 >< ? php _e ( 'Moderation Queue' ) ?> </h2>
2004-01-02 01:49:13 +01:00
< form name = " approval " action = " moderation.php " method = " post " >
2003-11-30 23:13:53 +01:00
< input type = " hidden " name = " action " value = " update " />
2004-10-05 09:13:51 +02:00
< ol id = " comments " class = " commentlist " >
2003-11-30 23:13:53 +01:00
< ? php
2004-10-05 09:13:51 +02:00
$i = 0 ;
2003-11-12 16:22:47 +01:00
foreach ( $comments as $comment ) {
2004-10-05 09:13:51 +02:00
++ $i ;
2003-11-12 16:22:47 +01:00
$comment_date = mysql2date ( get_settings ( " date_format " ) . " @ " . get_settings ( " time_format " ), $comment -> comment_date );
2004-05-24 10:22:18 +02:00
$post_title = $wpdb -> get_var ( " SELECT post_title FROM $wpdb->posts WHERE ID=' $comment->comment_post_ID ' " );
2004-10-05 09:13:51 +02:00
if ( $i % 2 ) $class = 'class="alternate"' ;
else $class = '' ;
echo " \n \t <li id='comment- $comment->comment_ID ' $class > " ;
2003-11-30 23:13:53 +01:00
?>
2004-12-16 00:20:51 +01:00
< p >< strong >< ? php _e ( 'Name:' ) ?> </strong> <?php comment_author_link() ?> <?php if ($comment->comment_author_email) { ?>| <strong><?php _e('E-mail:') ?></strong> <?php comment_author_email_link() ?> <?php } if ($comment->comment_author_email) { ?> | <strong><?php _e('URI:') ?></strong> <?php comment_author_url_link() ?> <?php } ?>| <strong><?php _e('IP:') ?></strong> <a href="http://ws.arin.net/cgi-bin/whois.pl?queryinput=<?php comment_author_IP() ?>"><?php comment_author_IP() ?></a></p>
2003-11-30 23:13:53 +01:00
< ? php comment_text () ?>
< p >< ? php
2004-09-08 10:30:18 +02:00
echo '<a href="post.php?action=editcomment&comment=' . $comment -> comment_ID . '">' . __ ( 'Edit' ) . '</a> | ' ; ?>
< a href = " <?php echo get_permalink( $comment->comment_post_ID ); ?> " >< ? php _e ( 'View Post' ) ?> </a> |
< ? php
echo " <a href= \" post.php?action=deletecomment&p= " . $comment -> comment_post_ID . " &comment= " . $comment -> comment_ID . " \" onclick= \" return confirm(' " . sprintf ( __ ( " You are about to delete this comment by \ '%s \ ' \\ n \ 'Cancel \ ' to stop, \ 'OK \ ' to delete. " ), $comment -> comment_author ) . " ') \" > " . __ ( 'Delete just this comment' ) . " </a> | " ; ?> <?php _e('Bulk action:') ?>
2004-04-25 04:19:31 +02: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 ; ?>]-delete " value = " delete " /> < label for = " comment[<?php echo $comment->comment_ID ; ?>]-delete " >< ? php _e ( 'Delete' ) ?> </label>
2004-09-08 10:30:18 +02:00
< 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 09:24:04 +01:00
</ p >
2003-11-30 23:13:53 +01:00
</ li >
< ? php
2003-11-12 16:22:47 +01:00
}
2003-11-30 23:13:53 +01:00
?>
</ ol >
2004-12-20 21:03:30 +01:00
< p class = " submit " >< input type = " submit " name = " submit " value = " <?php _e('Moderate Comments »') ?> " /></ p >
< script type = " text/javascript " >
2004-12-20 21:22:26 +01:00
// <![CDATA[
2004-12-20 21:03:30 +01: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 ;
}
}
}
document . write ( '<ul><li><a href="javascript:markAllForApprove()"><?php _e(' Mark all for approval '); ?></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 21:22:26 +01:00
// ]]>
2004-12-20 21:03:30 +01:00
</ script >
< noscript >
2004-09-08 10:30:18 +02:00
< p >
< 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>
</ p >
2004-12-20 21:03:30 +01:00
</ noscript >
2003-11-30 23:13:53 +01:00
</ form >
< ? php
2003-11-12 16:22:47 +01:00
} else {
// nothing to approve
2004-11-18 20:51:31 +01:00
echo __ ( " <p>Currently there are no comments for you to moderate.</p> " ) . " \n " ;
2003-11-12 16:22:47 +01:00
}
2003-11-30 23:13:53 +01:00
?>
2003-11-12 16:22:47 +01:00
</ div >
< ? php
break ;
}
2004-08-23 01:24:50 +02:00
include ( 'admin-footer.php' ) ?>