BP_Activity_Activity::rebuild_activity_comment_tree( int $parent_id, int $left = 1 )
Rebuild nested comment tree under an activity or activity comment.
Description
Parameters
- $parent_id
-
(Required) ID of an activity or activity comment.
- $left
-
(Optional) Node boundary start for activity or activity comment.
Default value: 1
Return
(int) Right Node boundary of activity or activity comment.
Source
File: bp-activity/classes/class-bp-activity-activity.php
public static function rebuild_activity_comment_tree( $parent_id, $left = 1 ) {
global $wpdb;
$bp = buddypress();
// The right value of this node is the left value + 1.
$right = intval( $left + 1 );
// Get all descendants of this node.
$comments = BP_Activity_Activity::get_child_comments( $parent_id );
$descendants = wp_list_pluck( $comments, 'id' );
// Loop the descendants and recalculate the left and right values.
foreach ( (array) $descendants as $descendant_id ) {
$right = BP_Activity_Activity::rebuild_activity_comment_tree( $descendant_id, $right );
}
// We've got the left value, and now that we've processed the children
// of this node we also know the right value.
if ( 1 === $left ) {
$wpdb->query( $wpdb->prepare( "UPDATE {$bp->activity->table_name} SET mptt_left = %d, mptt_right = %d WHERE id = %d", $left, $right, $parent_id ) );
} else {
$wpdb->query( $wpdb->prepare( "UPDATE {$bp->activity->table_name} SET mptt_left = %d, mptt_right = %d WHERE type = 'activity_comment' AND id = %d", $left, $right, $parent_id ) );
}
// Return the right value of this node + 1.
return intval( $right + 1 );
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.2.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.