Skip to:
Content

BuddyPress.org

Changeset 13104


Ignore:
Timestamp:
09/09/2021 02:12:32 PM (5 years ago)
Author:
espellcaste
Message:

Update group-related functions so that they use the new bp_get_group helper.

groups_get_slug, groups_leave_group, groups_join_group, and groups_update_last_activity were updated
to get a group using the recently added function bp_get_group, allowing them to be fetched with more than just IDs.

See #7614

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-groups/bp-groups-functions.php

    r13103 r13104  
    538538
    539539/**
    540  * Get a group slug by its ID.
    541  *
    542  * @since 1.0.0
    543  *
    544  * @param int $group_id The numeric ID of the group.
    545  * @return string The group's slug.
    546  */
    547 function groups_get_slug( $group_id ) {
    548         $group = groups_get_group( $group_id );
    549         return !empty( $group->slug ) ? $group->slug : '';
     540 * Get slug from a group.
     541 *
     542 * @since 1.0.0
     543 * @since 10.0.0 Updated to use `bp_get_group`.
     544 *
     545 * @param int|string|BP_Groups_Group $group The Group ID, the Group Slug or the Group object.
     546 * @return bool|string The group's slug. False if group doesn't exist.
     547 */
     548function groups_get_slug( $group ) {
     549
     550        $group = bp_get_group( $group );
     551
     552        if ( empty( $group->id ) ) {
     553                return false;
     554        }
     555
     556        return ! empty( $group->slug ) ? $group->slug : '';
    550557}
    551558
     
    580587 *
    581588 * @since 1.0.0
    582  *
    583  * @param int $group_id ID of the group.
    584  * @param int $user_id  Optional. ID of the user. Defaults to the currently
    585  *                      logged-in user.
     589 * @since 10.0.0 Updated to use `bp_get_group`.
     590 *
     591 * @param int|string|BP_Groups_Group $group   The Group ID, the Group Slug or the Group object.
     592 * @param int                        $user_id Optional. ID of the user. Defaults to the currently
     593 *                                            logged-in user.
    586594 * @return bool True on success, false on failure.
    587595 */
    588 function groups_leave_group( $group_id, $user_id = 0 ) {
    589 
    590         if ( empty( $user_id ) )
     596function groups_leave_group( $group, $user_id = 0 ) {
     597
     598        $group = bp_get_group( $group );
     599
     600        if ( empty( $group->id ) ) {
     601                return false;
     602        }
     603
     604        if ( empty( $user_id ) ) {
    591605                $user_id = bp_loggedin_user_id();
     606        }
    592607
    593608        // Don't let single admins leave the group.
    594         if ( count( groups_get_group_admins( $group_id ) ) < 2 ) {
    595                 if ( groups_is_user_admin( $user_id, $group_id ) ) {
     609        if ( count( groups_get_group_admins( $group->id ) ) < 2 ) {
     610                if ( groups_is_user_admin( $user_id, $group->id ) ) {
    596611                        bp_core_add_message( __( 'As the only admin, you cannot leave the group.', 'buddypress' ), 'error' );
    597612                        return false;
     
    599614        }
    600615
    601         if ( ! BP_Groups_Member::delete( $user_id, $group_id ) ) {
     616        if ( ! BP_Groups_Member::delete( $user_id, $group->id ) ) {
    602617                return false;
    603618        }
     
    609624         *
    610625         * @since 1.0.0
    611          *
    612          * @param int $group_id ID of the group.
    613          * @param int $user_id  ID of the user leaving the group.
     626         * @since 10.0.0 Updated to add the `$group` parameter.
     627         *
     628         * @param int             $group_id ID of the group.
     629         * @param int             $user_id  ID of the user leaving the group.
     630         * @param BP_Groups_Group $group    The group object.
    614631         */
    615         do_action( 'groups_leave_group', $group_id, $user_id );
     632        do_action( 'groups_leave_group', $group->id, $user_id, $group );
    616633
    617634        return true;
     
    622639 *
    623640 * @since 1.0.0
    624  *
    625  * @param int $group_id ID of the group.
    626  * @param int $user_id  Optional. ID of the user. Defaults to the currently
    627  *                      logged-in user.
     641 * @since 10.0.0 Updated to use `bp_get_group`.
     642 *
     643 * @param int|string|BP_Groups_Group $group   The Group ID, the Group Slug or the Group object.
     644 * @param int                        $user_id Optional. ID of the user. Defaults to the currently
     645 *                                            logged-in user.
    628646 * @return bool True on success, false on failure.
    629647 */
    630 function groups_join_group( $group_id, $user_id = 0 ) {
    631 
    632         if ( empty( $user_id ) )
     648function groups_join_group( $group, $user_id = 0 ) {
     649
     650        $group = bp_get_group( $group );
     651
     652        if ( empty( $group->id ) ) {
     653                return false;
     654        }
     655
     656        $group_id = $group->id;
     657
     658        if ( empty( $user_id ) ) {
    633659                $user_id = bp_loggedin_user_id();
     660        }
    634661
    635662        // Check if the user has an outstanding invite. If so, delete it.
    636         if ( groups_check_user_has_invite( $user_id, $group_id ) )
     663        if ( groups_check_user_has_invite( $user_id, $group_id ) ) {
    637664                groups_delete_invite( $user_id, $group_id );
     665        }
    638666
    639667        // Check if the user has an outstanding request. If so, delete it.
    640         if ( groups_check_for_membership_request( $user_id, $group_id ) )
     668        if ( groups_check_for_membership_request( $user_id, $group_id ) ) {
    641669                groups_delete_membership_request( null, $user_id, $group_id );
     670        }
    642671
    643672        // User is already a member, just return true.
    644         if ( groups_is_user_member( $user_id, $group_id ) )
     673        if ( groups_is_user_member( $user_id, $group_id ) ) {
    645674                return true;
    646 
    647         $new_member                = new BP_Groups_Member;
     675        }
     676
     677        $new_member                = new BP_Groups_Member();
    648678        $new_member->group_id      = $group_id;
    649679        $new_member->user_id       = $user_id;
     
    654684        $new_member->is_confirmed  = 1;
    655685
    656         if ( !$new_member->save() )
     686        if ( ! $new_member->save() ) {
    657687                return false;
    658 
    659         $bp = buddypress();
    660 
    661         if ( !isset( $bp->groups->current_group ) || !$bp->groups->current_group || $group_id != $bp->groups->current_group->id )
    662                 $group = groups_get_group( $group_id );
    663         else
    664                 $group = $bp->groups->current_group;
     688        }
    665689
    666690        // Record this in activity streams.
    667691        if ( bp_is_active( 'activity' ) ) {
    668                 groups_record_activity( array(
    669                         'type'    => 'joined_group',
    670                         'item_id' => $group_id,
    671                         'user_id' => $user_id,
    672                 ) );
     692                groups_record_activity(
     693                        array(
     694                                'type'    => 'joined_group',
     695                                'item_id' => $group_id,
     696                                'user_id' => $user_id,
     697                        )
     698                );
    673699        }
    674700
     
    677703         *
    678704         * @since 1.0.0
    679          *
    680          * @param int $group_id ID of the group.
    681          * @param int $user_id  ID of the user joining the group.
     705         * @since 10.0.0 Added the `$group` parameter.
     706         *
     707         * @param int             $group_id ID of the group.
     708         * @param int             $user_id  ID of the user joining the group.
     709         * @param BP_Groups_Group $group    The group object.
    682710         */
    683         do_action( 'groups_join_group', $group_id, $user_id );
     711        do_action( 'groups_join_group', $group_id, $user_id, $group );
    684712
    685713        return true;
     
    690718 *
    691719 * @since 1.0.0
    692  *
    693  * @param int $group_id Optional. The ID of the group whose last_activity is
    694  *                      being updated. Default: the current group's ID.
    695  * @return false|null False on failure.
    696  */
    697 function groups_update_last_activity( $group_id = 0 ) {
    698 
    699         if ( empty( $group_id ) ) {
    700                 $group_id = buddypress()->groups->current_group->id;
    701         }
    702 
    703         if ( empty( $group_id ) ) {
     720 * @since 10.0.0 Updated to use `bp_get_group`.
     721 *
     722 * @param int|string|BP_Groups_Group $group The Group ID, the Group Slug or the Group object.
     723 *                                          Default: the current group's ID.
     724 * @return bool False on failure.
     725 */
     726function groups_update_last_activity( $group = 0 ) {
     727
     728        $group = bp_get_group( $group );
     729
     730        if ( empty( $group->id ) ) {
    704731                return false;
    705732        }
    706733
    707         groups_update_groupmeta( $group_id, 'last_activity', bp_core_current_time() );
     734        groups_update_groupmeta( $group->id, 'last_activity', bp_core_current_time() );
    708735}
    709736add_action( 'groups_join_group', 'groups_update_last_activity' );
Note: See TracChangeset for help on using the changeset viewer.