From d84dc7730c7af28b942ce6ee062c12f60977d579 Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Sat, 16 Feb 2008 21:44:50 +0000 Subject: [PATCH] users.php redesign. WIP git-svn-id: https://develop.svn.wordpress.org/trunk@6875 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/includes/template.php | 4 +- wp-admin/includes/user.php | 15 ++-- wp-admin/users.php | 128 ++++++++++++++++++++------------- 3 files changed, 91 insertions(+), 56 deletions(-) diff --git a/wp-admin/includes/template.php b/wp-admin/includes/template.php index a17df18826..9d3070f337 100644 --- a/wp-admin/includes/template.php +++ b/wp-admin/includes/template.php @@ -511,6 +511,8 @@ function page_rows( $pages ) { } function user_row( $user_object, $style = '', $role = '' ) { + global $wp_roles; + if ( !( is_object( $user_object) && is_a( $user_object, 'WP_User' ) ) ) $user_object = new WP_User( (int) $user_object ); $email = $user_object->user_email; @@ -533,7 +535,7 @@ function user_row( $user_object, $style = '', $role = '' ) { $edit $user_object->first_name $user_object->last_name $email - $short_url"; + {$wp_roles->role_names[$role]}"; $r .= "\n\t\t"; if ( $numposts > 0 ) { $r .= ""; diff --git a/wp-admin/includes/user.php b/wp-admin/includes/user.php index 3fcc86f1a7..73922294d6 100644 --- a/wp-admin/includes/user.php +++ b/wp-admin/includes/user.php @@ -289,6 +289,7 @@ class WP_User_Search { var $results; var $search_term; var $page; + var $role; var $raw_page; var $users_per_page = 50; var $first_user; @@ -299,10 +300,11 @@ class WP_User_Search { var $too_many_total_users = false; var $search_errors; - function WP_User_Search ($search_term = '', $page = '') { // constructor + function WP_User_Search ($search_term = '', $page = '', $role = '') { // constructor $this->search_term = $search_term; $this->raw_page = ( '' == $page ) ? false : (int) $page; $this->page = (int) ( '' == $page ) ? 1 : $page; + $this->role = $role; $this->prepare_query(); $this->query(); @@ -314,6 +316,7 @@ class WP_User_Search { global $wpdb; $this->first_user = ($this->page - 1) * $this->users_per_page; $this->query_limit = 'LIMIT ' . $this->first_user . ',' . $this->users_per_page; + $search_sql = ''; if ( $this->search_term ) { $searches = array(); $search_sql = 'AND ('; @@ -322,7 +325,13 @@ class WP_User_Search { $search_sql .= implode(' OR ', $searches); $search_sql .= ')'; } - $this->query_from_where = "FROM $wpdb->users WHERE 1=1 $search_sql"; + + $this->query_from_where = "FROM $wpdb->users"; + if ( $this->role ) + $this->query_from_where .= " INNER JOIN $wpdb->usermeta ON $wpdb->users.ID = $wpdb->usermeta.user_id WHERE $wpdb->usermeta.meta_key = '{$wpdb->prefix}capabilities' AND $wpdb->usermeta.meta_value LIKE '%$this->role%'"; + else + $this->query_from_where .= " WHERE 1=1"; + $this->query_from_where .= " $search_sql"; } @@ -345,8 +354,6 @@ class WP_User_Search { $this->paging_text = paginate_links( array( 'total' => ceil($this->total_users_for_query / $this->users_per_page), 'current' => $this->page, - 'prev_text' => __('« Previous Page'), - 'next_text' => __('Next Page »'), 'base' => 'users.php?%_%', 'format' => 'userspage=%#%', 'add_args' => array( 'usersearch' => urlencode($this->search_term) ) diff --git a/wp-admin/users.php b/wp-admin/users.php index 4e17ec47b6..b112400491 100644 --- a/wp-admin/users.php +++ b/wp-admin/users.php @@ -11,10 +11,13 @@ $parent_file = 'users.php'; $action = $_REQUEST['action']; $update = ''; -if ( empty($_POST) ) { +if ( empty($action) && isset($_GET['deleteit']) ) + $action = 'delete'; + +if ( empty($_REQUEST) ) { $referer = ''; -} elseif ( isset($_POST['wp_http_referer']) ) { - $redirect = remove_query_arg(array('wp_http_referer', 'updated', 'delete_count'), stripslashes($_POST['wp_http_referer'])); +} elseif ( isset($_REQUEST['wp_http_referer']) ) { + $redirect = remove_query_arg(array('wp_http_referer', 'updated', 'delete_count'), stripslashes($_REQUEST['wp_http_referer'])); $referer = ''; } else { $redirect = 'users.php'; @@ -25,7 +28,7 @@ switch ($action) { case 'promote': check_admin_referer('bulk-users'); - if (empty($_POST['users'])) { + if (empty($_REQUEST['users'])) { wp_redirect($redirect); exit(); } @@ -33,19 +36,19 @@ case 'promote': if ( !current_user_can('edit_users') ) wp_die(__('You can’t edit users.')); - $userids = $_POST['users']; + $userids = $_REQUEST['users']; $update = 'promote'; foreach($userids as $id) { if ( ! current_user_can('edit_user', $id) ) wp_die(__('You can’t edit that user.')); // The new role of the current user must also have edit_users caps - if($id == $current_user->ID && !$wp_roles->role_objects[$_POST['new_role']]->has_cap('edit_users')) { + if($id == $current_user->ID && !$wp_roles->role_objects[$_REQUEST['new_role']]->has_cap('edit_users')) { $update = 'err_admin_role'; continue; } $user = new WP_User($id); - $user->set_role($_POST['new_role']); + $user->set_role($_REQUEST['new_role']); } wp_redirect(add_query_arg('update', $update, $redirect)); @@ -57,7 +60,7 @@ case 'dodelete': check_admin_referer('delete-users'); - if ( empty($_POST['users']) ) { + if ( empty($_REQUEST['users']) ) { wp_redirect($redirect); exit(); } @@ -65,7 +68,7 @@ case 'dodelete': if ( !current_user_can('delete_users') ) wp_die(__('You can’t delete users.')); - $userids = $_POST['users']; + $userids = $_REQUEST['users']; $update = 'del'; $delete_count = 0; @@ -77,12 +80,12 @@ case 'dodelete': $update = 'err_admin_del'; continue; } - switch($_POST['delete_option']) { + switch($_REQUEST['delete_option']) { case 'delete': wp_delete_user($id); break; case 'reassign': - wp_delete_user($id, $_POST['reassign_user']); + wp_delete_user($id, $_REQUEST['reassign_user']); break; } ++$delete_count; @@ -98,7 +101,7 @@ case 'delete': check_admin_referer('bulk-users'); - if ( empty($_POST['users']) ) { + if ( empty($_REQUEST['users']) ) { wp_redirect($redirect); exit(); } @@ -106,7 +109,7 @@ case 'delete': if ( !current_user_can('delete_users') ) $errors = new WP_Error('edit_users', __('You can’t delete users.')); - $userids = $_POST['users']; + $userids = $_REQUEST['users']; include ('admin-header.php'); ?> @@ -167,7 +170,7 @@ case 'adduser': if ( is_wp_error( $user_id ) ) $add_user_errors = $user_id; else { - $new_user_login = apply_filters('pre_user_login', sanitize_user(stripslashes($_POST['user_login']), true)); + $new_user_login = apply_filters('pre_user_login', sanitize_user(stripslashes($_REQUEST['user_login']), true)); $redirect = add_query_arg( array('usersearch' => urlencode($new_user_login), 'update' => $update), $redirect ); wp_redirect( $redirect . '#user-' . $user_id ); die(); @@ -180,7 +183,7 @@ default: include('admin-header.php'); // Query the users - $wp_user_search = new WP_User_Search($_GET['usersearch'], $_GET['userspage']); + $wp_user_search = new WP_User_Search($_GET['usersearch'], $_GET['userspage'], $_GET['role']); // Make the user objects foreach ( $wp_user_search->get_results() as $userid ) { @@ -236,16 +239,52 @@ default:
- +
is_search() ) : ?> -

