diff options
author | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2008-04-04 16:44:15 +0000 |
---|---|---|
committer | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2008-04-04 16:44:15 +0000 |
commit | 7740e89de3e1bc0cc636120e3ca8ab9e97e4d3cc (patch) | |
tree | c6fd23b598f3994eddb18cb1c0f2e8d95ff054fa /wp-admin/edit-comments.php | |
parent | f650f48c048bfbbb2ae702b6425d87e39358d748 (diff) | |
download | wordpress-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.php | 326 |
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() ?>&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&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&p=".$comment->comment_post_ID."&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 »') ?>" 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 »') ?>" 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… 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> |