Skip to:
Content

BuddyPress.org

Changeset 5431


Ignore:
Timestamp:
12/01/2011 08:45:38 PM (15 years ago)
Author:
boonebgorges
Message:

Adds WP cache support to groups_get_group() and switches internal instantiations of BP_Groups_Group out for calls to groups_get_group() where possible. Fixes #3770

Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-core/bp-core-avatars.php

    r5301 r5431  
    151151                $item_name = bp_core_get_user_displayname( $item_id );
    152152        elseif ( 'group' == $object )
    153                 $item_name = bp_get_group_name( new BP_Groups_Group( $item_id ) );
     153                $item_name = bp_get_group_name( groups_get_group( array( 'group_id' => $item_id ) ) );
    154154        elseif ( 'blog' == $object )
    155155                $item_name = get_blog_option( $item_id, 'blogname' );
  • trunk/bp-groups/bp-groups-actions.php

    r5402 r5431  
    5555        if ( isset( $_COOKIE['bp_new_group_id'] ) ) {
    5656                $bp->groups->new_group_id = $_COOKIE['bp_new_group_id'];
    57                 $bp->groups->current_group = new BP_Groups_Group( $bp->groups->new_group_id );
     57                $bp->groups->current_group = groups_get_group( array( 'group_id' => $bp->groups->new_group_id ) );
    5858        }
    5959
  • trunk/bp-groups/bp-groups-activity.php

    r5417 r5431  
    8484                        $requesting_user_id = $item_id;
    8585
    86                         $group = new BP_Groups_Group( $group_id );
     86                        $group = groups_get_group( array( 'group_id' => $group_id ) );
    8787                        $group_link = bp_get_group_permalink( $group );
    8888
     
    124124                        $group_id = $item_id;
    125125
    126                         $group = new BP_Groups_Group( $group_id );
     126                        $group = groups_get_group( array( 'group_id' => $group_id ) );
    127127                        $group_link = bp_get_group_permalink( $group );
    128128
     
    160160                        $group_id = $item_id;
    161161
    162                         $group = new BP_Groups_Group( $group_id );
     162                        $group = groups_get_group( array( 'group_id' => $group_id ) );
    163163                        $group_link = bp_get_group_permalink( $group );
    164164
     
    196196                        $group_id = $item_id;
    197197
    198                         $group = new BP_Groups_Group( $group_id );
     198                        $group = groups_get_group( array( 'group_id' => $group_id ) );
    199199                        $group_link = bp_get_group_permalink( $group );
    200200
     
    232232                        $group_id = $item_id;
    233233
    234                         $group = new BP_Groups_Group( $group_id );
     234                        $group = groups_get_group( array( 'group_id' => $group_id ) );
    235235                        $group_link = bp_get_group_permalink( $group );
    236236
     
    267267                case 'group_invite':
    268268                        $group_id = $item_id;
    269                         $group = new BP_Groups_Group( $group_id );
     269                        $group = groups_get_group( array( 'group_id' => $group_id ) );
    270270                        $group_link = bp_get_group_permalink( $group );
    271271
  • trunk/bp-groups/bp-groups-classes.php

    r5417 r5431  
    120120
    121121                do_action_ref_array( 'groups_group_after_save', array( &$this ) );
     122               
     123                wp_cache_delete( 'bp_groups_group_' . $this->id, 'bp' );
    122124
    123125                return true;
     
    141143
    142144                do_action_ref_array( 'bp_groups_delete_group', array( &$this ) );
     145
     146                wp_cache_delete( 'bp_groups_group_' . $this->id, 'bp' );
    143147
    144148                // Finally remove the group entry from the DB
  • trunk/bp-groups/bp-groups-forums.php

    r5302 r5431  
    3434function groups_update_group_forum( $group_id ) {
    3535
    36         $group = new BP_Groups_Group( $group_id );
     36        $group = groups_get_group( array( 'group_id' => $group_id ) );
    3737
    3838        /**
  • trunk/bp-groups/bp-groups-functions.php

    r5402 r5431  
    2424}
    2525
     26/**
     27 * Pulls up the database object corresponding to a group
     28 *
     29 * When calling up a group object, you should always use this function instead
     30 * of instantiating BP_Groups_Group directly, so that you will inherit cache
     31 * support and pass through the groups_get_group filter.
     32 *
     33 * @param $args The load_users parameter is deprecated and does nothing.
     34 * @return obj $group The group object
     35 */
    2636function groups_get_group( $args = '' ) {
    2737        $defaults = array(
     
    3242        $args = wp_parse_args( $args, $defaults );
    3343        extract( $args, EXTR_SKIP );
    34 
    35         return apply_filters( 'groups_get_group', new BP_Groups_Group( $group_id, true, $load_users ) );
     44       
     45        $cache_key = 'bp_groups_group_' . $group_id . ( $load_users ? '_load_users' : '_noload_users' );
     46       
     47        if ( !$group = wp_cache_get( $cache_key, 'bp' ) ) {
     48                $group = new BP_Groups_Group( $group_id, true, $load_users );
     49                wp_cache_set( $cache_key, $group, 'bp' );
     50        }
     51
     52        return apply_filters( 'groups_get_group', $group );
    3653}
    3754
     
    5673
    5774        if ( isset( $group_id ) && $group_id )
    58                 $group = new BP_Groups_Group( $group_id );
     75                $group = groups_get_group( array( 'group_id' => $group_id ) );
    5976        else
    6077                $group = new BP_Groups_Group;
     
    118135                return false;
    119136
    120         $group              = new BP_Groups_Group( $group_id );
     137        $group              = groups_get_group( array( 'group_id' => $group_id ) );
    121138        $group->name        = $group_name;
    122139        $group->description = $group_desc;
     
    137154        global $bp;
    138155
    139         $group = new BP_Groups_Group( $group_id );
     156        $group = groups_get_group( array( 'group_id' => $group_id ) );
    140157        $group->enable_forum = $enable_forum;
    141158
     
    185202
    186203        // Get the group object
    187         $group = new BP_Groups_Group( $group_id );
     204        $group = groups_get_group( array( 'group_id' => $group_id ) );
    188205        if ( !$group->delete() )
    189206                return false;
     
    238255
    239256function groups_get_slug( $group_id ) {
    240         $group = new BP_Groups_Group( $group_id );
     257        $group = groups_get_group( array( 'group_id' => $group_id ) );
    241258        return $group->slug;
    242259}
     
    316333
    317334        if ( !isset( $bp->groups->current_group ) || !$bp->groups->current_group || $group_id != $bp->groups->current_group->id )
    318                 $group = new BP_Groups_Group( $group_id );
     335                $group = groups_get_group( array( 'group_id' => $group_id ) );
    319336        else
    320337                $group = $bp->groups->current_group;
     
    504521                return false;
    505522
    506         $bp->groups->current_group = new BP_Groups_Group( $group_id );
     523        $bp->groups->current_group = groups_get_group( array( 'group_id' => $group_id ) );
    507524
    508525        // Be sure the user is a member of the group before posting.
     
    638655        // Send friend invites.
    639656        $invited_users = groups_get_invites_for_group( $user_id, $group_id );
    640         $group = new BP_Groups_Group( $group_id );
     657        $group = groups_get_group( array( 'group_id' => $group_id ) );
    641658
    642659        for ( $i = 0, $count = count( $invited_users ); $i < $count; ++$i ) {
     
    804821
    805822        // Record this in activity streams
    806         $group = new BP_Groups_Group( $membership->group_id );
     823        $group = groups_get_group( array( 'group_id' => $membership->group_id ) );
    807824
    808825        groups_record_activity( array(
  • trunk/bp-groups/bp-groups-notifications.php

    r5417 r5431  
    66        global $bp;
    77
    8         $group    = new BP_Groups_Group( $group_id );
     8        $group    = groups_get_group( array( 'group_id' => $group_id ) );
    99        $sitename = wp_specialchars_decode( get_blog_option( bp_get_root_blog_id(), 'blogname' ), ENT_QUOTES );
    1010        $subject  = '[' . $sitename . '] ' . __( 'Group Details Updated', 'buddypress' );
     
    5555
    5656        $requesting_user_name = bp_core_get_user_displayname( $requesting_user_id );
    57         $group = new BP_Groups_Group( $group_id );
     57        $group = groups_get_group( array( 'group_id' => $group_id ) );
    5858
    5959        $ud = bp_core_get_core_userdata($admin_id);
     
    107107                return false;
    108108
    109         $group = new BP_Groups_Group( $group_id );
     109        $group = groups_get_group( array( 'group_id' => $group_id ) );
    110110
    111111        $ud = bp_core_get_core_userdata($requesting_user_id);
     
    169169                return false;
    170170
    171         $group         = new BP_Groups_Group( $group_id );
     171        $group         = groups_get_group( array( 'group_id' => $group_id ) );
    172172        $ud            = bp_core_get_core_userdata($user_id);
    173173        $group_link    = bp_get_group_permalink( $group );
  • trunk/bp-groups/bp-groups-screens.php

    r5417 r5431  
    5252
    5353                        // Record this in activity streams
    54                         $group = new BP_Groups_Group( $group_id );
     54                        $group = groups_get_group( array( 'group_id' => $group_id ) );
    5555
    5656                        groups_record_activity( array(
  • trunk/bp-groups/bp-groups-template.php

    r5417 r5431  
    217217
    218218                if ( $this->single_group )
    219                         $this->group = new BP_Groups_Group( $this->group->group_id );
     219                        $this->group = groups_get_group( array( 'group_id' => $this->group->group_id ) );
    220220
    221221                if ( 0 == $this->current_group ) // loop has just started
  • trunk/bp-themes/bp-default/_inc/ajax.php

    r5329 r5431  
    516516                return false;
    517517
    518         if ( !$group = new BP_Groups_Group( $_POST['gid'], false, false ) )
     518        if ( !$group = groups_get_group( array( 'group_id' => $_POST['gid'] ) ) )
    519519                return false;
    520520
Note: See TracChangeset for help on using the changeset viewer.