Changeset 1356 for trunk/bp-friends/bp-friends-classes.php
- Timestamp:
- 04/20/2009 10:56:00 AM (17 years ago)
- File:
-
- 1 edited
-
trunk/bp-friends/bp-friends-classes.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-friends/bp-friends-classes.php
r1351 r1356 142 142 global $wpdb, $bp; 143 143 144 // TODO: Optimize this function. 145 144 146 if ( !$user_id ) 145 147 $user_id = $bp->loggedin_user->id; 146 148 147 149 like_escape($filter); 148 $usermeta_table = $wpdb->prefix . 'usermeta';149 150 150 151 if ( $limit && $page ) … … 156 157 // Get all the user ids for the current user's friends. 157 158 $fids = implode( ',', $friend_ids ); 159 160 if ( empty($fids) ) 161 return false; 158 162 159 163 // filter the user_ids based on the search criteria. 160 164 if ( function_exists('xprofile_install') ) { 161 $sql = $wpdb->prepare( "SELECT DISTINCT user_id FROM {$bp->profile->table_name_data} WHERE user_id IN ($fids) AND value LIKE '$filter%%' " );162 } else {163 $sql = $wpdb->prepare( "SELECT DISTINCT user_id FROM $usermeta_table WHERE user_id IN ($fids) AND meta_key = 'nickname' AND meta_value LIKE '$filter%%'" );164 }165 166 $filtered_friends = $wpdb->get_results( $sql, ARRAY_A );167 168 if ( !$filtered_friends )169 return false;170 171 // Get the total number of friendships172 $total_friends = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$bp->friends->table_name} WHERE (friend_user_id IN ($filtered_fids) AND initiator_user_id = %d) OR (initiator_user_id IN ($filtered_fids) AND friend_user_id = %d)", $user_id, $user_id ) );173 174 return array( 'friends' => $filtered_friend s, 'total' => $total_friends );175 } 176 165 $sql = $wpdb->prepare( "SELECT DISTINCT user_id FROM {$bp->profile->table_name_data} WHERE user_id IN ($fids) AND value LIKE '$filter%%' {$pag_sql}" ); 166 $total_sql = $wpdb->prepare( "SELECT DISTINCT count(user_id) FROM {$bp->profile->table_name_data} WHERE user_id IN ($fids) AND value LIKE '$filter%%'" ); 167 } else { 168 $sql = $wpdb->prepare( "SELECT DISTINCT user_id FROM " . CUSTOM_USER_META_TABLE . " WHERE user_id IN ($fids) AND meta_key = 'nickname' AND meta_value LIKE '$filter%%' {$pag_sql}" ); 169 $total_sql = $wpdb->prepare( "SELECT DISTINCT count(user_id) FROM " . CUSTOM_USER_META_TABLE . " WHERE user_id IN ($fids) AND meta_key = 'nickname' AND meta_value LIKE '$filter%%'" ); 170 } 171 172 $filtered_friend_ids = $wpdb->get_results($sql); 173 $total_friend_ids = $wpdb->get_var($sql); 174 175 if ( !$filtered_friend_ids ) 176 return false; 177 178 return array( 'friends' => $filtered_friend_ids, 'total' => (int)$total_friend_ids ); 179 } 180 177 181 function check_is_friend( $loggedin_userid, $possible_friend_userid ) { 178 182 global $wpdb, $bp;
Note: See TracChangeset
for help on using the changeset viewer.