Esempio n. 1
0
 /**
  * @covers ::bbp_user_post_count
  * @covers ::bbp_get_user_post_count
  */
 function test_bbp_get_user_post_count()
 {
     $u = $this->factory->user->create();
     $int_value = 3;
     $integer = true;
     // Add reply count
     bbp_update_user_reply_count($u, $int_value);
     // Count
     $count = bbp_get_user_post_count($u, $integer);
     $this->assertSame($int_value, $count);
     // Add topic count
     bbp_update_user_topic_count($u, $int_value);
     $double_value = $int_value * 2;
     // Count + Count
     $double_count = bbp_get_user_post_count($u, true);
     $this->assertSame($double_value, $double_count);
     // Output
     $double_formatted_value = bbp_number_format($double_value);
     $this->expectOutputString($double_formatted_value);
     bbp_user_post_count($u);
 }
Esempio n. 2
0
/**
 * Output a users total post count
 *
 * @since 2.1.0 bbPress (r3632)
 *
 * @param int $user_id
 * @param boolean $integer Optional. Whether or not to format the result
 * @uses bbp_get_user_post_count()
 * @return string
 */
function bbp_user_post_count($user_id = 0, $integer = false)
{
    echo bbp_get_user_post_count($user_id, $integer);
}
Esempio n. 3
0
/**
 * Output a users total post count
 *
 * @since bbPress (r3632)
 *
 * @param int $user_id
 * @uses bbp_get_user_post_count()
 * @return string
 */
function bbp_user_post_count($user_id = 0)
{
    echo bbp_get_user_post_count($user_id);
}
Esempio n. 4
0
 /**
  * Converts topic/reply data into Akismet comment checking format
  *
  * @since 2.0.0 bbPress (r3277)
  *
  * @param string $post_data
  *
  * @uses get_userdata() To get the user data
  * @uses bbp_filter_anonymous_user_data() To get anonymous user data
  * @uses bbp_get_topic_permalink() To get the permalink of the topic
  * @uses bbp_get_reply_url() To get the permalink of the reply
  * @uses bbp_current_author_ip() To get the IP address of the current user
  * @uses BBP_Akismet::maybe_spam() To check if post is spam
  * @uses BBP_Akismet::get_user_roles() To get the role(s) of the current user
  * @uses do_action() To call the 'bbp_akismet_spam_caught' hook
  * @uses add_filter() To call the 'bbp_new_reply_pre_set_terms' hook
  *
  * @return array Array of post data
  */
 public function check_post($post_data)
 {
     // Define local variables
     $user_data = array();
     $post_permalink = '';
     // Post is not published
     if (bbp_get_public_status_id() !== $post_data['post_status']) {
         return $post_data;
     }
     // Cast the post_author to 0 if it's empty
     if (empty($post_data['post_author'])) {
         $post_data['post_author'] = 0;
     }
     /** Author ************************************************************/
     $user_data['last_active'] = '';
     $user_data['registered'] = date('Y-m-d H:i:s');
     $user_data['total_posts'] = (int) bbp_get_user_post_count($post_data['post_author']);
     // Get user data
     $userdata = get_userdata($post_data['post_author']);
     $anonymous_data = bbp_filter_anonymous_post_data();
     // Author is anonymous
     if (!empty($anonymous_data)) {
         $user_data['name'] = $anonymous_data['bbp_anonymous_name'];
         $user_data['email'] = $anonymous_data['bbp_anonymous_email'];
         $user_data['website'] = $anonymous_data['bbp_anonymous_website'];
         // Author is logged in
     } elseif (!empty($userdata)) {
         $user_data['name'] = $userdata->display_name;
         $user_data['email'] = $userdata->user_email;
         $user_data['website'] = $userdata->user_url;
         $user_data['registered'] = $userdata->user_registered;
         // Missing author data, so set some empty strings
     } else {
         $user_data['name'] = '';
         $user_data['email'] = '';
         $user_data['website'] = '';
     }
     /** Post **************************************************************/
     if (!empty($post_data['post_parent'])) {
         // Use post parent for permalink
         $post_permalink = get_permalink($post_data['post_parent']);
         // Use post parent to get datetime of last reply on this topic
         $reply_id = bbp_get_topic_last_reply_id($post_data['post_parent']);
         if (!empty($reply_id)) {
             $user_data['last_active'] = get_post_field('post_date', $reply_id);
         }
     }
     // Pass title & content together into comment content
     $_post_content = trim($post_data['post_title'] . "\n\n" . $post_data['post_content']);
     // Put post_data back into usable array
     $_post = array('comment_author' => $user_data['name'], 'comment_author_email' => $user_data['email'], 'comment_author_url' => $user_data['website'], 'comment_content' => $_post_content, 'comment_post_ID' => $post_data['post_parent'], 'comment_type' => $post_data['post_type'], 'comment_total' => $user_data['total_posts'], 'comment_last_active_gmt' => $user_data['last_active'], 'comment_account_registered_gmt' => $user_data['registered'], 'permalink' => $post_permalink, 'referrer' => $_SERVER['HTTP_REFERER'], 'user_agent' => $_SERVER['HTTP_USER_AGENT'], 'user_ID' => $post_data['post_author'], 'user_ip' => bbp_current_author_ip(), 'user_role' => $this->get_user_roles($post_data['post_author']));
     // Check the post_data
     $_post = $this->maybe_spam($_post);
     // Get the result
     $post_data['bbp_akismet_result'] = $_post['bbp_akismet_result'];
     unset($_post['bbp_akismet_result']);
     // Store the data as submitted
     $post_data['bbp_post_as_submitted'] = $_post;
     // Allow post_data to be manipulated
     do_action_ref_array('bbp_akismet_check_post', $post_data);
     // Spam
     if ('true' === $post_data['bbp_akismet_result']) {
         // Let plugins do their thing
         do_action('bbp_akismet_spam_caught');
         // This is spam
         $post_data['post_status'] = bbp_get_spam_status_id();
         // We don't want your spam tags here
         add_filter('bbp_new_reply_pre_set_terms', array($this, 'filter_post_terms'), 1, 3);
         // @todo Spam counter?
     }
     // @todo Topic/reply moderation? No true/false response - 'pending' or 'draft'
     // @todo Auto-delete old spam?
     // Log the last post
     $this->last_post = $post_data;
     // Pass the data back to the filter
     return $post_data;
 }