Esempio n. 1
0
	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;
	}
Esempio n. 2
0
	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;
	}
Esempio n. 3
0
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;
}