<?php
/*
Plugin Name: Member List
*/
add_action('bb_custom_view','member_list_view'); // register the view function
$query=array('started' => '>0','append_meta'=>false,'sticky'=>false,'topic_status'=>'all','order_by'=>1,'per_page'=>1); // fake query for bbPress :-(
bb_register_view("member-list","Member List",$query,false); // register the view itself and it's name and url stub
function member_list_view($view='') {
if (!empty($view) && $view!='member-list') {return;} // is this view for us? no? return
bb_send_headers(); // send any appropriate http headers
bb_get_header(); // send any bbpress html headers like meta, css, etc.
member_list(); // all the queries/output happens in this below
bb_get_footer(); // send any bbPress footer stuff
exit; // all done!
}
function member_list() {
global $bbdb, $view_count, $page; // bbPress uses $page for the current page number, $view_count for total overall
$limit = bb_get_option('page_topics'); // how many users per page
$offset = ($page-1)*$limit; // calculate the user number to start at for the current page
$query="FROM $bbdb->users as t1
LEFT JOIN $bbdb->usermeta as t2 on t1.ID=t2.user_id
WHERE user_status=0 AND (meta_key='$bbdb->prefix"."capabilities'
AND NOT (meta_value LIKE '%inactive%' OR meta_value LIKE '%blocked%')) ";
$restrict = " ORDER BY user_registered DESC LIMIT $limit OFFSET $offset";
$view_count = $bbdb->get_var("SELECT count(*) ".$query); // calculate total number of users overall
$users = $bbdb->get_col("SELECT ID ".$query.$restrict); // get user IDs for just this page
bb_cache_users(implode(',',$users)); // cache all users about to be displayed for other bbPress functions
// just a simple output example
echo "<h2>
Member List ($view_count total,
showing ".(1+($page-1)*$limit)." - ".($page*$limit>$view_count ? $view_count : $page*$limit)
.")</h2><br /><br />";
echo "<table id='latest'>";
foreach ($users as $user_id) {
echo "<tr>";
echo "<tr".get_alt_class('users').">";
$user=bb_get_user($user_id);
echo "<td valign='middle'>".bb_get_avatar( $user->ID, 32 )." $user->user_login [$user->ID]</td>";
echo "<td><a href='".get_user_profile_link($user_id)."'>profile</a></td>";
$link=get_user_link($user_id); if (!empty($link)) {echo "<td><a href='$link'>$link</a></td>";} else {echo "<td> </td>";}
echo "</tr>";
}
echo "</table><br />";
view_pages(); // pagination links
}
?>