Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
02/02/2010 12:40:49 PM (16 years ago)
Author:
apeatling
Message:

Removing database hits inside BP loops to improve overall performance.

File:
1 edited

Legend:

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

    r2457 r2533  
    340340                }
    341341
     342                /* Fetch whether or not the user is a friend */
     343                if ( function_exists( 'friends_install' ) ) {
     344                        $friend_status = $wpdb->get_results( $wpdb->prepare( "SELECT initiator_user_id, friend_user_id, is_confirmed FROM {$bp->friends->table_name} WHERE (initiator_user_id = %d AND friend_user_id IN ( {$user_ids} ) ) OR (initiator_user_id IN ( {$user_ids} ) AND friend_user_id = %d )", $bp->loggedin_user->id, $bp->loggedin_user->id ) );
     345                        for ( $i = 0; $i < count( $paged_users ); $i++ ) {
     346                                foreach ( $friend_status as $status ) {
     347                                        if ( $status->initiator_user_id == $paged_users[$i]->id || $status->friend_user_id == $paged_users[$i]->id )
     348                                                $paged_users[$i]->is_friend = $status->is_confirmed;
     349                                }
     350                        }
     351                }
     352
     353                if ( 'active' != $type ) {
     354                        $user_activity = $wpdb->get_results( "SELECT user_id as id, meta_value as last_activity FROM " . CUSTOM_USER_META_TABLE . " WHERE meta_key = 'last_activity' AND user_id IN ( {$user_ids} )" );
     355                        for ( $i = 0; $i < count( $paged_users ); $i++ ) {
     356                                foreach ( $user_activity as $activity ) {
     357                                        if ( $activity->id == $paged_users[$i]->id )
     358                                                $paged_users[$i]->last_activity = $activity->last_activity;
     359                                }
     360                        }
     361                }
     362
    342363                /* Fetch the user's last_activity */
    343364                if ( 'active' != $type ) {
Note: See TracChangeset for help on using the changeset viewer.