7280be63 by Kevin Burton

added filtering to display_users

1 parent f6e2f7e6
......@@ -437,5 +437,6 @@ input.dp-applied {
.users-role-bar { margin-top:15px; font-size:11px; }
.users-role-bar a { text-decoration: none; }
.sm_count { font-size:11px; color:#999; }
.users-role-bar a.active { color:#000; font-weight: bold; }
.sm_count { font-size:11px; color:#999; font-weight: normal; }
......
......@@ -57,12 +57,21 @@ function search_special_status($key) {
}
}
function get_users() {
function get_users($role = null, $start=0, $limit=20) {
global $wpdb;
$users = array();
$wp_user_search = $wpdb->get_results("SELECT ID, display_name,user_login,user_email FROM $wpdb->users ORDER BY ID");
$blog_prefix = $wpdb->get_blog_prefix( $blog_id );
if ($role) {
$filter = "AND {$wpdb->usermeta}.user_id IN (SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key='wp_capabilities' AND meta_value LIKE '%$role%' )";
} else {
$filter = "";
}
$query = "SELECT {$wpdb->users}.*, meta_value as last_name FROM $wpdb->users, $wpdb->usermeta WHERE {$wpdb->users}.ID = {$wpdb->usermeta}.user_id AND meta_key = 'last_name' $filter ORDER BY last_name ASC LIMIT $start,$limit";
$wp_user_search = $wpdb->get_results($query);
foreach ( $wp_user_search as $user ) {
$uid = (int) $user->ID;
......@@ -74,7 +83,7 @@ function get_users() {
reset($user->roles);
$role = ucwords(current($user->roles));
$users[] = array('uid'=>$uid,'name'=>$name,'role'=>$role, 'user_login'=>$user_login, 'email'=>$user->user_email);
$users[] = array('uid'=>$uid,'name'=>$name,'first_name'=>get_user_meta($uid,'first_name',true),'last_name'=>get_user_meta($uid, 'last_name',true),'role'=>$role, 'user_login'=>$user_login, 'email'=>$user->user_email);
}
return $users;
}
......
......@@ -20,11 +20,11 @@ use WP_User;
<div class="users-role-bar">
<?php $users = count_users(); ?>
<a href="/wp-admin/admin.php?page=cbv_users">All (<?php echo $users['total_users']?>)</a>
<a href="/wp-admin/admin.php?page=cbv_users" <?php echo (!isset($_GET['role']) ? "class='active'" : ""); ?>>All <span class="sm_count">(<?php echo $users['total_users']?>)</span></a>
<?php
if (isset($users['avail_roles'])) {
foreach($users['avail_roles'] as $role=>$counted) {
print ' | <a href="/wp-admin/admin.php?page=cbv_users&role='.$role.'">'.ucwords($role).' <span class="sm_count">('.$counted.')</span></a>';
print ' | <a href="/wp-admin/admin.php?page=cbv_users&role='.$role.'" '.( (isset($_GET['role']) && $_GET['role']==$role) ? "class='active'" : "").'>'.ucwords($role).' <span class="sm_count">('.$counted.')</span></a>';
}
}
......@@ -34,20 +34,22 @@ use WP_User;
<table cellspacing="0" class="widefat post fixed" style="margin-top:15px;">
<thead>
<tr>
<th scope="col" width="180" class="manage-column">Username</th>
<th scope="col" class="manage-column">Name</th>
<th scope="col" width="180" class="manage-column">Username</th>
<th scope="col" width="250" class="manage-column">Email</th>
<th scope="col" width="200" class="manage-column">Role</th>
</tr>
</thead>
<tbody>
<?php $users = get_users();
<?php
$filter_role = (isset($_GET['role']) ? $_GET['role'] : null);
$users = get_users($filter_role, 0);
foreach($users as $user):
?>
<tr>
<td><a href="/wp-admin/admin.php?page=cbv_users&action=edit&uid=<?php echo $user['uid']?>"><?php echo $user['last_name'].', '.$user['first_name']?></a></td>
<td><a href="/wp-admin/admin.php?page=cbv_users&action=edit&uid=<?php echo $user['uid']?>"><?php echo $user['user_login']?></a></td>
<td><a href="/wp-admin/admin.php?page=cbv_users&action=edit&uid=<?php echo $user['uid']?>"><?php echo $user['name']?></a></td>
<td><?php echo $user['email']?></td>
<td><?php echo $user['role']?></td>
</tr>
......