function td_bbp_change_avatar_size($author_avatar, $topic_id, $size) { $author_avatar = ''; if ($size == 14) { $size = 40; } $topic_id = bbp_get_topic_id($topic_id); if (!empty($topic_id)) { if (!bbp_is_topic_anonymous($topic_id)) { $author_avatar = get_avatar(bbp_get_topic_author_id($topic_id), $size); } else { $author_avatar = get_avatar(get_post_meta($topic_id, '_bbp_anonymous_email', true), $size); } } return $author_avatar; }
<?php bbp_form_topic_status_dropdown(); ?> </p> <?php do_action('bbp_theme_after_topic_form_status'); ?> <?php } ?> <?php if (bbp_is_subscriptions_active() && !bbp_is_anonymous() && (!bbp_is_topic_edit() || bbp_is_topic_edit() && !bbp_is_topic_anonymous())) { ?> <?php do_action('bbp_theme_before_topic_form_subscriptions'); ?> <p> <input name="bbp_topic_subscription" id="bbp_topic_subscription" type="checkbox" value="bbp_subscribe" <?php bbp_form_topic_subscribed(); ?> tabindex="<?php bbp_tab_index(); ?> " />
/** * Return the topic author email address * * @since 2.0.0 bbPress (r3445) * * @param int $topic_id Optional. Reply id * @uses bbp_get_topic_id() To get the topic id * @uses bbp_is_topic_anonymous() To check if the topic is by an anonymous * user * @uses bbp_get_topic_author_id() To get the topic author id * @uses get_userdata() To get the user data * @uses get_post_meta() To get the anonymous poster's email * @uses apply_filters() Calls bbp_get_topic_author_email with the author * email & topic id * @return string Topic author email address */ function bbp_get_topic_author_email($topic_id = 0) { $topic_id = bbp_get_topic_id($topic_id); // Not anonymous user if (!bbp_is_topic_anonymous($topic_id)) { // Use topic author email address $user_id = bbp_get_topic_author_id($topic_id); $user = get_userdata($user_id); $author_email = !empty($user->user_email) ? $user->user_email : ''; // Anonymous } else { // Get email from post meta $author_email = get_post_meta($topic_id, '_bbp_anonymous_email', true); // Sanity check for missing email address if (empty($author_email)) { $author_email = ''; } } return apply_filters('bbp_get_topic_author_email', $author_email, $topic_id); }
/** * Handles the front end edit topic submission * * @param string $action The requested action to compare this function to * @uses bbp_add_error() To add an error message * @uses bbp_get_topic() To get the topic * @uses bbp_verify_nonce_request() To verify the nonce and check the request * @uses bbp_is_topic_anonymous() To check if topic is by an anonymous user * @uses current_user_can() To check if the current user can edit the topic * @uses bbp_filter_anonymous_post_data() To filter anonymous data * @uses is_wp_error() To check if the value retrieved is a {@link WP_Error} * @uses esc_attr() For sanitization * @uses bbp_is_forum_category() To check if the forum is a category * @uses bbp_is_forum_closed() To check if the forum is closed * @uses bbp_is_forum_private() To check if the forum is private * @uses remove_filter() To remove kses filters if needed * @uses apply_filters() Calls 'bbp_edit_topic_pre_title' with the title and * topic id * @uses apply_filters() Calls 'bbp_edit_topic_pre_content' with the content * and topic id * @uses bbPress::errors::get_error_codes() To get the {@link WP_Error} errors * @uses wp_save_post_revision() To save a topic revision * @uses bbp_update_topic_revision_log() To update the topic revision log * @uses bbp_stick_topic() To stick or super stick the topic * @uses bbp_unstick_topic() To unstick the topic * @uses wp_update_post() To update the topic * @uses do_action() Calls 'bbp_edit_topic' with the topic id, forum id, * anonymous data and reply author * @uses bbp_move_topic_handler() To handle movement of a topic from one forum * to another * @uses bbp_get_topic_permalink() To get the topic permalink * @uses wp_safe_redirect() To redirect to the topic link * @uses bbPress::errors::get_error_messages() To get the {@link WP_Error} error * messages */ function bbp_edit_topic_handler($action = '') { // Bail if action is not bbp-edit-topic if ('bbp-edit-topic' !== $action) { return; } // Define local variable(s) $revisions_removed = false; $topic = $topic_id = $topic_author = $forum_id = $anonymous_data = 0; $topic_title = $topic_content = $topic_edit_reason = ''; /** Topic *****************************************************************/ // Topic id was not passed if (empty($_POST['bbp_topic_id'])) { bbp_add_error('bbp_edit_topic_id', __('<strong>ERROR</strong>: Topic ID not found.', 'bbpress')); return; // Topic id was passed } elseif (is_numeric($_POST['bbp_topic_id'])) { $topic_id = (int) $_POST['bbp_topic_id']; $topic = bbp_get_topic($topic_id); } // Topic does not exist if (empty($topic)) { bbp_add_error('bbp_edit_topic_not_found', __('<strong>ERROR</strong>: The topic you want to edit was not found.', 'bbpress')); return; // Topic exists } else { // Check users ability to create new topic if (!bbp_is_topic_anonymous($topic_id)) { // User cannot edit this topic if (!current_user_can('edit_topic', $topic_id)) { bbp_add_error('bbp_edit_topic_permissions', __('<strong>ERROR</strong>: You do not have permission to edit that topic.', 'bbpress')); } // Set topic author $topic_author = bbp_get_topic_author_id($topic_id); // It is an anonymous post } else { // Filter anonymous data $anonymous_data = bbp_filter_anonymous_post_data(array(), true); } } // Nonce check if (!bbp_verify_nonce_request('bbp-edit-topic_' . $topic_id)) { bbp_add_error('bbp_edit_topic_nonce', __('<strong>ERROR</strong>: Are you sure you wanted to do that?', 'bbpress')); return; } // Remove kses filters from title and content for capable users and if the nonce is verified if (current_user_can('unfiltered_html') && !empty($_POST['_bbp_unfiltered_html_topic']) && wp_create_nonce('bbp-unfiltered-html-topic_' . $topic_id) === $_POST['_bbp_unfiltered_html_topic']) { remove_filter('bbp_edit_topic_pre_title', 'wp_filter_kses'); remove_filter('bbp_edit_topic_pre_content', 'bbp_encode_bad', 10); remove_filter('bbp_edit_topic_pre_content', 'bbp_filter_kses', 30); } /** Topic Forum ***********************************************************/ // Forum id was not passed if (empty($_POST['bbp_forum_id'])) { bbp_add_error('bbp_topic_forum_id', __('<strong>ERROR</strong>: Forum ID is missing.', 'bbpress')); // Forum id was passed } elseif (is_numeric($_POST['bbp_forum_id'])) { $forum_id = (int) $_POST['bbp_forum_id']; } // Current forum this topic is in $current_forum_id = bbp_get_topic_forum_id($topic_id); // Forum exists if (!empty($forum_id) && $forum_id !== $current_forum_id) { // Forum is a category if (bbp_is_forum_category($forum_id)) { bbp_add_error('bbp_edit_topic_forum_category', __('<strong>ERROR</strong>: This forum is a category. No topics can be created in it.', 'bbpress')); // Forum is not a category } else { // Forum is closed and user cannot access if (bbp_is_forum_closed($forum_id) && !current_user_can('edit_forum', $forum_id)) { bbp_add_error('bbp_edit_topic_forum_closed', __('<strong>ERROR</strong>: This forum has been closed to new topics.', 'bbpress')); } // Forum is private and user cannot access if (bbp_is_forum_private($forum_id)) { if (!current_user_can('read_private_forums')) { bbp_add_error('bbp_edit_topic_forum_private', __('<strong>ERROR</strong>: This forum is private and you do not have the capability to read or create new topics in it.', 'bbpress')); } // Forum is hidden and user cannot access } elseif (bbp_is_forum_hidden($forum_id)) { if (!current_user_can('read_hidden_forums')) { bbp_add_error('bbp_edit_topic_forum_hidden', __('<strong>ERROR</strong>: This forum is hidden and you do not have the capability to read or create new topics in it.', 'bbpress')); } } } } /** Topic Title ***********************************************************/ if (!empty($_POST['bbp_topic_title'])) { $topic_title = esc_attr(strip_tags($_POST['bbp_topic_title'])); } // Filter and sanitize $topic_title = apply_filters('bbp_edit_topic_pre_title', $topic_title, $topic_id); // No topic title if (empty($topic_title)) { bbp_add_error('bbp_edit_topic_title', __('<strong>ERROR</strong>: Your topic needs a title.', 'bbpress')); } /** Topic Content *********************************************************/ if (!empty($_POST['bbp_topic_content'])) { $topic_content = $_POST['bbp_topic_content']; } // Filter and sanitize $topic_content = apply_filters('bbp_edit_topic_pre_content', $topic_content, $topic_id); // No topic content if (empty($topic_content)) { bbp_add_error('bbp_edit_topic_content', __('<strong>ERROR</strong>: Your topic cannot be empty.', 'bbpress')); } /** Topic Blacklist *******************************************************/ if (!bbp_check_for_blacklist($anonymous_data, $topic_author, $topic_title, $topic_content)) { bbp_add_error('bbp_topic_blacklist', __('<strong>ERROR</strong>: Your topic cannot be edited at this time.', 'bbpress')); } /** Topic Status **********************************************************/ // Maybe put into moderation if (!bbp_check_for_moderation($anonymous_data, $topic_author, $topic_title, $topic_content)) { // Set post status to pending if public or closed if (in_array($topic->post_status, array(bbp_get_public_status_id(), bbp_get_closed_status_id()))) { $topic_status = bbp_get_pending_status_id(); } // Check a whitelist of possible topic status ID's } elseif (!empty($_POST['bbp_topic_status']) && in_array($_POST['bbp_topic_status'], array_keys(bbp_get_topic_statuses()))) { $topic_status = $_POST['bbp_topic_status']; // Use existing post_status } else { $topic_status = $topic->post_status; } /** Topic Tags ************************************************************/ // Either replace terms if (bbp_allow_topic_tags() && current_user_can('assign_topic_tags') && !empty($_POST['bbp_topic_tags'])) { // Escape tag input $terms = esc_attr(strip_tags($_POST['bbp_topic_tags'])); // Explode by comma if (strstr($terms, ',')) { $terms = explode(',', $terms); } // Add topic tag ID as main key $terms = array(bbp_get_topic_tag_tax_id() => $terms); // ...or remove them. } elseif (isset($_POST['bbp_topic_tags'])) { $terms = array(bbp_get_topic_tag_tax_id() => array()); // Existing terms } else { $terms = array(bbp_get_topic_tag_tax_id() => explode(',', bbp_get_topic_tag_names($topic_id, ','))); } /** Additional Actions (Before Save) **************************************/ do_action('bbp_edit_topic_pre_extras', $topic_id); // Bail if errors if (bbp_has_errors()) { return; } /** No Errors *************************************************************/ // Add the content of the form to $topic_data as an array // Just in time manipulation of topic data before being edited $topic_data = apply_filters('bbp_edit_topic_pre_insert', array('ID' => $topic_id, 'post_title' => $topic_title, 'post_content' => $topic_content, 'post_status' => $topic_status, 'post_parent' => $forum_id, 'post_author' => $topic_author, 'post_type' => bbp_get_topic_post_type(), 'tax_input' => $terms)); // Toggle revisions to avoid duplicates if (post_type_supports(bbp_get_topic_post_type(), 'revisions')) { $revisions_removed = true; remove_post_type_support(bbp_get_topic_post_type(), 'revisions'); } // Insert topic $topic_id = wp_update_post($topic_data); // Toggle revisions back on if (true === $revisions_removed) { $revisions_removed = false; add_post_type_support(bbp_get_topic_post_type(), 'revisions'); } /** No Errors *************************************************************/ if (!empty($topic_id) && !is_wp_error($topic_id)) { // Update counts, etc... do_action('bbp_edit_topic', $topic_id, $forum_id, $anonymous_data, $topic_author, true); /** Revisions *********************************************************/ // Revision Reason if (!empty($_POST['bbp_topic_edit_reason'])) { $topic_edit_reason = esc_attr(strip_tags($_POST['bbp_topic_edit_reason'])); } // Update revision log if (!empty($_POST['bbp_log_topic_edit']) && "1" === $_POST['bbp_log_topic_edit']) { $revision_id = wp_save_post_revision($topic_id); if (!empty($revision_id)) { bbp_update_topic_revision_log(array('topic_id' => $topic_id, 'revision_id' => $revision_id, 'author_id' => bbp_get_current_user_id(), 'reason' => $topic_edit_reason)); } } /** Move Topic ********************************************************/ // If the new forum id is not equal to the old forum id, run the // bbp_move_topic action and pass the topic's forum id as the // first arg and topic id as the second to update counts. if ($forum_id !== $topic->post_parent) { bbp_move_topic_handler($topic_id, $topic->post_parent, $forum_id); } /** Stickies **********************************************************/ if (!empty($_POST['bbp_stick_topic']) && in_array($_POST['bbp_stick_topic'], array_keys(bbp_get_topic_types()))) { // What's the caps? if (current_user_can('moderate')) { // What's the haps? switch ($_POST['bbp_stick_topic']) { // Sticky in forum case 'stick': bbp_stick_topic($topic_id); break; // Sticky in all forums // Sticky in all forums case 'super': bbp_stick_topic($topic_id, true); break; // Normal // Normal case 'unstick': default: bbp_unstick_topic($topic_id); break; } } } /** Additional Actions (After Save) ***********************************/ do_action('bbp_edit_topic_post_extras', $topic_id); /** Redirect **********************************************************/ // Redirect to $redirect_to = bbp_get_redirect_to(); // View all? $view_all = bbp_get_view_all(); // Get the topic URL $topic_url = bbp_get_topic_permalink($topic_id, $redirect_to); // Add view all? if (!empty($view_all)) { $topic_url = bbp_add_view_all($topic_url); } // Allow to be filtered $topic_url = apply_filters('bbp_edit_topic_redirect_to', $topic_url, $view_all, $redirect_to); /** Successful Edit ***************************************************/ // Redirect back to new topic wp_safe_redirect($topic_url); // For good measure exit; /** Errors ****************************************************************/ } else { $append_error = is_wp_error($topic_id) && $topic_id->get_error_message() ? $topic_id->get_error_message() . ' ' : ''; bbp_add_error('bbp_topic_error', __('<strong>ERROR</strong>: The following problem(s) have been found with your topic:' . $append_error . 'Please try again.', 'bbpress')); } }
/** * Update the activity stream entry when a topic status changes * * @param int $post_id * @param obj $post * @uses get_post_type() * @uses bbp_get_topic_post_type() * @uses bbp_get_topic_id() * @uses bbp_is_topic_anonymous() * @uses bbp_get_public_status_id() * @uses bbp_get_closed_status_id() * @uses bbp_get_topic_forum_id() * @uses bbp_get_topic_author_id() * @return Bail early if not a topic, or topic is by anonymous user */ public function topic_update($topic_id, $post) { // Bail early if not a topic if (get_post_type($post) != bbp_get_topic_post_type()) { return; } $topic_id = bbp_get_topic_id($topic_id); // Bail early if topic is by anonymous user if (bbp_is_topic_anonymous($topic_id)) { return; } $anonymous_data = array(); // Action based on new status if (in_array($post->post_status, array(bbp_get_public_status_id(), bbp_get_closed_status_id()))) { // Validate topic data $forum_id = bbp_get_topic_forum_id($topic_id); $topic_author_id = bbp_get_topic_author_id($topic_id); $this->topic_create($topic_id, $forum_id, $anonymous_data, $topic_author_id); } else { $this->topic_delete($topic_id); } }
/** * Fix post author id on post save * * When a logged in user changes the status of an anonymous reply or topic, or * edits it, the post_author field is set to the logged in user's id. This * function fixes that. * * @since 2.0.0 bbPress (r2734) * * @param array $data Post data * @param array $postarr Original post array (includes post id) * @uses bbp_get_topic_post_type() To get the topic post type * @uses bbp_get_reply_post_type() To get the reply post type * @uses bbp_is_topic_anonymous() To check if the topic is by an anonymous user * @uses bbp_is_reply_anonymous() To check if the reply is by an anonymous user * @return array Data */ function bbp_fix_post_author($data = array(), $postarr = array()) { // Post is not being updated or the post_author is already 0, return if (empty($postarr['ID']) || empty($data['post_author'])) { return $data; } // Post is not a topic or reply, return if (!in_array($data['post_type'], array(bbp_get_topic_post_type(), bbp_get_reply_post_type()))) { return $data; } // Is the post by an anonymous user? if (bbp_get_topic_post_type() === $data['post_type'] && !bbp_is_topic_anonymous($postarr['ID']) || bbp_get_reply_post_type() === $data['post_type'] && !bbp_is_reply_anonymous($postarr['ID'])) { return $data; } // The post is being updated. It is a topic or a reply and is written by an anonymous user. // Set the post_author back to 0 $data['post_author'] = 0; return $data; }
/** * Performs a series of checks to ensure the current user should see the * anonymous user form fields. * * @since 2.5.0 bbPress (r5119) * * @uses bbp_is_anonymous() * @uses bbp_is_topic_edit() * @uses bbp_is_topic_anonymous() * @uses bbp_is_reply_edit() * @uses bbp_is_reply_anonymous() * * @return bool */ function bbp_current_user_can_access_anonymous_user_form() { // Users need to earn access $retval = false; // User is not logged in, and anonymous posting is allowed if (bbp_is_anonymous()) { $retval = true; // User is editing a topic, and topic is authored by anonymous user } elseif (bbp_is_topic_edit() && bbp_is_topic_anonymous()) { $retval = true; // User is editing a reply, and reply is authored by anonymous user } elseif (bbp_is_reply_edit() && bbp_is_reply_anonymous()) { $retval = true; } // Allow access to be filtered return (bool) apply_filters('bbp_current_user_can_access_anonymous_user_form', (bool) $retval); }
<?php /** * Anonymous User * * @package bbPress * @subpackage Theme */ ?> <?php if (bbp_is_anonymous() || bbp_is_topic_edit() && bbp_is_topic_anonymous() || bbp_is_reply_edit() && bbp_is_reply_anonymous()) { ?> <?php do_action('bbp_theme_before_anonymous_form'); ?> <fieldset class="bbp-form"> <legend><?php bbp_is_topic_edit() || bbp_is_reply_edit() ? _e('Author Information', 'bbpress') : _e('Your information:', 'bbpress'); ?> </legend> <?php do_action('bbp_theme_anonymous_form_extras_top'); ?> <p> <label for="bbp_anonymous_author"><?php _e('Name (required):', 'bbpress');
/** * Anonymous user information metabox * * @since 2.0.0 bbPress (r2828) * * @uses bbp_is_reply_anonymous() To check if reply is anonymous * @uses bbp_is_topic_anonymous() To check if topic is anonymous * @uses get_the_ID() To get the global post ID * @uses get_post_meta() To get the author user information */ function bbp_author_metabox() { // Post ID $post_id = get_the_ID(); // Show extra bits if topic/reply is anonymous if (bbp_is_reply_anonymous($post_id) || bbp_is_topic_anonymous($post_id)) { ?> <p> <strong class="label"><?php esc_html_e('Name:', 'bbpress'); ?> </strong> <label class="screen-reader-text" for="bbp_anonymous_name"><?php esc_html_e('Name', 'bbpress'); ?> </label> <input type="text" id="bbp_anonymous_name" name="bbp_anonymous_name" value="<?php echo esc_attr(get_post_meta($post_id, '_bbp_anonymous_name', true)); ?> " /> </p> <p> <strong class="label"><?php esc_html_e('Email:', 'bbpress'); ?> </strong> <label class="screen-reader-text" for="bbp_anonymous_email"><?php esc_html_e('Email', 'bbpress'); ?> </label> <input type="text" id="bbp_anonymous_email" name="bbp_anonymous_email" value="<?php echo esc_attr(get_post_meta($post_id, '_bbp_anonymous_email', true)); ?> " /> </p> <p> <strong class="label"><?php esc_html_e('Website:', 'bbpress'); ?> </strong> <label class="screen-reader-text" for="bbp_anonymous_website"><?php esc_html_e('Website', 'bbpress'); ?> </label> <input type="text" id="bbp_anonymous_website" name="bbp_anonymous_website" value="<?php echo esc_attr(get_post_meta($post_id, '_bbp_anonymous_website', true)); ?> " /> </p> <?php } else { ?> <p> <strong class="label"><?php esc_html_e('ID:', 'bbpress'); ?> </strong> <label class="screen-reader-text" for="bbp_author_id"><?php esc_html_e('ID', 'bbpress'); ?> </label> <input type="text" id="bbp_author_id" name="post_author_override" value="<?php echo esc_attr(bbp_get_global_post_field('post_author')); ?> " data-ajax-url="<?php echo esc_url(wp_nonce_url(add_query_arg(array('action' => 'bbp_suggest_user'), admin_url('admin-ajax.php', 'relative')), 'bbp_suggest_user_nonce')); ?> " /> </p> <?php } ?> <p> <strong class="label"><?php esc_html_e('IP:', 'bbpress'); ?> </strong> <label class="screen-reader-text" for="bbp_author_ip_address"><?php esc_html_e('IP Address', 'bbpress'); ?> </label> <input type="text" id="bbp_author_ip_address" name="bbp_author_ip_address" value="<?php echo esc_attr(get_post_meta($post_id, '_bbp_author_ip', true)); ?> " disabled="disabled" /> </p> <?php do_action('bbp_author_metabox', $post_id); }
/** * Anonymous user information metabox * * @since bbPress (r2828) * * @uses bbp_is_reply_anonymous() To check if reply is anonymous * @uses bbp_is_topic_anonymous() To check if topic is anonymous * @uses get_the_ID() To get the global post ID * @uses get_post_meta() To get the author user information */ function bbp_author_metabox() { // Post ID $post_id = get_the_ID(); // Show extra bits if topic/reply is anonymous if (bbp_is_reply_anonymous($post_id) || bbp_is_topic_anonymous($post_id)) { ?> <p><strong><?php _e('Name', 'bbpress'); ?> </strong></p> <p> <label class="screen-reader-text" for="bbp_anonymous_name"><?php _e('Name', 'bbpress'); ?> </label> <input type="text" id="bbp_anonymous_name" name="bbp_anonymous_name" value="<?php echo esc_attr(get_post_meta($post_id, '_bbp_anonymous_name', true)); ?> " size="25" /> </p> <p><strong><?php _e('Email', 'bbpress'); ?> </strong></p> <p> <label class="screen-reader-text" for="bbp_anonymous_email"><?php _e('Email', 'bbpress'); ?> </label> <input type="text" id="bbp_anonymous_email" name="bbp_anonymous_email" value="<?php echo esc_attr(get_post_meta($post_id, '_bbp_anonymous_email', true)); ?> " size="25" /> </p> <p><strong><?php _e('Website', 'bbpress'); ?> </strong></p> <p> <label class="screen-reader-text" for="bbp_anonymous_website"><?php _e('Website', 'bbpress'); ?> </label> <input type="text" id="bbp_anonymous_website" name="bbp_anonymous_website" value="<?php echo esc_attr(get_post_meta($post_id, '_bbp_anonymous_website', true)); ?> " size="25" /> </p> <?php } ?> <p><strong><?php _e('IP Address', 'bbpress'); ?> </strong></p> <p> <label class="screen-reader-text" for="bbp_author_ip_address"><?php _e('IP Address', 'bbpress'); ?> </label> <input type="text" id="bbp_author_ip_address" name="bbp_author_ip_address" value="<?php echo esc_attr(get_post_meta($post_id, '_bbp_author_ip', true)); ?> " size="25" disabled="disabled" /> </p> <?php do_action('bbp_author_metabox', $post_id); }
/** * Get the data being exported * * @access public * @since 1.0 * @return array $data Data for Export */ public function get_data() { $topics = get_posts(array('post_parent' => $this->forum_id, 'nopaging' => true, 'post_type' => bbp_get_topic_post_type())); foreach ($topics as $topic) { $topic_anonymous = bbp_is_topic_anonymous($topic->ID); if ($topic_anonymous) { $email = get_post_meta($topic->ID, '_bbp_anonymous_email', true); } else { $email = get_the_author_meta('email', $topic->post_author); } $data[] = array('post_type' => bbp_get_topic_post_type(), 'post_author' => $email, 'user_login' => get_the_author_meta('user_login', $topic->post_author), 'post_parent' => $topic->post_parent, 'post_content' => htmlentities($topic->post_content), 'post_title' => $topic->post_title, 'post_date_gmt' => $topic->post_date_gmt, 'post_date' => $topic->post_date, 'anonymous' => $topic_anonymous ? '1' : '0', 'voices' => bbp_get_topic_voice_count($topic->ID), 'reply_count' => bbp_get_topic_post_count($topic->ID), 'resolved' => function_exists('bbps_topic_resolved') && bbps_topic_resolved($topic->ID) ? '1' : 0); $replies = get_posts(array('post_parent' => $topic->ID, 'nopaging' => true, 'post_type' => bbp_get_reply_post_type())); if ($replies) { foreach ($replies as $reply) { $reply_anonymous = bbp_is_reply_anonymous($reply->ID); if ($reply_anonymous) { $reply_email = get_post_meta($topic->ID, '_bbp_anonymous_email', true); } else { $reply_email = get_the_author_meta('email', $reply->post_author); } $data[] = array('post_type' => bbp_get_reply_post_type(), 'post_author' => $reply_email, 'user_login' => get_the_author_meta('user_login', $reply->post_author), 'post_parent' => $reply->post_parent, 'post_content' => htmlentities($reply->post_content), 'post_title' => $reply->post_title, 'post_date_gmt' => $reply->post_date_gmt, 'post_date' => $reply->post_date, 'anonymous' => $reply_anonymous ? '1' : '0', 'voices' => '0', 'reply_count' => '0', 'resolved' => '0'); } } } $data = apply_filters('bbp_export_get_data', $data); return $data; }