[ Index ]

WordPress Source Cross Reference

title

Body

[close]

/wp-admin/ -> moderation.php (source)

   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'); ?> &#8212; [ <?php
 137  echo '<a href="comment.php?action=editcomment&amp;comment='.$comment->comment_ID.'">' . __('Edit') . '</a> | ';
 138  echo " <a href=\"post.php?action=deletecomment&amp;p=".$comment->comment_post_ID."&amp;comment=".$comment->comment_ID."\" onclick=\"return deleteSomething( 'comment', $comment->comment_ID, '" . sprintf(__("You are about to delete this comment by &quot;%s&quot;.\\n&quot;Cancel&quot; to stop, &quot;OK&quot; 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> ] &#8212;
 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> &nbsp;
 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> &nbsp;
 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> &nbsp;
 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 &raquo;') ?>" /></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&#8217;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  ?>

Your comment here...

Name: Location:
Comments:


List: Classes | Functions | Variables | Constants | Tables

Generated: Sat Jul 15 11:57:04 2006 Courtesy of Taragana