Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
04/15/2010 11:59:40 AM (16 years ago)
Author:
apeatling
Message:

Merging 1.2 branch with trunk.

File:
1 edited

Legend:

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

    r2920 r2925  
    107107        /* Static Functions */
    108108
    109         function get_users( $type, $limit = null, $page = 1, $user_id = false, $search_terms = false, $populate_extras = true ) {
     109        function get_users( $type, $limit = null, $page = 1, $user_id = false, $include = false, $search_terms = false, $populate_extras = true ) {
    110110                global $wpdb, $bp;
    111111
     
    137137
    138138                if ( 'online' == $type )
    139                         $sql['where_online'] = "AND DATE_ADD( um.meta_value, INTERVAL 5 MINUTE ) >= NOW()";
     139                        $sql['where_online'] = "AND DATE_ADD( um.meta_value, INTERVAL 5 MINUTE ) >= UTC_TIMESTAMP()";
    140140
    141141                if ( 'alphabetical' == $type )
    142142                        $sql['where_alpha'] = "AND pd.field_id = 1";
    143143
    144                 if ( $user_id && bp_is_active( 'friends' ) ) {
     144                if ( $include ) {
     145                        if ( is_array( $include ) )
     146                                $uids = $wpdb->escape( implode( ',', (array)$include ) );
     147                        else
     148                                $uids = $wpdb->escape( $include );
     149
     150                        if ( !empty( $uids ) )
     151                                $sql['where_users'] = "AND u.ID IN ({$uids})";
     152                }
     153
     154                else if ( $user_id && function_exists( 'friends_install' ) ) {
    145155                        $friend_ids = friends_get_friend_user_ids( $user_id );
    146156                        $friend_ids = $wpdb->escape( implode( ',', (array)$friend_ids ) );
     
    254264        }
    255265
    256         function get_specific_users( $user_ids, $limit = null, $page = 1, $populate_extras = true ) {
    257                 global $wpdb, $bp;
    258 
    259                 if ( $limit && $page )
    260                         $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
    261 
    262                 $user_sql = " AND user_id IN ( " . $wpdb->escape( $user_ids ) . " ) ";
    263                 $status_sql = bp_core_get_status_sql();
    264 
    265                 $total_users_sql = apply_filters( 'bp_core_get_specific_users_count_sql', $wpdb->prepare( "SELECT COUNT(DISTINCT ID) FROM " . CUSTOM_USER_TABLE . " WHERE {$status_sql} AND ID IN ( " . $wpdb->escape( $user_ids ) . " ) " ), $wpdb->escape( $user_ids ) );
    266                 $paged_users_sql = apply_filters( 'bp_core_get_specific_users_count_sql', $wpdb->prepare( "SELECT DISTINCT ID as id, user_registered, user_nicename, user_login, user_email FROM " . CUSTOM_USER_TABLE . " WHERE {$status_sql} AND ID IN ( " . $wpdb->escape( $user_ids ) . " ) {$pag_sql}" ), $wpdb->escape( $user_ids ) );
    267 
    268                 $total_users = $wpdb->get_var( $total_users_sql );
    269                 $paged_users = $wpdb->get_results( $paged_users_sql );
    270 
    271                 /***
    272                  * Lets fetch some other useful data in a separate queries, this will be faster than querying the data for every user in a list.
    273                  * We can't add these to the main query above since only users who have this information will be returned (since the much of the data is in usermeta and won't support any type of directional join)
    274                  */
    275 
    276                 /* Add additional data to the returned results */
    277                 if ( $populate_extras )
    278                         $paged_users = BP_Core_User::get_user_extras( &$paged_users, &$user_ids );
    279 
    280 
    281                 return array( 'users' => $paged_users, 'total' => $total_users );
    282         }
    283 
    284266        function search_users( $search_terms, $limit = null, $page = 1, $populate_extras = true ) {
    285267                global $wpdb, $bp;
     
    321303                /* Fetch the user's full name */
    322304                if ( bp_is_active( 'xprofile' ) && 'alphabetical' != $type ) {
     305                        /* Ensure xprofile globals are set */
     306                        if ( !defined( 'BP_XPROFILE_FULLNAME_FIELD_NAME' ) )
     307                                xprofile_setup_globals();
     308
    323309                        $names = $wpdb->get_results( $wpdb->prepare( "SELECT pd.user_id as id, pd.value as fullname FROM {$bp->profile->table_name_fields} pf, {$bp->profile->table_name_data} pd WHERE pf.id = pd.field_id AND pf.name = %s AND pd.user_id IN ( {$user_ids} )", BP_XPROFILE_FULLNAME_FIELD_NAME ) );
    324310                        for ( $i = 0; $i < count( $paged_users ); $i++ ) {
Note: See TracChangeset for help on using the changeset viewer.