Move WP_User_Search to admin includes. Props Viper007Bond. fixes #5111
git-svn-id: http://svn.automattic.com/wordpress/trunk@6615 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
0866e1e584
commit
b7b689e35f
|
@ -281,4 +281,99 @@ function wp_revoke_user($id) {
|
||||||
$user->remove_all_caps();
|
$user->remove_all_caps();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WP_User_Search class
|
||||||
|
// by Mark Jaquith
|
||||||
|
|
||||||
|
if ( !class_exists('WP_User_Search') ) :
|
||||||
|
class WP_User_Search {
|
||||||
|
var $results;
|
||||||
|
var $search_term;
|
||||||
|
var $page;
|
||||||
|
var $raw_page;
|
||||||
|
var $users_per_page = 50;
|
||||||
|
var $first_user;
|
||||||
|
var $last_user;
|
||||||
|
var $query_limit;
|
||||||
|
var $query_from_where;
|
||||||
|
var $total_users_for_query = 0;
|
||||||
|
var $too_many_total_users = false;
|
||||||
|
var $search_errors;
|
||||||
|
|
||||||
|
function WP_User_Search ($search_term = '', $page = '') { // constructor
|
||||||
|
$this->search_term = $search_term;
|
||||||
|
$this->raw_page = ( '' == $page ) ? false : (int) $page;
|
||||||
|
$this->page = (int) ( '' == $page ) ? 1 : $page;
|
||||||
|
|
||||||
|
$this->prepare_query();
|
||||||
|
$this->query();
|
||||||
|
$this->prepare_vars_for_template_usage();
|
||||||
|
$this->do_paging();
|
||||||
|
}
|
||||||
|
|
||||||
|
function prepare_query() {
|
||||||
|
global $wpdb;
|
||||||
|
$this->first_user = ($this->page - 1) * $this->users_per_page;
|
||||||
|
$this->query_limit = 'LIMIT ' . $this->first_user . ',' . $this->users_per_page;
|
||||||
|
if ( $this->search_term ) {
|
||||||
|
$searches = array();
|
||||||
|
$search_sql = 'AND (';
|
||||||
|
foreach ( array('user_login', 'user_nicename', 'user_email', 'user_url', 'display_name') as $col )
|
||||||
|
$searches[] = $col . " LIKE '%$this->search_term%'";
|
||||||
|
$search_sql .= implode(' OR ', $searches);
|
||||||
|
$search_sql .= ')';
|
||||||
|
}
|
||||||
|
$this->query_from_where = "FROM $wpdb->users WHERE 1=1 $search_sql";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function query() {
|
||||||
|
global $wpdb;
|
||||||
|
$this->results = $wpdb->get_col('SELECT ID ' . $this->query_from_where . $this->query_limit);
|
||||||
|
|
||||||
|
if ( $this->results )
|
||||||
|
$this->total_users_for_query = $wpdb->get_var('SELECT COUNT(ID) ' . $this->query_from_where); // no limit
|
||||||
|
else
|
||||||
|
$this->search_errors = new WP_Error('no_matching_users_found', __('No matching users were found!'));
|
||||||
|
}
|
||||||
|
|
||||||
|
function prepare_vars_for_template_usage() {
|
||||||
|
$this->search_term = stripslashes($this->search_term); // done with DB, from now on we want slashes gone
|
||||||
|
}
|
||||||
|
|
||||||
|
function do_paging() {
|
||||||
|
if ( $this->total_users_for_query > $this->users_per_page ) { // have to page the results
|
||||||
|
$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) )
|
||||||
|
) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_results() {
|
||||||
|
return (array) $this->results;
|
||||||
|
}
|
||||||
|
|
||||||
|
function page_links() {
|
||||||
|
echo $this->paging_text;
|
||||||
|
}
|
||||||
|
|
||||||
|
function results_are_paged() {
|
||||||
|
if ( $this->paging_text )
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function is_search() {
|
||||||
|
if ( $this->search_term )
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
endif;
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -20,102 +20,6 @@ if ( empty($_POST) ) {
|
||||||
$redirect = 'users.php';
|
$redirect = 'users.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// WP_User_Search class
|
|
||||||
// by Mark Jaquith
|
|
||||||
|
|
||||||
|
|
||||||
class WP_User_Search {
|
|
||||||
var $results;
|
|
||||||
var $search_term;
|
|
||||||
var $page;
|
|
||||||
var $raw_page;
|
|
||||||
var $users_per_page = 50;
|
|
||||||
var $first_user;
|
|
||||||
var $last_user;
|
|
||||||
var $query_limit;
|
|
||||||
var $query_from_where;
|
|
||||||
var $total_users_for_query = 0;
|
|
||||||
var $too_many_total_users = false;
|
|
||||||
var $search_errors;
|
|
||||||
|
|
||||||
function WP_User_Search ($search_term = '', $page = '') { // constructor
|
|
||||||
$this->search_term = $search_term;
|
|
||||||
$this->raw_page = ( '' == $page ) ? false : (int) $page;
|
|
||||||
$this->page = (int) ( '' == $page ) ? 1 : $page;
|
|
||||||
|
|
||||||
$this->prepare_query();
|
|
||||||
$this->query();
|
|
||||||
$this->prepare_vars_for_template_usage();
|
|
||||||
$this->do_paging();
|
|
||||||
}
|
|
||||||
|
|
||||||
function prepare_query() {
|
|
||||||
global $wpdb;
|
|
||||||
$this->first_user = ($this->page - 1) * $this->users_per_page;
|
|
||||||
$this->query_limit = 'LIMIT ' . $this->first_user . ',' . $this->users_per_page;
|
|
||||||
if ( $this->search_term ) {
|
|
||||||
$searches = array();
|
|
||||||
$search_sql = 'AND (';
|
|
||||||
foreach ( array('user_login', 'user_nicename', 'user_email', 'user_url', 'display_name') as $col )
|
|
||||||
$searches[] = $col . " LIKE '%$this->search_term%'";
|
|
||||||
$search_sql .= implode(' OR ', $searches);
|
|
||||||
$search_sql .= ')';
|
|
||||||
}
|
|
||||||
$this->query_from_where = "FROM $wpdb->users WHERE 1=1 $search_sql";
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function query() {
|
|
||||||
global $wpdb;
|
|
||||||
$this->results = $wpdb->get_col('SELECT ID ' . $this->query_from_where . $this->query_limit);
|
|
||||||
|
|
||||||
if ( $this->results )
|
|
||||||
$this->total_users_for_query = $wpdb->get_var('SELECT COUNT(ID) ' . $this->query_from_where); // no limit
|
|
||||||
else
|
|
||||||
$this->search_errors = new WP_Error('no_matching_users_found', __('No matching users were found!'));
|
|
||||||
}
|
|
||||||
|
|
||||||
function prepare_vars_for_template_usage() {
|
|
||||||
$this->search_term = stripslashes($this->search_term); // done with DB, from now on we want slashes gone
|
|
||||||
}
|
|
||||||
|
|
||||||
function do_paging() {
|
|
||||||
if ( $this->total_users_for_query > $this->users_per_page ) { // have to page the results
|
|
||||||
$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) )
|
|
||||||
) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function get_results() {
|
|
||||||
return (array) $this->results;
|
|
||||||
}
|
|
||||||
|
|
||||||
function page_links() {
|
|
||||||
echo $this->paging_text;
|
|
||||||
}
|
|
||||||
|
|
||||||
function results_are_paged() {
|
|
||||||
if ( $this->paging_text )
|
|
||||||
return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function is_search() {
|
|
||||||
if ( $this->search_term )
|
|
||||||
return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
switch ($action) {
|
switch ($action) {
|
||||||
|
|
||||||
case 'promote':
|
case 'promote':
|
||||||
|
|
Loading…
Reference in New Issue