bp_legacy_theme_new_activity_comment()
Posts new Activity comments received via a POST request.
Description Description
Return Return
(string|null) HTML
Source Source
File: bp-templates/bp-legacy/buddypress-functions.php
function bp_legacy_theme_new_activity_comment() {
global $activities_template;
$bp = buddypress();
if ( ! bp_is_post_request() ) {
return;
}
// Check the nonce.
check_admin_referer( 'new_activity_comment', '_wpnonce_new_activity_comment' );
if ( ! is_user_logged_in() ) {
exit( '-1' );
}
$feedback = __( 'There was an error posting your reply. Please try again.', 'buddypress' );
if ( empty( $_POST['content'] ) ) {
exit( '-1<div id="message" class="error bp-ajax-message"><p>' . esc_html__( '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 bp-ajax-message"><p>' . esc_html( $feedback ) . '</p></div>' );
}
$activity_id = (int) $_POST['form_id'];
$activity_item = new BP_Activity_Activity( $activity_id );
if ( ! bp_activity_user_can_read( $activity_item ) ) {
exit( '-1<div id="message" class="error bp-ajax-message"><p>' . esc_html( $feedback ) . '</p></div>' );
}
$comment_id = bp_activity_new_comment( array(
'activity_id' => $activity_id,
'content' => $_POST['content'],
'parent_id' => $_POST['comment_id'],
'error_type' => 'wp_error'
) );
if ( 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.
if ( isset( $activities_template->activities[0] ) ) {
$activities_template->activity = new stdClass();
$activities_template->activity->id = $activities_template->activities[0]->item_id;
$activities_template->activity->current_comment = $activities_template->activities[0];
// Because the whole tree has not been loaded, we manually
// determine depth.
$depth = 1;
$parent_id = (int) $activities_template->activities[0]->secondary_item_id;
while ( $parent_id !== (int) $activities_template->activities[0]->item_id ) {
$depth++;
$p_obj = new BP_Activity_Activity( $parent_id );
$parent_id = (int) $p_obj->secondary_item_id;
}
$activities_template->activity->current_comment->depth = $depth;
}
// Get activity comment template part.
bp_get_template_part( 'activity/comment' );
unset( $activities_template );
exit;
}
Changelog Changelog
| Version | Description |
|---|---|
| 1.2.0 | Introduced. |