| [ Index ] |
WordPress Source Cross Reference |
[Summary view] [Print] [Text view]
1 <?php 2 require_once ('admin.php'); 3 4 $title = __('Moderate comments'); 5 $parent_file = 'edit.php'; 6 wp_enqueue_script( 'admin-comments' ); 7 8 wp_reset_vars(array('action', 'item_ignored', 'item_deleted', 'item_approved', 'item_spam', 'feelinglucky')); 9 10 $comment = array(); 11 if (isset($_POST["comment"])) { 12 foreach ($_POST["comment"] as $k => $v) { 13 $comment[intval($k)] = $v; 14 } 15 } 16 17 switch($action) { 18 19 case 'update': 20 21 check_admin_referer('moderate-comments'); 22 23 if ( ! current_user_can('moderate_comments') ) 24 wp_die('<p>'.__('Your level is not high enough to moderate comments.').'</p>'); 25 26 $item_ignored = 0; 27 $item_deleted = 0; 28 $item_approved = 0; 29 $item_spam = 0; 30 31 foreach($comment as $key => $value) { 32 if ($feelinglucky && 'later' == $value) 33 $value = 'delete'; 34 switch($value) { 35 case 'later': 36 // do nothing with that comment 37 // wp_set_comment_status($key, "hold"); 38 ++$item_ignored; 39 break; 40 case 'delete': 41 wp_set_comment_status($key, 'delete'); 42 ++$item_deleted; 43 break; 44 case 'spam': 45 wp_set_comment_status($key, 'spam'); 46 ++$item_spam; 47 break; 48 case 'approve': 49 wp_set_comment_status($key, 'approve'); 50 if ( get_settings('comments_notify') == true ) { 51 wp_notify_postauthor($key); 52 } 53 ++$item_approved; 54 break; 55 } 56 } 57 58 $file = basename(__FILE__); 59 wp_redirect("$file?ignored=$item_ignored&deleted=$item_deleted&approved=$item_approved&spam=$item_spam"); 60 exit(); 61 62 break; 63 64 default: 65 66 require_once ('admin-header.php'); 67 68 if ( isset($_GET['deleted']) || isset($_GET['approved']) || isset($_GET['ignored']) ) { 69 echo "<div id='moderated' class='updated fade'>\n<p>"; 70 $approved = (int) $_GET['approved']; 71 $deleted = (int) $_GET['deleted']; 72 $ignored = (int) $_GET['ignored']; 73 $spam = (int) $_GET['spam']; 74 if ($approved) { 75 if ('1' == $approved) { 76 echo __("1 comment approved") . " <br/>\n"; 77 } else { 78 echo sprintf(__("%s comments approved <br />"), $approved) . "\n"; 79 } 80 } 81 if ($deleted) { 82 if ('1' == $deleted) { 83 echo __("1 comment deleted") . " <br/>\n"; 84 } else { 85 echo sprintf(__("%s comments deleted"), $deleted) . " <br/>\n"; 86 } 87 } 88 if ($spam) { 89 if ('1' == $spam) { 90 echo __("1 comment marked as spam") . " <br/>\n"; 91 } else { 92 echo sprintf(__("%s comments marked as spam"), $spam) . " <br/>\n"; 93 } 94 } 95 if ($ignored) { 96 if ('1' == $ignored) { 97 echo __("1 comment unchanged") . " <br/>\n"; 98 } else { 99 echo sprintf(__("%s comments unchanged"), $ignored) . " <br/>\n"; 100 } 101 } 102 echo "</p></div>\n"; 103 } 104 105 ?> 106 107 <div class="wrap"> 108 109 <?php 110 if ( current_user_can('moderate_comments') ) 111 $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_approved = '0'"); 112 else 113 $comments = ''; 114 115 if ($comments) { 116 // list all comments that are waiting for approval 117 $file = basename(__FILE__); 118 ?> 119 <h2><?php _e('Moderation Queue') ?></h2> 120 <form name="approval" action="moderation.php" method="post"> 121 <?php wp_nonce_field('moderate-comments') ?> 122 <input type="hidden" name="action" value="update" /> 123 <ol id="the-comment-list" class="commentlist"> 124 <?php 125 $i = 0; 126 foreach($comments as $comment) { 127 ++$i; 128 $comment_date = mysql2date(get_settings("date_format") . " @ " . get_settings("time_format"), $comment->comment_date); 129 $post_title = $wpdb->get_var("SELECT post_title FROM $wpdb->posts WHERE ID='$comment->comment_post_ID'"); 130 if ($i % 2) $class = 'js-unapproved alternate'; 131 else $class = 'js-unapproved'; 132 echo "\n\t<li id='comment-$comment->comment_ID' class='$class'>"; 133 ?> 134 <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> 135 <?php comment_text() ?> 136 <p><?php comment_date('M j, g:i A'); ?> — [ <?php 137 echo '<a href="comment.php?action=editcomment&comment='.$comment->comment_ID.'">' . __('Edit') . '</a> | '; 138 echo " <a href=\"post.php?action=deletecomment&p=".$comment->comment_post_ID."&comment=".$comment->comment_ID."\" onclick=\"return deleteSomething( 'comment', $comment->comment_ID, '" . sprintf(__("You are about to delete this comment by "%s".\\n"Cancel" to stop, "OK" to delete."), js_escape($comment->comment_author)) . "', theCommentList );\">" . __('Delete ') . "</a> | "; ?> 139 <?php 140 $post = get_post($comment->comment_post_ID); 141 $post_title = wp_specialchars( $post->post_title, 'double' ); 142 $post_title = ('' == $post_title) ? "# $comment->comment_post_ID" : $post_title; 143 ?> 144 <a href="<?php echo get_permalink($comment->comment_post_ID); ?>" title="<?php echo $post_title; ?>"><?php _e('View Post') ?></a> ] — 145 <?php _e('Bulk action:') ?> 146 <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> 147 <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> 148 <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> 149 <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> 150 </p> 151 152 </li> 153 <?php 154 } 155 ?> 156 </ol> 157 158 <div id="ajax-response"></div> 159 160 <p class="submit"><input type="submit" name="submit" value="<?php _e('Bulk Moderate Comments »') ?>" /></p> 161 <script type="text/javascript"> 162 // <![CDATA[ 163 function markAllForDelete() { 164 for (var i=0; i< document.approval.length; i++) { 165 if (document.approval[i].value == "delete") { 166 document.approval[i].checked = true; 167 } 168 } 169 } 170 function markAllForApprove() { 171 for (var i=0; i< document.approval.length; i++) { 172 if (document.approval[i].value == "approve") { 173 document.approval[i].checked = true; 174 } 175 } 176 } 177 function markAllForDefer() { 178 for (var i=0; i< document.approval.length; i++) { 179 if (document.approval[i].value == "later") { 180 document.approval[i].checked = true; 181 } 182 } 183 } 184 function markAllAsSpam() { 185 for (var i=0; i< document.approval.length; i++) { 186 if (document.approval[i].value == "spam") { 187 document.approval[i].checked = true; 188 } 189 } 190 } 191 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>'); 192 // ]]> 193 </script> 194 195 <noscript> 196 <p> 197 <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> 198 </p> 199 </noscript> 200 </form> 201 <?php 202 } else { 203 // nothing to approve 204 echo '<p>'.__("Currently there are no comments for you to moderate.") . "</p>\n"; 205 } 206 ?> 207 208 </div> 209 210 <?php 211 212 break; 213 } 214 215 216 include ('admin-footer.php'); 217 218 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Sat Jul 15 11:57:04 2006 | Courtesy of Taragana |