function prepare_items()
 {
     global $usersearch, $role, $nxtdb, $mode;
     $usersearch = isset($_REQUEST['s']) ? $_REQUEST['s'] : '';
     $users_per_page = $this->get_items_per_page('users_network_per_page');
     $role = isset($_REQUEST['role']) ? $_REQUEST['role'] : '';
     $paged = $this->get_pagenum();
     $args = array('number' => $users_per_page, 'offset' => ($paged - 1) * $users_per_page, 'search' => $usersearch, 'blog_id' => 0, 'fields' => 'all_with_meta');
     if (nxt_is_large_network('users')) {
         $args['search'] = ltrim($args['search'], '*');
     }
     if ($role == 'super') {
         $logins = implode("', '", get_super_admins());
         $args['include'] = $nxtdb->get_col("SELECT ID FROM {$nxtdb->users} WHERE user_login IN ('{$logins}')");
     }
     // If the network is large and a search is not being performed, show only the latest users with no paging in order
     // to avoid expensive count queries.
     if (!$usersearch && nxt_is_large_network('users')) {
         if (!isset($_REQUEST['orderby'])) {
             $_GET['orderby'] = $_REQUEST['orderby'] = 'id';
         }
         if (!isset($_REQUEST['order'])) {
             $_GET['order'] = $_REQUEST['order'] = 'DESC';
         }
         $args['count_total'] = false;
     }
     if (isset($_REQUEST['orderby'])) {
         $args['orderby'] = $_REQUEST['orderby'];
     }
     if (isset($_REQUEST['order'])) {
         $args['order'] = $_REQUEST['order'];
     }
     $mode = empty($_REQUEST['mode']) ? 'list' : $_REQUEST['mode'];
     // Query the user IDs for this page
     $nxt_user_search = new nxt_User_Query($args);
     $this->items = $nxt_user_search->get_results();
     $this->set_pagination_args(array('total_items' => $nxt_user_search->get_total(), 'per_page' => $users_per_page));
 }
 function prepare_items()
 {
     global $s, $mode, $nxtdb, $current_site;
     $mode = empty($_REQUEST['mode']) ? 'list' : $_REQUEST['mode'];
     $per_page = $this->get_items_per_page('sites_network_per_page');
     $pagenum = $this->get_pagenum();
     $s = isset($_REQUEST['s']) ? stripslashes(trim($_REQUEST['s'])) : '';
     $wild = '';
     if (false !== strpos($s, '*')) {
         $wild = '%';
         $s = trim($s, '*');
     }
     $like_s = esc_sql(like_escape($s));
     // If the network is large and a search is not being performed, show only the latest blogs with no paging in order
     // to avoid expensive count queries.
     if (!$s && nxt_is_large_network()) {
         if (!isset($_REQUEST['orderby'])) {
             $_GET['orderby'] = $_REQUEST['orderby'] = '';
         }
         if (!isset($_REQUEST['order'])) {
             $_GET['order'] = $_REQUEST['order'] = 'DESC';
         }
     }
     $query = "SELECT * FROM {$nxtdb->blogs} WHERE site_id = '{$nxtdb->siteid}' ";
     if (empty($s)) {
         // Nothing to do.
     } elseif (preg_match('/^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$/', $s) || preg_match('/^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.?$/', $s) || preg_match('/^[0-9]{1,3}\\.[0-9]{1,3}\\.?$/', $s) || preg_match('/^[0-9]{1,3}\\.$/', $s)) {
         // IPv4 address
         $reg_blog_ids = $nxtdb->get_col("SELECT blog_id FROM {$nxtdb->registration_log} WHERE {$nxtdb->registration_log}.IP LIKE ( '{$like_s}{$wild}' )");
         if (!$reg_blog_ids) {
             $reg_blog_ids = array(0);
         }
         $query = "SELECT *\n\t\t\t\tFROM {$nxtdb->blogs}\n\t\t\t\tWHERE site_id = '{$nxtdb->siteid}'\n\t\t\t\tAND {$nxtdb->blogs}.blog_id IN (" . implode(', ', $reg_blog_ids) . ")";
     } else {
         if (is_numeric($s) && empty($wild)) {
             $query .= " AND ( {$nxtdb->blogs}.blog_id = '{$like_s}' )";
         } elseif (is_subdomain_install()) {
             $blog_s = str_replace('.' . $current_site->domain, '', $like_s);
             $blog_s .= $wild . '.' . $current_site->domain;
             $query .= " AND ( {$nxtdb->blogs}.domain LIKE '{$blog_s}' ) ";
         } else {
             if ($like_s != trim('/', $current_site->path)) {
                 $blog_s = $current_site->path . $like_s . $wild . '/';
             } else {
                 $blog_s = $like_s;
             }
             $query .= " AND  ( {$nxtdb->blogs}.path LIKE '{$blog_s}' )";
         }
     }
     $order_by = isset($_REQUEST['orderby']) ? $_REQUEST['orderby'] : '';
     if ($order_by == 'registered') {
         $query .= ' ORDER BY registered ';
     } elseif ($order_by == 'lastupdated') {
         $query .= ' ORDER BY last_updated ';
     } elseif ($order_by == 'blogname') {
         if (is_subdomain_install()) {
             $query .= ' ORDER BY domain ';
         } else {
             $query .= ' ORDER BY path ';
         }
     } elseif ($order_by == 'blog_id') {
         $query .= ' ORDER BY blog_id ';
     } else {
         $order_by = null;
     }
     if (isset($order_by)) {
         $order = isset($_REQUEST['order']) && 'DESC' == strtoupper($_REQUEST['order']) ? "DESC" : "ASC";
         $query .= $order;
     }
     // Don't do an unbounded count on large networks
     if (!nxt_is_large_network()) {
         $total = $nxtdb->get_var(str_replace('SELECT *', 'SELECT COUNT( blog_id )', $query));
     }
     $query .= " LIMIT " . intval(($pagenum - 1) * $per_page) . ", " . intval($per_page);
     $this->items = $nxtdb->get_results($query, ARRAY_A);
     if (nxt_is_large_network()) {
         $total = count($this->items);
     }
     $this->set_pagination_args(array('total_items' => $total, 'per_page' => $per_page));
 }