[ XREF Home ] [ Index ]

PHP Cross Reference of WordPress Trunk

Provided by Yoast

title

Body

[close]

/wp-admin/includes/ -> comment.php (source)

   1  <?php
   2  /**
   3   * WordPress Comment Administration API.
   4   *
   5   * @package WordPress
   6   * @subpackage Administration
   7   */
   8  
   9  /**
  10   * {@internal Missing Short Description}}
  11   *
  12   * @since 2.0.0
  13   * @uses $wpdb
  14   *
  15   * @param string $comment_author Author of the comment
  16   * @param string $comment_date Date of the comment
  17   * @return mixed Comment ID on success.
  18   */
  19  function comment_exists($comment_author, $comment_date) {
  20      global $wpdb;
  21  
  22      $comment_author = stripslashes($comment_author);
  23      $comment_date = stripslashes($comment_date);
  24  
  25      return $wpdb->get_var( $wpdb->prepare("SELECT comment_post_ID FROM $wpdb->comments
  26              WHERE comment_author = %s AND comment_date = %s", $comment_author, $comment_date) );
  27  }
  28  
  29  /**
  30   * Update a comment with values provided in $_POST.
  31   *
  32   * @since 2.0.0
  33   */
  34  function edit_comment() {
  35  
  36      if ( ! current_user_can( 'edit_comment', (int) $_POST['comment_ID'] ) )
  37          wp_die ( __( 'You are not allowed to edit comments on this post.' ) );
  38  
  39      $_POST['comment_author'] = $_POST['newcomment_author'];
  40      $_POST['comment_author_email'] = $_POST['newcomment_author_email'];
  41      $_POST['comment_author_url'] = $_POST['newcomment_author_url'];
  42      $_POST['comment_approved'] = $_POST['comment_status'];
  43      $_POST['comment_content'] = $_POST['content'];
  44      $_POST['comment_ID'] = (int) $_POST['comment_ID'];
  45  
  46      foreach ( array ('aa', 'mm', 'jj', 'hh', 'mn') as $timeunit ) {
  47          if ( !empty( $_POST['hidden_' . $timeunit] ) && $_POST['hidden_' . $timeunit] != $_POST[$timeunit] ) {
  48              $_POST['edit_date'] = '1';
  49              break;
  50          }
  51      }
  52  
  53      if ( !empty ( $_POST['edit_date'] ) ) {
  54          $aa = $_POST['aa'];
  55          $mm = $_POST['mm'];
  56          $jj = $_POST['jj'];
  57          $hh = $_POST['hh'];
  58          $mn = $_POST['mn'];
  59          $ss = $_POST['ss'];
  60          $jj = ($jj > 31 ) ? 31 : $jj;
  61          $hh = ($hh > 23 ) ? $hh -24 : $hh;
  62          $mn = ($mn > 59 ) ? $mn -60 : $mn;
  63          $ss = ($ss > 59 ) ? $ss -60 : $ss;
  64          $_POST['comment_date'] = "$aa-$mm-$jj $hh:$mn:$ss";
  65      }
  66  
  67      wp_update_comment( $_POST );
  68  }
  69  
  70  /**
  71   * {@internal Missing Short Description}}
  72   *
  73   * @since 2.0.0
  74   *
  75   * @param int $id ID of comment to retrieve
  76   * @return bool|object Comment if found. False on failure.
  77   */
  78  function get_comment_to_edit( $id ) {
  79      if ( !$comment = get_comment($id) )
  80          return false;
  81  
  82      $comment->comment_ID = (int) $comment->comment_ID;
  83      $comment->comment_post_ID = (int) $comment->comment_post_ID;
  84  
  85      $comment->comment_content = format_to_edit( $comment->comment_content );
  86      $comment->comment_content = apply_filters( 'comment_edit_pre', $comment->comment_content);
  87  
  88      $comment->comment_author = format_to_edit( $comment->comment_author );
  89      $comment->comment_author_email = format_to_edit( $comment->comment_author_email );
  90      $comment->comment_author_url = format_to_edit( $comment->comment_author_url );
  91      $comment->comment_author_url = esc_url($comment->comment_author_url);
  92  
  93      return $comment;
  94  }
  95  
  96  /**
  97   * Get the number of pending comments on a post or posts
  98   *
  99   * @since 2.3.0
 100   * @uses $wpdb
 101   *
 102   * @param int|array $post_id Either a single Post ID or an array of Post IDs
 103   * @return int|array Either a single Posts pending comments as an int or an array of ints keyed on the Post IDs
 104   */
 105  function get_pending_comments_num( $post_id ) {
 106      global $wpdb;
 107  
 108      $single = false;
 109      if ( !is_array($post_id) ) {
 110          $post_id_array = (array) $post_id;
 111          $single = true;
 112      } else {
 113          $post_id_array = $post_id;
 114      }
 115      $post_id_array = array_map('intval', $post_id_array);
 116      $post_id_in = "'" . implode("', '", $post_id_array) . "'";
 117  
 118      $pending = $wpdb->get_results( "SELECT comment_post_ID, COUNT(comment_ID) as num_comments FROM $wpdb->comments WHERE comment_post_ID IN ( $post_id_in ) AND comment_approved = '0' GROUP BY comment_post_ID", ARRAY_A );
 119  
 120      if ( $single ) {
 121          if ( empty($pending) )
 122              return 0;
 123          else
 124              return absint($pending[0]['num_comments']);
 125      }
 126  
 127      $pending_keyed = array();
 128  
 129      // Default to zero pending for all posts in request
 130      foreach ( $post_id_array as $id )
 131          $pending_keyed[$id] = 0;
 132  
 133      if ( !empty($pending) )
 134          foreach ( $pending as $pend )
 135              $pending_keyed[$pend['comment_post_ID']] = absint($pend['num_comments']);
 136  
 137      return $pending_keyed;
 138  }
 139  
 140  /**
 141   * Add avatars to relevant places in admin, or try to.
 142   *
 143   * @since 2.5.0
 144   * @uses $comment
 145   *
 146   * @param string $name User name.
 147   * @return string Avatar with Admin name.
 148   */
 149  function floated_admin_avatar( $name ) {
 150      global $comment;
 151      $avatar = get_avatar( $comment, 32 );
 152      return "$avatar $name";
 153  }
 154  
 155  function enqueue_comment_hotkeys_js() {
 156      if ( 'true' == get_user_option( 'comment_shortcuts' ) )
 157          wp_enqueue_script( 'jquery-table-hotkeys' );
 158  }
 159  ?>


Generated: Wed Jun 1 08:30:02 2011 Cross-referenced by PHPXref 0.7
Provided by Yoast and awesome WordPress Hosting