Skip to:
Content

BuddyPress.org

Ticket #6431: 6431.2.diff

File 6431.2.diff, 2.7 KB (added by Mamaduka, 3 years ago)
  • src/bp-groups/classes/class-bp-groups-group.php

    diff --git src/bp-groups/classes/class-bp-groups-group.php src/bp-groups/classes/class-bp-groups-group.php
    index bde4f1e..6dd1714 100644
    class BP_Groups_Group { 
    980980
    981981                // Populate some extra information instead of querying each time in the loop.
    982982                if ( !empty( $r['populate_extras'] ) ) {
    983                         $paged_groups = BP_Groups_Group::get_group_extras( $paged_groups, $group_ids, $r['type'] );
     983                        $paged_groups = BP_Groups_Group::get_group_extras( $paged_groups, $group_ids, $r['type'], $r['user_id'] );
    984984                }
    985985
    986986                // Grab all groupmeta.
    class BP_Groups_Group { 
    11551155                        foreach ( (array) $paged_groups as $group ) {
    11561156                                $group_ids[] = $group->id;
    11571157                        }
    1158                         $paged_groups = BP_Groups_Group::get_group_extras( $paged_groups, $group_ids, 'newest' );
     1158                        $paged_groups = BP_Groups_Group::get_group_extras( $paged_groups, $group_ids, 'newest', $user_id );
    11591159                }
    11601160
    11611161                return array( 'groups' => $paged_groups, 'total' => $total_groups );
    class BP_Groups_Group { 
    12611261                        foreach ( (array) $paged_groups as $group ) {
    12621262                                $group_ids[] = $group->id;
    12631263                        }
    1264                         $paged_groups = BP_Groups_Group::get_group_extras( $paged_groups, $group_ids, 'newest' );
     1264                        $paged_groups = BP_Groups_Group::get_group_extras( $paged_groups, $group_ids, 'newest', $user_id );
    12651265                }
    12661266
    12671267                return array( 'groups' => $paged_groups, 'total' => $total_groups );
    class BP_Groups_Group { 
    13971397                        foreach ( (array) $paged_groups as $group ) {
    13981398                                $group_ids[] = $group->id;
    13991399                        }
    1400                         $paged_groups = BP_Groups_Group::get_group_extras( $paged_groups, $group_ids, 'newest' );
     1400                        $paged_groups = BP_Groups_Group::get_group_extras( $paged_groups, $group_ids, 'newest', $user_id );
    14011401                }
    14021402
    14031403                return array( 'groups' => $paged_groups, 'total' => $total_groups );
    class BP_Groups_Group { 
    14191419         * @param string|array $group_ids    Array or comma-separated list of IDs matching
    14201420         *                                   $paged_groups.
    14211421         * @param string|bool  $type         Not used.
     1422         * @param int          $user_id      Optional. If provided, results will be limited to groups
     1423         *                                   of which the specified user is a member. Default: false.
    14221424         * @return array $paged_groups
    14231425         */
    1424         public static function get_group_extras( &$paged_groups, &$group_ids, $type = false ) {
    1425                 $user_id = bp_loggedin_user_id();
     1426        public static function get_group_extras( &$paged_groups, &$group_ids, $type = false, $user_id = false ) {
     1427                $user_id = empty( $user_id ) ? bp_loggedin_user_id() : $user_id;
    14261428
    14271429                foreach ( $paged_groups as &$group ) {
    14281430                        $group->is_member  = groups_is_user_member( $user_id, $group->id ) ? '1' : '0';