bp_dtheme_new_activity_comment()
Posts new Activity comments received via a POST request.
Description Description
Return Return
(string) HTML
Source Source
File: bp-themes/bp-default/_inc/ajax.php
function bp_dtheme_new_activity_comment() { global $activities_template; // Bail if not a POST action if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) return; // Check the nonce check_admin_referer( 'new_activity_comment', '_wpnonce_new_activity_comment' ); if ( ! is_user_logged_in() ) exit( '-1' ); if ( empty( $_POST['content'] ) ) exit( '-1<div id="message" class="error"><p>' . __( 'Please do not leave the comment area blank.', 'buddypress' ) . '</p></div>' ); if ( empty( $_POST['form_id'] ) || empty( $_POST['comment_id'] ) || ! is_numeric( $_POST['form_id'] ) || ! is_numeric( $_POST['comment_id'] ) ) exit( '-1<div id="message" class="error"><p>' . __( 'There was an error posting that reply, please try again.', 'buddypress' ) . '</p></div>' ); $comment_id = bp_activity_new_comment( array( 'activity_id' => $_POST['form_id'], 'content' => $_POST['content'], 'parent_id' => $_POST['comment_id'], 'error_type' => 'wp_error' ) ); if ( false === $comment_id ) { exit( '-1<div id="message" class="error"><p>' . __( 'There was an error posting that reply, please try again.', 'buddypress' ) . '</p></div>' ); } elseif ( is_wp_error( $comment_id ) ) { exit( '-1<div id="message" class="error bp-ajax-message"><p>' . esc_html( $comment_id->get_error_message() ) . '</p></div>' ); } // Load the new activity item into the $activities_template global bp_has_activities( 'display_comments=stream&hide_spam=false&show_hidden=true&include=' . $comment_id ); // Swap the current comment with the activity item we just loaded $activities_template->activity = new stdClass; $activities_template->activity->id = $activities_template->activities[0]->item_id; $activities_template->activity->current_comment = $activities_template->activities[0]; $template = locate_template( 'activity/comment.php', false, false ); /** * Backward compatibility. In older versions of BP, the markup was * generated in the PHP instead of a template. This ensures that * older themes (which are not children of bp-default and won't * have the new template) will still work. */ if ( empty( $template ) ) $template = buddypress()->plugin_dir . '/bp-themes/bp-default/activity/comment.php'; load_template( $template, false ); unset( $activities_template ); exit; }
Changelog Changelog
Version | Description |
---|---|
BuddyPress (1.2) | Introduced. |