summaryrefslogtreecommitdiffstats
path: root/wp-admin/edit-comments.php
diff options
context:
space:
mode:
authordonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2008-04-04 16:44:15 +0000
committerdonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2008-04-04 16:44:15 +0000
commit7740e89de3e1bc0cc636120e3ca8ab9e97e4d3cc (patch)
treec6fd23b598f3994eddb18cb1c0f2e8d95ff054fa /wp-admin/edit-comments.php
parentf650f48c048bfbbb2ae702b6425d87e39358d748 (diff)
downloadwordpress-mu-7740e89de3e1bc0cc636120e3ca8ab9e97e4d3cc.tar.gz
wordpress-mu-7740e89de3e1bc0cc636120e3ca8ab9e97e4d3cc.tar.xz
wordpress-mu-7740e89de3e1bc0cc636120e3ca8ab9e97e4d3cc.zip
Merged with WordPress 2.5, unstable, only for testing
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@1218 7be80a69-a1ef-0310-a953-fb0f7c49ff36
Diffstat (limited to 'wp-admin/edit-comments.php')
-rw-r--r--wp-admin/edit-comments.php326
1 files changed, 184 insertions, 142 deletions
diff --git a/wp-admin/edit-comments.php b/wp-admin/edit-comments.php
index ab1bdbc..bc62681 100644
--- a/wp-admin/edit-comments.php
+++ b/wp-admin/edit-comments.php
@@ -4,76 +4,133 @@ require_once('admin.php');
$title = __('Edit Comments');
$parent_file = 'edit-comments.php';
wp_enqueue_script( 'admin-comments' );
+wp_enqueue_script('admin-forms');
+
+if ( !empty( $_REQUEST['delete_comments'] ) ) {
+ check_admin_referer('bulk-comments');
+
+ $comments_deleted = $comments_approved = $comments_unapproved = $comments_spammed = 0;
+ foreach ($_REQUEST['delete_comments'] as $comment) : // Check the permissions on each
+ $comment = (int) $comment;
+ $post_id = (int) $wpdb->get_var("SELECT comment_post_ID FROM $wpdb->comments WHERE comment_ID = $comment");
+ // $authordata = get_userdata( $wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $post_id") );
+ 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++;
+ } elseif ( !empty( $_REQUEST['unapproveit'] ) ) {
+ wp_set_comment_status($comment, 'hold');
+ $comments_unapproved++;
+ }
+ endforeach;
+ $redirect_to = basename( __FILE__ ) . '?deleted=' . $comments_deleted . '&approved=' . $comments_approved . '&spam=' . $comments_spammed . '&unapproved=' . $comments_unapproved;
+ 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;
+}
require_once('admin-header.php');
-if (empty($_GET['mode'])) $mode = 'view';
-else $mode = attribute_escape($_GET['mode']);
+
+if ( empty($_GET['mode']) )
+ $mode = 'detail';
+else
+ $mode = attribute_escape($_GET['mode']);
+
+if ( isset($_GET['comment_status']) )
+ $comment_status = attribute_escape($_GET['comment_status']);
+else
+ $comment_status = '';
+
+if ( isset($_GET['s']) )
+ $search_dirty = $_GET['s'];
+else
+ $search_dirty = '';
+$search = attribute_escape( $search_dirty );
?>
+<?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>';
-<script type="text/javascript">
-<!--
-function checkAll(form)
-{
- for (i = 0, n = form.elements.length; i < n; i++) {
- if(form.elements[i].type == "checkbox") {
- if(form.elements[i].checked == true)
- form.elements[i].checked = false;
- else
- form.elements[i].checked = true;
+ if ( $approved > 0 ) {
+ printf( __ngettext( '%s comment approved', '%s comments approved', $approved ), $approved );
+ echo '<br />';
}
- }
-}
-function getNumChecked(form)
-{
- var num = 0;
- for (i = 0, n = form.elements.length; i < n; i++) {
- if(form.elements[i].type == "checkbox") {
- if(form.elements[i].checked == true)
- num++;
+ 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>';
}
- return num;
}
-//-->
-</script>
+?>
<div class="wrap">
-<h2><?php _e('Comments'); ?></h2>
-<form name="searchform" action="" method="get" id="editcomments">
- <fieldset>
- <legend><?php _e('Show Comments That Contain...') ?></legend>
- <input type="text" name="s" value="<?php if (isset($_GET['s'])) echo attribute_escape($_GET['s']); ?>" size="17" />
- <input type="submit" name="submit" value="<?php _e('Search') ?>" />
- <input type="hidden" name="mode" value="<?php echo $mode; ?>" />
- <?php _e('(Searches within comment text, e-mail, URL, and IP address.)') ?>
- </fieldset>
-</form>
-<p><a href="?mode=view"><?php _e('View Mode') ?></a> | <a href="?mode=edit"><?php _e('Mass Edit Mode') ?></a></p>
+<form id="posts-filter" action="" method="get">
+<h2><?php _e('Manage Comments'); ?></h2>
+
+<ul class="subsubsub">
<?php
-if ( !empty( $_POST['delete_comments'] ) ) :
- check_admin_referer('bulk-comments');
+$status_links = array();
+$num_comments = wp_count_comments();
+$stati = array('moderated' => sprintf(__ngettext('Awaiting Moderation (%s)', 'Awaiting Moderation (%s)', $num_comments->moderated), "<span class='comment-count'>$num_comments->moderated</span>"), 'approved' => _c('Approved|plural'));
+$class = ( '' === $comment_status ) ? ' class="current"' : '';
+$status_links[] = "<li><a href=\"edit-comments.php\"$class>".__('Show All Comments')."</a>";
+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>';
+}
- $i = 0;
- foreach ($_POST['delete_comments'] as $comment) : // Check the permissions on each
- $comment = (int) $comment;
- $post_id = (int) $wpdb->get_var("SELECT comment_post_ID FROM $wpdb->comments WHERE comment_ID = $comment");
- // $authordata = get_userdata( $wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $post_id") );
- if ( current_user_can('edit_post', $post_id) ) {
- if ( !empty( $_POST['spam_button'] ) )
- wp_set_comment_status($comment, 'spam');
- else
- wp_set_comment_status($comment, 'delete');
- ++$i;
- }
- endforeach;
- echo '<div style="background-color: rgb(207, 235, 247);" id="message" class="updated fade"><p>';
- if ( !empty( $_POST['spam_button'] ) ) {
- printf(__ngettext('%s comment marked as spam', '%s comments marked as spam.', $i), $i);
- } else {
- printf(__ngettext('%s comment deleted.', '%s comments deleted.', $i), $i);
- }
- echo '</p></div>';
-endif;
+$status_links = apply_filters( 'comment_status_links', $status_links );
+
+echo implode(' | </li>', $status_links) . '</li>';
+unset($status_links);
+?>
+</ul>
+
+<p id="post-search">
+ <input type="text" id="post-search-input" name="s" value="<?php echo $search; ?>" />
+ <input type="submit" value="<?php _e( 'Search Comments' ); ?>" class="button" />
+</p>
+
+<input type="hidden" name="mode" value="<?php echo $mode; ?>" />
+<input type="hidden" name="comment_status" value="<?php echo $comment_status; ?>" />
+</form>
+
+<ul class="view-switch">
+ <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>
+</ul>
+
+<?php
if ( isset( $_GET['apage'] ) )
$page = abs( (int) $_GET['apage'] );
@@ -82,7 +139,7 @@ else
$start = $offset = ( $page - 1 ) * 20;
-list($_comments, $total) = _wp_get_comment_list( isset($_GET['s']) ? $_GET['s'] : false, $start, 25 ); // Grab a few extra
+list($_comments, $total) = _wp_get_comment_list( $comment_status, $search_dirty, $start, 25 ); // Grab a few extra
$comments = array_slice($_comments, 0, 20);
$extra_comments = array_slice($_comments, 20);
@@ -94,109 +151,94 @@ $page_links = paginate_links( array(
'current' => $page
));
-if ( $page_links )
- echo "<p class='pagenav'>$page_links</p>";
-
-if ('view' == $mode) {
- if ($comments) {
- $offset = $offset + 1;
- $start = " start='$offset'";
-
- echo "<ol id='the-comment-list' class='commentlist' $start>\n";
- $i = 0;
- foreach ( $comments as $comment ) {
- get_comment( $comment ); // Cache it
- _wp_comment_list_item( $comment->comment_ID, ++$i );
- }
- echo "</ol>\n\n";
-
-if ( $extra_comments ) : ?>
-<div id="extra-comments" style="display:none">
-<ul id="the-extra-comment-list" class="commentlist">
-<?php
- foreach ( $extra_comments as $comment ) {
- get_comment( $comment ); // Cache it
- _wp_comment_list_item( $comment->comment_ID, ++$i );
- }
?>
-</ul>
-</div>
-<?php endif; // $extra_comments ?>
-<div id="ajax-response"></div>
+<form id="comments-form" action="" method="post">
+
+<div class="tablenav">
<?php
- } else { //no comments to show
+if ( $page_links )
+ echo "<div class='tablenav-pages'>$page_links</div>";
+?>
- ?>
- <p>
- <strong><?php _e('No comments found.') ?></strong></p>
+<div class="alignleft">
+<?php if ( 'approved' != $comment_status ): ?>
+<input type="submit" value="<?php _e('Approve'); ?>" name="approveit" class="button-secondary" />
+<?php endif; ?>
+<input type="submit" value="<?php _e('Mark as Spam'); ?>" name="spamit" class="button-secondary" />
+<?php if ( 'moderated' != $comment_status ): ?>
+<input type="submit" value="<?php _e('Unapprove'); ?>" name="unapproveit" class="button-secondary" />
+<?php endif; ?>
+<input type="submit" value="<?php _e('Delete'); ?>" name="deleteit" class="button-secondary delete" />
+<?php do_action('manage_comments_nav', $comment_status); ?>
+<?php wp_nonce_field('bulk-comments'); ?>
+</div>
- <?php
- } // end if ($comments)
-} elseif ('edit' == $mode) {
+<br class="clear" />
- if ($comments) {
- echo '<form name="deletecomments" id="deletecomments" action="" method="post"> ';
- wp_nonce_field('bulk-comments');
- echo '<table class="widefat">
+</div>
+
+<br class="clear" />
+<?php
+if ($comments) {
+?>
+<table class="widefat">
<thead>
<tr>
- <th scope="col" style="text-align: center"><input type="checkbox" onclick="checkAll(document.getElementById(\'deletecomments\'));" /></th>
- <th scope="col">' . __('Name') . '</th>
- <th scope="col">' . __('E-mail') . '</th>
- <th scope="col">' . __('IP') . '</th>
- <th scope="col">' . __('Comment Excerpt') . '</th>
- <th scope="col" colspan="3" style="text-align: center">' . __('Actions') . '</th>
+ <th scope="col" class="check-column"><input type="checkbox" onclick="checkAll(document.getElementById('comments-form'));" /></th>
+ <th scope="col"><?php _e('Comment') ?></th>
+ <th scope="col"><?php _e('Date') ?></th>
+ <th scope="col" class="action-links"><?php _e('Actions') ?></th>
</tr>
-</thead>';
- foreach ($comments as $comment) {
- $post = get_post($comment->comment_post_ID);
- $authordata = get_userdata($post->post_author);
- $comment_status = wp_get_comment_status($comment->comment_ID);
- $class = ('alternate' == $class) ? '' : 'alternate';
- $class .= ('unapproved' == $comment_status) ? ' unapproved' : '';
+</thead>
+<tbody id="the-comment-list" class="list:comment">
+<?php
+ foreach ($comments as $comment)
+ _wp_comment_row( $comment->comment_ID, $mode, $comment_status );
?>
- <tr id="comment-<?php echo $comment->comment_ID; ?>" class='<?php echo $class; ?>'>
- <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><?php comment_author_link() ?></td>
- <td><?php comment_author_email_link() ?></td>
- <td><a href="edit-comments.php?s=<?php comment_author_IP() ?>&amp;mode=edit"><?php comment_author_IP() ?></a></td>
- <td><?php comment_excerpt(); ?></td>
- <td>
- <?php if ('unapproved' == $comment_status) {
- _e('Unapproved');
- } else { ?>
- <a href="<?php echo get_permalink($comment->comment_post_ID); ?>#comment-<?php comment_ID() ?>" class="edit"><?php _e('View') ?></a>
- <?php } ?>
- </td>
- <td><?php if ( current_user_can('edit_post', $comment->comment_post_ID) ) {
- echo "<a href='comment.php?action=editcomment&amp;c=$comment->comment_ID' class='edit'>" . __('Edit') . "</a>"; } ?></td>
- <td><?php if ( current_user_can('edit_post', $comment->comment_post_ID) ) {
- echo "<a href=\"comment.php?action=deletecomment&amp;p=".$comment->comment_post_ID."&amp;c=".$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 );\" class='delete'>" . __('Delete') . "</a> ";
- } ?></td>
- </tr>
- <?php
- } // end foreach
- ?></table>
-<p class="submit"><input type="submit" name="delete_button" class="delete" value="<?php _e('Delete Checked Comments &raquo;') ?>" onclick="var numchecked = getNumChecked(document.getElementById('deletecomments')); if(numchecked < 1) { alert('<?php echo js_escape(__("Please select some comments to delete")); ?>'); return false } return confirm('<?php echo sprintf(js_escape(__("You are about to delete %s comments permanently \n 'Cancel' to stop, 'OK' to delete.")), "' + numchecked + '"); ?>')" />
- <input type="submit" name="spam_button" value="<?php _e('Mark Checked Comments as Spam &raquo;') ?>" onclick="var numchecked = getNumChecked(document.getElementById('deletecomments')); if(numchecked < 1) { alert('<?php echo js_escape(__("Please select some comments to mark as spam")); ?>'); return false } return confirm('<?php echo sprintf(js_escape(__("You are about to mark %s comments as spam \n 'Cancel' to stop, 'OK' to mark as spam.")), "' + numchecked + '"); ?>')" /></p>
- </form>
+</tbody>
+<tbody id="the-extra-comment-list" class="list:comment" style="display: none;">
+<?php
+ foreach ($extra_comments as $comment)
+ _wp_comment_row( $comment->comment_ID, $mode, $comment_status );
+?>
+</tbody>
+</table>
+
+</form>
+
+<form id="get-extra-comments" method="post" action="" class="add:the-extra-comment-list:" style="display: none;">
+ <input type="hidden" name="s" value="<?php echo $search; ?>" />
+ <input type="hidden" name="mode" value="<?php echo $mode; ?>" />
+ <input type="hidden" name="comment_status" value="<?php echo $comment_status; ?>" />
+ <input type="hidden" name="page" value="<?php echo isset($_REQUEST['page']) ? absint( $_REQUEST['page'] ) : 1; ?>" />
+ <?php wp_nonce_field( 'add-comment', '_ajax_nonce', false ); ?>
+</form>
+
<div id="ajax-response"></div>
<?php
- } else {
+} elseif ( 'moderated' == $_GET['comment_status'] ) {
?>
<p>
-<strong><?php _e('No results found.') ?></strong>
+<?php _e('No comments awaiting moderation&hellip; yet.') ?>
+</p>
+<?php
+} else {
+?>
+<p>
+<?php _e('No results found.') ?>
</p>
<?php
- } // end if ($comments)
}
-
+?>
+<div class="tablenav">
+<?php
if ( $page_links )
- echo "<p class='pagenav'>$page_links</p>";
-
+ echo "<div class='tablenav-pages'>$page_links</div>";
?>
+<br class="clear" />
+</div>
</div>