Skip to:
Content

BuddyPress.org

Changeset 5431


Ignore:
Timestamp:
12/01/2011 08:45:38 PM (14 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.