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)); }