[ Index ]

WordPress Cross Reference

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   * Determine if a comment exists based on author and date.
  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 post 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      if ( isset( $_POST['newcomment_author'] ) )
  40          $_POST['comment_author'] = $_POST['newcomment_author'];
  41      if ( isset( $_POST['newcomment_author_email'] ) )
  42          $_POST['comment_author_email'] = $_POST['newcomment_author_email'];
  43      if ( isset( $_POST['newcomment_author_url'] ) )
  44          $_POST['comment_author_url'] = $_POST['newcomment_author_url'];
  45      if ( isset( $_POST['comment_status'] ) )
  46          $_POST['comment_approved'] = $_POST['comment_status'];
  47      if ( isset( $_POST['content'] ) )
  48          $_POST['comment_content'] = $_POST['content'];
  49      if ( isset( $_POST['comment_ID'] ) )
  50          $_POST['comment_ID'] = (int) $_POST['comment_ID'];
  51  
  52      foreach ( array ('aa', 'mm', 'jj', 'hh', 'mn') as $timeunit ) {
  53          if ( !empty( $_POST['hidden_' . $timeunit] ) && $_POST['hidden_' . $timeunit] != $_POST[$timeunit] ) {
  54              $_POST['edit_date'] = '1';
  55              break;
  56          }
  57      }
  58  
  59      if ( !empty ( $_POST['edit_date'] ) ) {
  60          $aa = $_POST['aa'];
  61          $mm = $_POST['mm'];
  62          $jj = $_POST['jj'];
  63          $hh = $_POST['hh'];
  64          $mn = $_POST['mn'];
  65          $ss = $_POST['ss'];
  66          $jj = ($jj > 31 ) ? 31 : $jj;
  67          $hh = ($hh > 23 ) ? $hh -24 : $hh;
  68          $mn = ($mn > 59 ) ? $mn -60 : $mn;
  69          $ss = ($ss > 59 ) ? $ss -60 : $ss;
  70          $_POST['comment_date'] = "$aa-$mm-$jj $hh:$mn:$ss";
  71      }
  72  
  73      wp_update_comment( $_POST );
  74  }
  75  
  76  /**
  77   * Returns a comment object based on comment ID.
  78   *
  79   * @since 2.0.0
  80   *
  81   * @param int $id ID of comment to retrieve.
  82   * @return bool|object Comment if found. False on failure.
  83   */
  84  function get_comment_to_edit( $id ) {
  85      if ( !$comment = get_comment($id) )
  86          return false;
  87  
  88      $comment->comment_ID = (int) $comment->comment_ID;
  89      $comment->comment_post_ID = (int) $comment->comment_post_ID;
  90  
  91      $comment->comment_content = format_to_edit( $comment->comment_content );
  92      /**
  93       * Filter the comment content before editing.
  94       *
  95       * @since 2.0.0
  96       *
  97       * @param string $comment->comment_content Comment content.
  98       */
  99      $comment->comment_content = apply_filters( 'comment_edit_pre', $comment->comment_content );
 100  
 101      $comment->comment_author = format_to_edit( $comment->comment_author );
 102      $comment->comment_author_email = format_to_edit( $comment->comment_author_email );
 103      $comment->comment_author_url = format_to_edit( $comment->comment_author_url );
 104      $comment->comment_author_url = esc_url($comment->comment_author_url);
 105  
 106      return $comment;
 107  }
 108  
 109  /**
 110   * Get the number of pending comments on a post or posts
 111   *
 112   * @since 2.3.0
 113   * @uses $wpdb
 114   *
 115   * @param int|array $post_id Either a single Post ID or an array of Post IDs
 116   * @return int|array Either a single Posts pending comments as an int or an array of ints keyed on the Post IDs
 117   */
 118  function get_pending_comments_num( $post_id ) {
 119      global $wpdb;
 120  
 121      $single = false;
 122      if ( !is_array($post_id) ) {
 123          $post_id_array = (array) $post_id;
 124          $single = true;
 125      } else {
 126          $post_id_array = $post_id;
 127      }
 128      $post_id_array = array_map('intval', $post_id_array);
 129      $post_id_in = "'" . implode("', '", $post_id_array) . "'";
 130  
 131      $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 );
 132  
 133      if ( $single ) {
 134          if ( empty($pending) )
 135              return 0;
 136          else
 137              return absint($pending[0]['num_comments']);
 138      }
 139  
 140      $pending_keyed = array();
 141  
 142      // Default to zero pending for all posts in request
 143      foreach ( $post_id_array as $id )
 144          $pending_keyed[$id] = 0;
 145  
 146      if ( !empty($pending) )
 147          foreach ( $pending as $pend )
 148              $pending_keyed[$pend['comment_post_ID']] = absint($pend['num_comments']);
 149  
 150      return $pending_keyed;
 151  }
 152  
 153  /**
 154   * Add avatars to relevant places in admin, or try to.
 155   *
 156   * @since 2.5.0
 157   * @uses $comment
 158   *
 159   * @param string $name User name.
 160   * @return string Avatar with Admin name.
 161   */
 162  function floated_admin_avatar( $name ) {
 163      global $comment;
 164      $avatar = get_avatar( $comment, 32, 'mystery' );
 165      return "$avatar $name";
 166  }
 167  
 168  function enqueue_comment_hotkeys_js() {
 169      if ( 'true' == get_user_option( 'comment_shortcuts' ) )
 170          wp_enqueue_script( 'jquery-table-hotkeys' );
 171  }


Generated: Tue Mar 25 01:41:18 2014 WordPress honlapkészítés: online1.hu