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();
|
||||
}
|
||||
|
||||
// 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';
|
||||
}
|
||||
|
||||
|
||||
// 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) {
|
||||
|
||||
case 'promote':
|
||||
|
|
Loading…
Reference in New Issue