2003-10-27 02:09:25 -05:00
< ? php
2004-10-18 23:03:06 -04:00
require_once ( 'admin.php' );
2004-04-22 23:23:05 -04:00
2006-11-18 02:31:29 -05:00
$title = __ ( 'Edit Comments' );
$parent_file = 'edit-comments.php' ;
2006-05-22 13:16:05 -04:00
wp_enqueue_script ( 'admin-comments' );
2008-01-07 15:38:49 -05:00
wp_enqueue_script ( 'admin-forms' );
2004-08-22 19:24:50 -04:00
2008-02-24 15:28:36 -05:00
if ( ! empty ( $_REQUEST [ 'delete_comments' ] ) ) {
2006-05-02 18:36:06 -04:00
check_admin_referer ( 'bulk-comments' );
2006-03-30 18:12:54 -05:00
2008-02-23 21:33:30 -05:00
$comments_deleted = $comments_approved = $comments_spammed = 0 ;
foreach ( $_REQUEST [ 'delete_comments' ] as $comment ) : // Check the permissions on each
2004-07-07 21:10:50 -04:00
$comment = ( int ) $comment ;
2007-03-22 20:59:21 -04:00
$post_id = ( int ) $wpdb -> get_var ( " SELECT comment_post_ID FROM $wpdb->comments WHERE comment_ID = $comment " );
2006-02-14 15:09:13 -05:00
// $authordata = get_userdata( $wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $post_id") );
2008-02-23 21:33:30 -05:00
if ( ! current_user_can ( 'edit_post' , $post_id ) )
continue ;
if ( ! empty ( $_REQUEST [ 'spamit' ] ) ) {
wp_set_comment_status ( $comment , 'spam' );
$comments_spammed ++ ;
} elseif ( ! empty ( $_REQUEST [ 'deleteit' ] ) ) {
wp_set_comment_status ( $comment , 'delete' );
$comments_deleted ++ ;
} elseif ( ! empty ( $_REQUEST [ 'approveit' ] ) ) {
wp_set_comment_status ( $comment , 'approve' );
$comments_approved ++ ;
2006-02-14 15:09:13 -05:00
}
2004-07-07 21:10:50 -04:00
endforeach ;
2008-02-24 15:28:36 -05:00
$redirect_to = basename ( __FILE__ ) . '?deleted=' . $comments_deleted . '&approved=' . $comments_approved . '&spam=' . $comments_spammed ;
if ( ! empty ( $_REQUEST [ 'mode' ]) )
$redirect_to = add_query_arg ( 'mode' , $_REQUEST [ 'mode' ], $redirect_to );
if ( ! empty ( $_REQUEST [ 'comment_status' ]) )
$redirect_to = add_query_arg ( 'comment_status' , $_REQUEST [ 'comment_status' ], $redirect_to );
if ( ! empty ( $_REQUEST [ 's' ]) )
$redirect_to = add_query_arg ( 's' , $_REQUEST [ 's' ], $redirect_to );
wp_redirect ( $redirect_to );
} elseif ( ! empty ( $_GET [ '_wp_http_referer' ]) ) {
wp_redirect ( remove_query_arg ( array ( '_wp_http_referer' , '_wpnonce' ), stripslashes ( $_SERVER [ 'REQUEST_URI' ])));
exit ;
}
2004-02-17 05:50:33 -05:00
2008-02-23 03:01:51 -05:00
require_once ( 'admin-header.php' );
2008-02-23 23:51:47 -05:00
if ( empty ( $_GET [ 'mode' ]) )
$mode = 'detail' ;
else
$mode = attribute_escape ( $_GET [ 'mode' ]);
2008-02-24 15:28:36 -05:00
if ( isset ( $_GET [ 'comment_status' ]) )
$comment_status = attribute_escape ( $_GET [ 'comment_status' ]);
else
$comment_status = '' ;
2008-02-23 03:01:51 -05:00
?>
< div class = " wrap " >
< form id = " posts-filter " action = " " method = " get " >
< h2 >< ? php _e ( 'Manage Comments' ); ?> </h2>
< ul class = " subsubsub " >
< ? php
$status_links = array ();
2008-02-23 03:33:44 -05:00
$num_comments = wp_count_comments ();
$stati = array ( 'moderated' => sprintf ( __ ( 'Awaiting Moderation (%s)' ), $num_comments -> moderated ), 'approved' => __ ( 'Approved' ));
2008-02-23 03:01:51 -05:00
foreach ( $stati as $status => $label ) {
$class = '' ;
if ( $status == $comment_status )
$class = ' class="current"' ;
$status_links [] = " <li><a href= \" edit-comments.php?comment_status= $status\ " $class > " . $label . '</a>';
}
$class = ( '' === $comment_status ) ? ' class="current"' : '' ;
$status_links [] = " <li><a href= \" edit-comments.php \" $class > " . __ ( 'All Comments' ) . " </a> " ;
2008-02-24 14:41:04 -05:00
echo implode ( ' | </li>' , $status_links ) . '</li>' ;
2008-02-23 03:01:51 -05:00
unset ( $status_links );
?>
</ ul >
2008-02-23 21:33:30 -05:00
< ? php
if ( isset ( $_GET [ 'approved' ] ) || isset ( $_GET [ 'deleted' ] ) || isset ( $_GET [ 'spam' ] ) ) {
$approved = isset ( $_GET [ 'approved' ] ) ? ( int ) $_GET [ 'approved' ] : 0 ;
$deleted = isset ( $_GET [ 'deleted' ] ) ? ( int ) $_GET [ 'deleted' ] : 0 ;
$spam = isset ( $_GET [ 'spam' ] ) ? ( int ) $_GET [ 'spam' ] : 0 ;
if ( $approved > 0 || $deleted > 0 || $spam > 0 ) {
echo '<div id="moderated" class="updated fade"><p>' ;
if ( $approved > 0 ) {
printf ( __ngettext ( '%s comment approved' , '%s comments approved' , $approved ), $approved );
echo '<br />' ;
}
if ( $deleted > 0 ) {
printf ( __ngettext ( '%s comment deleted' , '%s comments deleted' , $deleted ), $deleted );
echo '<br />' ;
}
if ( $spam > 0 ) {
printf ( __ngettext ( '%s comment marked as spam' , '%s comments marked as spam' , $spam ), $spam );
echo '<br />' ;
}
echo '</p></div>' ;
}
}
?>
2008-02-23 03:01:51 -05:00
< p id = " post-search " >
< input type = " text " id = " post-search-input " name = " s " value = " <?php if (isset( $_GET['s'] )) echo attribute_escape( $_GET['s'] ); ?> " />
< input type = " submit " value = " <?php _e( 'Search Comments' ); ?> " class = " button " />
</ p >
< input type = " hidden " name = " mode " value = " <?php echo $mode ; ?> " />
2008-02-24 15:28:36 -05:00
< input type = " hidden " name = " comment_status " value = " <?php echo $comment_status ; ?> " />
2008-02-23 03:01:51 -05:00
2008-02-24 14:41:04 -05:00
< ul class = " view-switch " >
2008-02-24 15:28:36 -05:00
< li < ? php if ( 'detail' == $mode ) echo " class='current' " ?> ><a href="<?php echo clean_url(add_query_arg('mode', 'detail', $_SERVER['REQUEST_URI'])) ?>"><?php _e('Detail View') ?></a></li>
< li < ? php if ( 'list' == $mode ) echo " class='current' " ?> ><a href="<?php echo clean_url(add_query_arg('mode', 'list', $_SERVER['REQUEST_URI'])) ?>"><?php _e('List View') ?></a></li>
2008-02-24 14:41:04 -05:00
</ ul >
2008-02-23 03:01:51 -05:00
< ? php
2007-03-27 17:20:16 -04:00
if ( isset ( $_GET [ 'apage' ] ) )
2007-08-01 15:41:44 -04:00
$page = abs ( ( int ) $_GET [ 'apage' ] );
2007-03-27 17:20:16 -04:00
else
$page = 1 ;
2007-05-21 08:52:44 -04:00
2007-03-27 17:20:16 -04:00
$start = $offset = ( $page - 1 ) * 20 ;
2004-10-05 03:25:21 -04:00
2008-02-23 03:01:51 -05:00
list ( $_comments , $total ) = _wp_get_comment_list ( $comment_status , isset ( $_GET [ 's' ]) ? $_GET [ 's' ] : false , $start , 25 ); // Grab a few extra
2006-11-18 01:52:01 -05:00
2007-03-27 17:20:16 -04:00
$comments = array_slice ( $_comments , 0 , 20 );
$extra_comments = array_slice ( $_comments , 20 );
$page_links = paginate_links ( array (
2007-09-03 19:32:58 -04:00
'base' => add_query_arg ( 'apage' , '%#%' ),
2007-05-21 08:52:44 -04:00
'format' => '' ,
2007-03-27 17:20:16 -04:00
'total' => ceil ( $total / 20 ),
'current' => $page
));
2008-02-23 03:01:51 -05:00
?>
2006-11-18 01:52:01 -05:00
2008-02-23 03:01:51 -05:00
< div class = " tablenav " >
2006-04-19 04:30:56 -04:00
< ? php
2008-02-23 03:01:51 -05:00
if ( $page_links )
echo " <div class='tablenav-pages'> $page_links </div> " ;
2006-04-19 04:30:56 -04:00
?>
2008-02-23 03:01:51 -05:00
< div style = " float: left " >
2008-02-24 15:42:44 -05:00
< ? php if ( 'approved' != $comment_status ) : ?>
2008-02-23 03:01:51 -05:00
< input type = " submit " value = " <?php _e('Approve'); ?> " name = " approveit " class = " button-secondary " />
2008-02-24 15:42:44 -05:00
< ? php endif ; ?>
2008-02-23 03:01:51 -05:00
< input type = " submit " value = " <?php _e('Mark as Spam'); ?> " name = " spamit " class = " button-secondary " />
< input type = " submit " value = " <?php _e('Delete'); ?> " name = " deleteit " class = " button-secondary " />
< ? php wp_nonce_field ( 'bulk-comments' ); ?>
2007-03-27 17:20:16 -04:00
</ div >
2004-10-05 03:25:21 -04:00
2008-02-23 03:01:51 -05:00
< br style = " clear:both; " />
</ div >
2005-08-30 22:39:17 -04:00
2008-02-23 03:01:51 -05:00
< br style = " clear:both; " />
2004-10-05 03:25:21 -04:00
< ? php
2008-02-23 03:01:51 -05:00
if ( $comments ) {
?>
< table class = " widefat " >
2006-05-10 16:35:10 -04:00
< thead >
2004-02-17 03:35:04 -05:00
< tr >
2008-02-23 03:01:51 -05:00
< th scope = " col " style = " text-align: center " >< input type = " checkbox " onclick = " checkAll(document.getElementById('posts-filter')); " /></ th >
< th scope = " col " >< ? php _e ( 'Comment' ) ?> </th>
< th scope = " col " >< ? php _e ( 'Date' ) ?> </th>
< th scope = " col " >< ? php _e ( 'Actions' ) ?> </th>
2006-05-10 16:35:10 -04:00
</ tr >
2007-10-09 18:49:42 -04:00
</ thead >
2008-02-23 03:01:51 -05:00
< tbody id = " the-comment-list " class = " list:comment " >
< ? php
foreach ( $comments as $comment ) {
2007-06-07 20:20:22 -04:00
$post = get_post ( $comment -> comment_post_ID );
$authordata = get_userdata ( $post -> post_author );
2006-03-28 20:51:55 -05:00
$comment_status = wp_get_comment_status ( $comment -> comment_ID );
2008-02-24 14:41:04 -05:00
$class = ( 'alternate' == $class ) ? '' : '' ;
2006-03-28 20:51:55 -05:00
$class .= ( 'unapproved' == $comment_status ) ? ' unapproved' : '' ;
2008-02-23 03:01:51 -05:00
$post_link = '<a href="' . get_comment_link () . '">' . get_the_title ( $comment -> comment_post_ID ) . '</a>' ;
$author_url = get_comment_author_url ();
if ( 'http://' == $author_url )
$author_url = '' ;
2008-02-24 15:42:44 -05:00
$author_url_display = $author_url ;
if ( strlen ( $author_url_display ) > 50 )
$author_url_display = substr ( $author_url_display , 0 , 49 ) . '...' ;
2008-02-24 16:38:44 -05:00
$ptime = get_post_time ( 'G' , true );
if ( ( abs ( time () - $ptime ) ) < 86400 )
$ptime = sprintf ( __ ( '%s ago' ), human_time_diff ( $ptime ) );
else
$ptime = mysql2date ( __ ( 'Y/m/d \a\t g:i A' ), $post -> post_date );
2008-02-24 16:52:46 -05:00
$delete_url = clean_url ( wp_nonce_url ( " comment.php?action=deletecomment&p= $comment->comment_post_ID &c= $comment->comment_ID " , " delete-comment_ $comment->comment_ID " ) );
$approve_url = clean_url ( wp_nonce_url ( " comment.php?action=approvecomment&p= $comment->comment_post_ID &c= $comment->comment_ID " , " approve-comment_ $comment->comment_ID " ) );
$spam_url = clean_url ( wp_nonce_url ( " comment.php?action=deletecomment&dt=spam&p= $comment->comment_post_ID &c= $comment->comment_ID " , " delete-comment_ $comment->comment_ID " ) );
2004-02-17 03:35:04 -05:00
?>
2006-03-28 20:51:55 -05:00
< tr id = " comment-<?php echo $comment->comment_ID ; ?> " class = '<?php echo $class; ?>' >
2008-02-24 14:41:04 -05:00
< td style = " text-align: center; " >< ? php if ( current_user_can ( 'edit_post' , $comment -> comment_post_ID ) ) { ?> <input type="checkbox" name="delete_comments[]" value="<?php echo $comment->comment_ID; ?>" /><?php } ?></td>
< td class = " comment " >
2008-02-24 17:22:28 -05:00
< p class = " comment-author " >< strong >< a class = " row-title " href = " comment.php?action=editcomment&c=<?php echo $comment->comment_ID ?> " >< ? php comment_author (); ?> </a></strong><br />
2008-02-24 15:42:44 -05:00
< ? php if ( ! empty ( $author_url ) ) : ?>
< a href = " <?php echo $author_url ?> " >< ? php echo $author_url_display ; ?> </a> |
2008-02-23 03:01:51 -05:00
< ? php endif ; ?>
< ? php if ( ! empty ( $comment -> comment_author_email ) ) : ?>
< ? php comment_author_email_link () ?> |
< ? php endif ; ?>
2008-02-23 23:51:47 -05:00
< a href = " edit-comments.php?s=<?php comment_author_IP() ?>&mode=detail " >< ? php comment_author_IP () ?> </a>
2008-02-24 14:41:04 -05:00
</ p >
< p >< ? php if ( 'list' == $mode ) comment_excerpt (); else comment_text (); ?> </p>
2008-02-24 16:38:44 -05:00
< p >< ? php printf ( __ ( 'From %1$s, %2$s' ), $post_link , $ptime ) ?> </p>
2006-03-28 20:51:55 -05:00
</ td >
2008-02-24 16:38:44 -05:00
< td >< ? php comment_date ( __ ( 'Y/m/d' )); ?> </td>
2008-02-24 14:41:04 -05:00
< td >
2008-02-23 03:01:51 -05:00
< ? php if ( current_user_can ( 'edit_post' , $comment -> comment_post_ID ) ) {
2008-02-24 16:52:46 -05:00
if ( 'approved' != $comment_status )
echo " <a href=' " . $approve_url . " ' class='delete:the-comment-list:comment- $comment->comment_post_ID :33FF33:action=dim-comment' title=' " . __ ( 'Approve this comment' ) . " '> " . __ ( 'Approve' ) . '</a> | ' ;
echo " <a href=' " . $spam_url . " ' class='delete:the-comment-list:comment- $comment->comment_post_ID ::spam=1' title=' " . __ ( 'Mark this comment as spam' ) . " '> " . __ ( 'Spam' ) . '</a> | ' ;
echo " <a href=' $delete_url ' class='delete:the-comment-list:comment- $comment->comment_ID delete'> " . __ ( 'Delete' ) . " </a> " ;
2008-02-23 03:01:51 -05:00
}
?>
</ td >
2004-02-17 03:35:04 -05:00
</ tr >
2007-09-03 19:32:58 -04:00
< ? php
2004-02-17 03:35:04 -05:00
} // end foreach
2007-10-09 18:49:42 -04:00
?> </tbody>
</ table >
2008-02-23 03:01:51 -05:00
2006-03-28 20:51:55 -05:00
< div id = " ajax-response " ></ div >
2004-02-17 03:35:04 -05:00
< ? php
2008-02-23 03:01:51 -05:00
} else {
2004-02-17 05:50:33 -05:00
?>
< p >
2004-04-22 23:23:05 -04:00
< strong >< ? php _e ( 'No results found.' ) ?> </strong>
2004-02-17 05:50:33 -05:00
</ p >
< ? php
2004-02-17 03:35:04 -05:00
}
2008-02-23 03:01:51 -05:00
?>
< div class = " tablenav " >
< ? php
2007-03-27 17:20:16 -04:00
if ( $page_links )
2008-02-23 03:01:51 -05:00
echo " <div class='tablenav-pages'> $page_links </div> " ;
2007-03-27 17:20:16 -04:00
?>
2008-02-23 03:01:51 -05:00
< br style = " clear:both; " />
2003-10-27 02:09:25 -05:00
</ div >
2005-08-30 22:39:17 -04:00
< ? php include ( 'admin-footer.php' ); ?>