7280be63 by Kevin Burton

added filtering to display_users

1 parent f6e2f7e6
...@@ -437,5 +437,6 @@ input.dp-applied { ...@@ -437,5 +437,6 @@ input.dp-applied {
437 437
438 .users-role-bar { margin-top:15px; font-size:11px; } 438 .users-role-bar { margin-top:15px; font-size:11px; }
439 .users-role-bar a { text-decoration: none; } 439 .users-role-bar a { text-decoration: none; }
440 .sm_count { font-size:11px; color:#999; } 440 .users-role-bar a.active { color:#000; font-weight: bold; }
441 .sm_count { font-size:11px; color:#999; font-weight: normal; }
441 442
......
...@@ -57,12 +57,21 @@ function search_special_status($key) { ...@@ -57,12 +57,21 @@ function search_special_status($key) {
57 } 57 }
58 } 58 }
59 59
60 function get_users() { 60 function get_users($role = null, $start=0, $limit=20) {
61 global $wpdb; 61 global $wpdb;
62 62
63 $users = array(); 63 $users = array();
64 64
65 $wp_user_search = $wpdb->get_results("SELECT ID, display_name,user_login,user_email FROM $wpdb->users ORDER BY ID"); 65 $blog_prefix = $wpdb->get_blog_prefix( $blog_id );
66
67 if ($role) {
68 $filter = "AND {$wpdb->usermeta}.user_id IN (SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key='wp_capabilities' AND meta_value LIKE '%$role%' )";
69 } else {
70 $filter = "";
71 }
72 $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";
73
74 $wp_user_search = $wpdb->get_results($query);
66 foreach ( $wp_user_search as $user ) { 75 foreach ( $wp_user_search as $user ) {
67 $uid = (int) $user->ID; 76 $uid = (int) $user->ID;
68 77
...@@ -74,7 +83,7 @@ function get_users() { ...@@ -74,7 +83,7 @@ function get_users() {
74 reset($user->roles); 83 reset($user->roles);
75 $role = ucwords(current($user->roles)); 84 $role = ucwords(current($user->roles));
76 85
77 $users[] = array('uid'=>$uid,'name'=>$name,'role'=>$role, 'user_login'=>$user_login, 'email'=>$user->user_email); 86 $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);
78 } 87 }
79 return $users; 88 return $users;
80 } 89 }
......
...@@ -20,11 +20,11 @@ use WP_User; ...@@ -20,11 +20,11 @@ use WP_User;
20 20
21 <div class="users-role-bar"> 21 <div class="users-role-bar">
22 <?php $users = count_users(); ?> 22 <?php $users = count_users(); ?>
23 <a href="/wp-admin/admin.php?page=cbv_users">All (<?php echo $users['total_users']?>)</a> 23 <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>
24 <?php 24 <?php
25 if (isset($users['avail_roles'])) { 25 if (isset($users['avail_roles'])) {
26 foreach($users['avail_roles'] as $role=>$counted) { 26 foreach($users['avail_roles'] as $role=>$counted) {
27 print ' | <a href="/wp-admin/admin.php?page=cbv_users&role='.$role.'">'.ucwords($role).' <span class="sm_count">('.$counted.')</span></a>'; 27 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>';
28 } 28 }
29 } 29 }
30 30
...@@ -34,20 +34,22 @@ use WP_User; ...@@ -34,20 +34,22 @@ use WP_User;
34 <table cellspacing="0" class="widefat post fixed" style="margin-top:15px;"> 34 <table cellspacing="0" class="widefat post fixed" style="margin-top:15px;">
35 <thead> 35 <thead>
36 <tr> 36 <tr>
37 <th scope="col" width="180" class="manage-column">Username</th>
38 <th scope="col" class="manage-column">Name</th> 37 <th scope="col" class="manage-column">Name</th>
38 <th scope="col" width="180" class="manage-column">Username</th>
39 <th scope="col" width="250" class="manage-column">Email</th> 39 <th scope="col" width="250" class="manage-column">Email</th>
40 <th scope="col" width="200" class="manage-column">Role</th> 40 <th scope="col" width="200" class="manage-column">Role</th>
41 </tr> 41 </tr>
42 </thead> 42 </thead>
43 <tbody> 43 <tbody>
44 <?php $users = get_users(); 44 <?php
45 45 $filter_role = (isset($_GET['role']) ? $_GET['role'] : null);
46 $users = get_users($filter_role, 0);
47
46 foreach($users as $user): 48 foreach($users as $user):
47 ?> 49 ?>
48 <tr> 50 <tr>
51 <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>
49 <td><a href="/wp-admin/admin.php?page=cbv_users&action=edit&uid=<?php echo $user['uid']?>"><?php echo $user['user_login']?></a></td> 52 <td><a href="/wp-admin/admin.php?page=cbv_users&action=edit&uid=<?php echo $user['uid']?>"><?php echo $user['user_login']?></a></td>
50 <td><a href="/wp-admin/admin.php?page=cbv_users&action=edit&uid=<?php echo $user['uid']?>"><?php echo $user['name']?></a></td>
51 <td><?php echo $user['email']?></td> 53 <td><?php echo $user['email']?></td>
52 <td><?php echo $user['role']?></td> 54 <td><?php echo $user['role']?></td>
53 </tr> 55 </tr>
......