Changeset 12395 for trunk/src/bp-groups/bp-groups-activity.php
- Timestamp:
- 05/11/2019 01:33:14 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-groups/bp-groups-activity.php
r12393 r12395 55 55 ); 56 56 57 bp_activity_set_action( 58 $bp->groups->id, 59 'activity_update', 60 __( 'Posted a status update in a Group', 'buddypress' ), 61 'bp_groups_format_activity_action_group_activity_update', 62 __( 'Group Activity Updates', 'buddypress' ), 63 array( 'activity', 'group', 'member', 'member_groups' ) 64 ); 65 57 66 /** 58 67 * Fires at end of registration of the default activity actions for the Groups component. … … 63 72 } 64 73 add_action( 'bp_register_activity_actions', 'groups_register_activity_actions' ); 74 75 /** 76 * Get the group object the activity belongs to. 77 * 78 * @since 5.0.0 79 * 80 * @param integer $group_id The group ID the activity is linked to. 81 * @return BP_Groups_Group The group object the activity belongs to. 82 */ 83 function bp_groups_get_activity_group( $group_id = 0 ) { 84 // If displaying a specific group, check the activity belongs to it. 85 if ( bp_is_group() && bp_get_current_group_id() === (int) $group_id ) { 86 $group = groups_get_current_group(); 87 88 // Otherwise get the group the activity belongs to. 89 } else { 90 $group = groups_get_group( $group_id ); 91 } 92 93 return $group; 94 } 65 95 66 96 /** … … 76 106 $user_link = bp_core_get_userlink( $activity->user_id ); 77 107 78 $group = groups_get_group( $activity->item_id );108 $group = bp_groups_get_activity_group( $activity->item_id ); 79 109 $group_link = '<a href="' . esc_url( bp_get_group_permalink( $group ) ) . '">' . esc_html( $group->name ) . '</a>'; 80 110 … … 104 134 $user_link = bp_core_get_userlink( $activity->user_id ); 105 135 106 $group = groups_get_group( $activity->item_id );136 $group = bp_groups_get_activity_group( $activity->item_id ); 107 137 $group_link = '<a href="' . esc_url( bp_get_group_permalink( $group ) ) . '">' . esc_html( $group->name ) . '</a>'; 108 138 … … 143 173 $user_link = bp_core_get_userlink( $activity->user_id ); 144 174 145 $group = groups_get_group( $activity->item_id );175 $group = bp_groups_get_activity_group( $activity->item_id ); 146 176 $group_link = '<a href="' . esc_url( bp_get_group_permalink( $group ) ) . '">' . esc_html( $group->name ) . '</a>'; 147 177 … … 182 212 */ 183 213 return apply_filters( 'bp_groups_format_activity_action_joined_group', $action, $activity ); 214 } 215 216 /** 217 * Format the action for activity updates posted in a Group. 218 * 219 * @since 5.0.0 220 * 221 * @param string $action Static activity action. 222 * @param object $activity Activity data object. 223 * @return string The formatted action for activity updates posted in a Group. 224 */ 225 function bp_groups_format_activity_action_group_activity_update( $action, $activity ) { 226 $user_link = bp_core_get_userlink( $activity->user_id ); 227 $group = bp_groups_get_activity_group( $activity->item_id ); 228 229 $group_link = '<a href="' . esc_url( bp_get_group_permalink( $group ) ) . '">' . esc_html( $group->name ) . '</a>'; 230 231 // Set the Activity update posted in a Group action. 232 $action = sprintf( esc_html__( '%1$s posted an update in the group %2$s', 'buddypress' ), $user_link, $group_link ); 233 234 /** This filter is documented in wp-includes/deprecated.php */ 235 $action = apply_filters_deprecated( 'groups_activity_new_update_action', array( $action ), '5.0.0', 'bp_groups_format_activity_action_group_activity_update' ); 236 237 /** 238 * Filters the Group's activity update action. 239 * 240 * @since 5.0.0 241 * 242 * @param string $action The Group's activity update action. 243 * @param object $activity Activity data object. 244 */ 245 return apply_filters( 'bp_groups_format_activity_action_group_activity_update', $action, $activity ); 184 246 } 185 247 … … 441 503 // Set the default for hide_sitewide by checking the status of the group. 442 504 $hide_sitewide = false; 443 if ( !empty( $args['item_id'] ) ) { 444 if ( bp_get_current_group_id() == $args['item_id'] ) { 445 $group = groups_get_current_group(); 446 } else { 447 $group = groups_get_group( $args['item_id'] ); 448 } 505 if ( ! empty( $args['item_id'] ) ) { 506 $group = bp_groups_get_activity_group( $args['item_id'] ); 449 507 450 508 if ( isset( $group->status ) && 'public' != $group->status ) { … … 472 530 473 531 /** 532 * Post an Activity status update affiliated with a group. 533 * 534 * @since 1.2.0 535 * @since 2.6.0 Added 'error_type' parameter to $args. 536 * 537 * @param array|string $args { 538 * Array of arguments. 539 * @type string $content The content of the update. 540 * @type int $user_id Optional. ID of the user posting the update. Default: 541 * ID of the logged-in user. 542 * @type int $group_id Optional. ID of the group to be affiliated with the 543 * update. Default: ID of the current group. 544 * } 545 * @return WP_Error|bool|int Returns the ID of the new activity item on success, or false on failure. 546 */ 547 function groups_post_update( $args = '' ) { 548 $bp = buddypress(); 549 550 $r = bp_parse_args( $args, array( 551 'content' => false, 552 'user_id' => bp_loggedin_user_id(), 553 'group_id' => 0, 554 'error_type' => 'bool' 555 ), 'groups_post_update' ); 556 557 $group_id = (int) $r['group_id']; 558 if ( ! $group_id && ! empty( $bp->groups->current_group->id ) ) { 559 $group_id = (int) $bp->groups->current_group->id; 560 } 561 562 $content = $r['content']; 563 $user_id = (int) $r['user_id']; 564 if ( ! $content || ! strlen( trim( $content ) ) || ! $user_id || ! $group_id ) { 565 return false; 566 } 567 568 $bp->groups->current_group = groups_get_group( $group_id ); 569 570 // Be sure the user is a member of the group before posting. 571 if ( ! bp_current_user_can( 'bp_moderate' ) && ! groups_is_user_member( $user_id, $group_id ) ) { 572 return false; 573 } 574 575 /** 576 * Filters the content for the new group activity update. 577 * 578 * @since 1.2.0 579 * 580 * @param string $content The content of the update. 581 */ 582 $content_filtered = apply_filters( 'groups_activity_new_update_content', $content ); 583 584 $activity_id = groups_record_activity( array( 585 'user_id' => $user_id, 586 'content' => $content_filtered, 587 'type' => 'activity_update', 588 'item_id' => $group_id, 589 'error_type' => $r['error_type'], 590 ) ); 591 592 groups_update_groupmeta( $group_id, 'last_activity', bp_core_current_time() ); 593 594 /** 595 * Fires after posting of an Activity status update affiliated with a group. 596 * 597 * @since 1.2.0 598 * 599 * @param string $content The content of the update. 600 * @param int $user_id ID of the user posting the update. 601 * @param int $group_id ID of the group being posted to. 602 * @param bool $activity_id Whether or not the activity recording succeeded. 603 */ 604 do_action( 'bp_groups_posted_update', $content, $user_id, $group_id, $activity_id ); 605 606 return $activity_id; 607 } 608 609 /** 474 610 * Function used to determine if a user can comment on a group activity item. 475 611 *
Note: See TracChangeset
for help on using the changeset viewer.