search_term)); ?>

+

search_term)); ?>

-

+

- -

-
+
+

+ + +

+ +
+ +
+ +results_are_paged() ) : ?> +
page_links(); ?>
+ + +
+ + +
+ +
+
+ +
search_errors ) ) : ?>
@@ -271,34 +310,23 @@ default: else printf(__('%1$s – %2$s of %3$s shown below'), $wp_user_search->first_user + 1, min($wp_user_search->first_user + $wp_user_search->users_per_page, $wp_user_search->total_users_for_query), $wp_user_search->total_users_for_query); ?> - results_are_paged() ) : ?> -

page_links(); ?>

- -
- $roleclass) { - uksort($roleclass, "strnatcasecmp"); -?> - - - - - - - - + + $roleclass) { + uksort($roleclass, "strnatcasecmp"); +?>

role_names[$role]; ?>

+
+ +
+ results_are_paged() ) : ?> -

page_links(); ?>

+
page_links(); ?>
-

-
    -
  • -
  • - - -
  • -
-

- - -

+
+
+
+
'user_login', 'first_name' => 'user_firstname', 'last_name' => 'user_lastname', 'email' => 'user_email', 'url' => 'user_uri', 'role' => 'user_role') as $formpost => $var ) { $var = 'new_' . $var; - $$var = attribute_escape(stripslashes($_POST[$formpost])); + $$var = attribute_escape(stripslashes($_REQUEST[$formpost])); } unset($name); } ?> +
+