function get_user_extras( $paged_users, $user_ids, $type = false ) { global $bp, $wpdb; if ( empty( $user_ids ) ) return $paged_users; /* Fetch the user's full name */ if ( function_exists( 'xprofile_install' ) && 'alphabetical' != $type ) { /* Ensure xprofile globals are set */ if ( !defined( 'BP_XPROFILE_FULLNAME_FIELD_NAME' ) ) xprofile_setup_globals(); $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 ) ); for ( $i = 0; $i < count( $paged_users ); $i++ ) { foreach ( (array)$names as $name ) { if ( $name->id == $paged_users[$i]->id ) $paged_users[$i]->fullname = $name->fullname; } } } /* Fetch the user's total friend count */ if ( 'popular' != $type ) { $friend_count = $wpdb->get_results( "SELECT user_id as id, meta_value as total_friend_count FROM " . CUSTOM_USER_META_TABLE . " WHERE meta_key = 'total_friend_count' AND user_id IN ( {$user_ids} )" ); for ( $i = 0; $i < count( $paged_users ); $i++ ) { foreach ( (array)$friend_count as $count ) { if ( $count->id == $paged_users[$i]->id ) $paged_users[$i]->total_friend_count = (int)$count->total_friend_count; } } } /* Fetch whether or not the user is a friend */ if ( function_exists( 'friends_install' ) ) { $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 ) ); for ( $i = 0; $i < count( $paged_users ); $i++ ) { foreach ( (array)$friend_status as $status ) { if ( $status->initiator_user_id == $paged_users[$i]->id || $status->friend_user_id == $paged_users[$i]->id ) $paged_users[$i]->is_friend = $status->is_confirmed; } } } if ( 'active' != $type ) { $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} )" ); for ( $i = 0; $i < count( $paged_users ); $i++ ) { foreach ( (array)$user_activity as $activity ) { if ( $activity->id == $paged_users[$i]->id ) $paged_users[$i]->last_activity = $activity->last_activity; } } } /* Fetch the user's last_activity */ if ( 'active' != $type ) { $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} )" ); for ( $i = 0; $i < count( $paged_users ); $i++ ) { foreach ( (array)$user_activity as $activity ) { if ( $activity->id == $paged_users[$i]->id ) $paged_users[$i]->last_activity = $activity->last_activity; } } } /* Fetch the user's latest update */ $user_update = $wpdb->get_results( "SELECT user_id as id, meta_value as latest_update FROM " . CUSTOM_USER_META_TABLE . " WHERE meta_key = 'bp_latest_update' AND user_id IN ( {$user_ids} )" ); for ( $i = 0; $i < count( $paged_users ); $i++ ) { foreach ( (array)$user_update as $update ) { if ( $update->id == $paged_users[$i]->id ) $paged_users[$i]->latest_update = $update->latest_update; } } return $paged_users; }
function get_value_byfieldname( $fields, $user_id = null ) { global $bp, $wpdb; if ( !$fields ) return false; if ( !$user_id ) $user_id = $bp->displayed_user->id; if ( !$bp->profile ) xprofile_setup_globals(); $field_sql = ''; if ( is_array($fields) ) { for ( $i = 0; $i < count($fields); $i++ ) { if ( $i == 0 ) $field_sql .= $wpdb->prepare( "AND ( f.name = %s ", $fields[$i] ); else $field_sql .= $wpdb->prepare( "OR f.name = %s ", $fields[$i] ); } $field_sql .= ')'; } else { $field_sql .= $wpdb->prepare( "AND f.name = %s", $fields ); } $sql = $wpdb->prepare( "SELECT d.value, f.name FROM {$bp->profile->table_name_data} d, {$bp->profile->table_name_fields} f WHERE d.field_id = f.id AND d.user_id = %d AND f.parent_id = 0 $field_sql", $user_id ); if ( !$values = $wpdb->get_results($sql) ) return false; $new_values = array(); if ( is_array($fields) ) { for ( $i = 0; $i < count($values); $i++ ) { for ( $j = 0; $j < count($fields); $j++ ) { if ( $values[$i]->name == $fields[$j] ) { $new_values[$fields[$j]] = $values[$i]->value; } else if ( !array_key_exists( $fields[$j], $new_values ) ) { $new_values[$fields[$j]] = NULL; } } } } else { $new_values = $values[0]->value; } return $new_values; }
function bp_gtm_search_gmembers($search_term, $limit, $group_id, $role) { global $bp, $wpdb; if ($role == 'admins') { $allmembers = BP_Groups_Member::get_group_administrator_ids($group_id); } elseif ($role == 'mods') { $allmembers = BP_Groups_Member::get_group_moderator_ids($group_id); } elseif ($role == 'members') { $allmembers = BP_Groups_Member::get_group_member_ids($group_id); } /* Fetch the user's full name */ // if (function_exists('xprofile_install')) { /* Ensure xprofile globals are set */ if (!defined('BP_XPROFILE_FULLNAME_FIELD_NAME')) { xprofile_setup_globals(); } $allmembers = $wpdb->escape(implode(',', (array) $allmembers)); $members = $wpdb->get_results($wpdb->prepare("\n SELECT `user_id` as `id` FROM {$bp->profile->table_name_data}\n WHERE `field_id` = 1 AND `user_id` IN ( {$allmembers} ) AND `value` LIKE '%%{$search_term}%%'\n LIMIT %d\n ", $limit)); return $members; }