Example #1
0
/**
 * bp_core_get_random_member()
 *
 * Returns the user_id for a user based on their username.
 * 
 * @package BuddyPress Core
 * @param $username str Username to check.
 * @global $wpdb WordPress DB access object.
 * @return false on no match
 * @return int the user ID of the matched user.
 */
function bp_core_get_random_member()
{
    global $bp, $wpdb;
    if ($bp->current_component == BP_MEMBERS_SLUG && isset($_GET['random'])) {
        $user = BP_Core_User::get_random_users(1);
        $ud = get_userdata($user['users'][0]->user_id);
        bp_core_redirect($bp->root_domain . '/' . BP_MEMBERS_SLUG . '/' . $ud->user_login);
    }
}
 function bp_core_members_template($type, $per_page, $max)
 {
     global $bp, $bp_the_member_query;
     $this->pag_page = isset($_REQUEST['upage']) ? intval($_REQUEST['upage']) : 1;
     $this->pag_num = isset($_REQUEST['num']) ? intval($_REQUEST['num']) : $per_page;
     if (isset($_REQUEST['s']) && '' != $_REQUEST['s'] && $type != 'random') {
         $this->members = BP_Core_User::search_users($_REQUEST['s'], $this->pag_num, $this->pag_page);
     } else {
         if (isset($_REQUEST['letter']) && '' != $_REQUEST['letter']) {
             $this->members = BP_Core_User::get_users_by_letter($_REQUEST['letter'], $this->pag_num, $this->pag_page);
         } else {
             switch ($type) {
                 case 'random':
                     $this->members = BP_Core_User::get_random_users($this->pag_num, $this->pag_page);
                     break;
                 case 'newest':
                     $this->members = BP_Core_User::get_newest_users($this->pag_num, $this->pag_page);
                     break;
                 case 'popular':
                     $this->members = BP_Core_User::get_popular_users($this->pag_num, $this->pag_page);
                     break;
                 case 'online':
                     $this->members = BP_Core_User::get_online_users($this->pag_num, $this->pag_page);
                     break;
                 case 'alphabetical':
                     $this->members = BP_Core_User::get_alphabetical_users($this->pag_num, $this->pag_page);
                     break;
                 case 'active':
                 default:
                     $this->members = BP_Core_User::get_active_users($this->pag_num, $this->pag_page);
                     break;
             }
         }
     }
     if (!$max) {
         $this->total_member_count = (int) $this->members['total'];
     } else {
         $this->total_member_count = (int) $max;
     }
     $this->members = $this->members['users'];
     if ($max) {
         if ($max >= count($this->members)) {
             $this->member_count = count($this->members);
         } else {
             $this->member_count = (int) $max;
         }
     } else {
         $this->member_count = count($this->members);
     }
     $this->pag_links = paginate_links(array('base' => add_query_arg('upage', '%#%'), 'format' => '', 'total' => ceil((int) $this->total_member_count / (int) $this->pag_num), 'current' => (int) $this->pag_page, 'prev_text' => '«', 'next_text' => '»', 'mid_size' => 1));
 }
function bp_friends_random_members($total_members = 5)
{
    global $bp;
    if (!($user_ids = wp_cache_get('friends_random_users', 'bp'))) {
        $user_ids = BP_Core_User::get_random_users($total_members);
        wp_cache_set('friends_random_users', $user_ids, 'bp');
    }
    ?>
	
	<?php 
    if ($user_ids['users']) {
        ?>
		<ul class="item-list" id="random-members-list">
		<?php 
        for ($i = 0; $i < count($user_ids['users']); $i++) {
            ?>
			<li>
				<a href="<?php 
            echo bp_core_get_userurl($user_ids['users'][$i]->user_id);
            ?>
"><?php 
            echo bp_core_get_avatar($user_ids['users'][$i]->user_id, 1);
            ?>
</a>
				<h5><?php 
            echo bp_core_get_userlink($user_ids['users'][$i]->user_id);
            ?>
</h5>
				<?php 
            if (function_exists('xprofile_get_random_profile_data')) {
                ?>
					<?php 
                $random_data = xprofile_get_random_profile_data($user_ids['users'][$i]->user_id, true);
                ?>
					<div class="profile-data">
						<p class="field-name"><?php 
                echo $random_data[0]->name;
                ?>
</p>
						<?php 
                echo $random_data[0]->value;
                ?>
					</div>
				<?php 
            }
            ?>
				
				<div class="action">
					<?php 
            if (function_exists('bp_add_friend_button')) {
                ?>
						<?php 
                bp_add_friend_button($user_ids['users'][$i]->user_id);
                ?>
					<?php 
            }
            ?>
				</div>
			</li>
		<?php 
        }
        ?>
		</ul>
	<?php 
    } else {
        ?>
		<div id="message" class="info">
			<p><?php 
        _e("There aren't enough site members to show a random sample just yet.", 'buddypress');
        ?>
</p>
		</div>		
	<?php 
    }
}