bp_legacy_theme_post_update()
Processes Activity updates 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_post_update() {
$bp = buddypress();
if ( ! bp_is_post_request() ) {
return;
}
// Check the nonce.
check_admin_referer( 'post_update', '_wpnonce_post_update' );
if ( ! is_user_logged_in() )
exit( '-1' );
if ( empty( $_POST['content'] ) )
exit( '-1<div id="message" class="error bp-ajax-message"><p>' . __( 'Please enter some content to post.', 'buddypress' ) . '</p></div>' );
$activity_id = 0;
$item_id = 0;
$object = '';
// Try to get the item id from posted variables.
if ( ! empty( $_POST['item_id'] ) ) {
$item_id = (int) $_POST['item_id'];
}
// Try to get the object from posted variables.
if ( ! empty( $_POST['object'] ) ) {
$object = sanitize_key( $_POST['object'] );
// If the object is not set and we're in a group, set the item id and the object
} elseif ( bp_is_group() ) {
$item_id = bp_get_current_group_id();
$object = 'groups';
}
if ( ! $object && bp_is_active( 'activity' ) ) {
$activity_id = bp_activity_post_update( array( 'content' => $_POST['content'], 'error_type' => 'wp_error' ) );
} elseif ( 'groups' === $object ) {
if ( $item_id && bp_is_active( 'groups' ) )
$activity_id = groups_post_update( array( 'content' => $_POST['content'], 'group_id' => $item_id, 'error_type' => 'wp_error' ) );
} else {
/** This filter is documented in bp-activity/actions/post.php */
$activity_id = apply_filters( 'bp_activity_custom_update', false, $object, $item_id, $_POST['content'] );
}
if ( false === $activity_id ) {
exit( '-1<div id="message" class="error bp-ajax-message"><p>' . __( 'There was a problem posting your update. Please try again.', 'buddypress' ) . '</p></div>' );
} elseif ( is_wp_error( $activity_id ) && $activity_id->get_error_code() ) {
exit( '-1<div id="message" class="error bp-ajax-message"><p>' . $activity_id->get_error_message() . '</p></div>' );
}
$last_recorded = ! empty( $_POST['since'] ) ? date( 'Y-m-d H:i:s', intval( $_POST['since'] ) ) : 0;
if ( $last_recorded ) {
$activity_args = array( 'since' => $last_recorded );
$bp->activity->last_recorded = $last_recorded;
add_filter( 'bp_get_activity_css_class', 'bp_activity_newest_class', 10, 1 );
} else {
$activity_args = array( 'include' => $activity_id );
}
if ( bp_has_activities ( $activity_args ) ) {
while ( bp_activities() ) {
bp_the_activity();
bp_get_template_part( 'activity/entry' );
}
}
if ( ! empty( $last_recorded ) ) {
remove_filter( 'bp_get_activity_css_class', 'bp_activity_newest_class', 10 );
}
exit;
}
Changelog Changelog
| Version | Description |
|---|---|
| 1.2.0 | Introduced. |