} // Count the total number of users first $user_total_count = $db->get_value("SELECT count(user_id) AS total FROM mmrpg_users AS users WHERE users.user_id <> 0;", 'total'); // If the requested page would go over the limit, floor it if (ceil($show_limit * $sheet_number) > $user_total_count) { $sheet_number = ceil($user_total_count / $show_limit); $row_offset = $show_limit * ($sheet_number - 1); } // Collect a list of all users in the database $user_fields = rpg_user::get_fields(true, 'users'); $user_roles_fields = rpg_user_role::get_fields(true, 'roles'); $user_query = "SELECT\n {$user_fields},\n {$user_roles_fields},\n (CASE WHEN leaderboard.board_points > 0 THEN 1 ELSE 0 END) AS user_flag_played\n FROM mmrpg_users AS users\n LEFT JOIN mmrpg_roles AS roles ON roles.role_id = users.role_id\n LEFT JOIN mmrpg_leaderboard AS leaderboard ON leaderboard.user_id = users.user_id\n WHERE users.user_id <> 0\n ORDER BY {$query_sort}\n LIMIT {$row_offset}, {$show_limit}\n ;"; $user_index = $db->get_array_list($user_query, 'user_id'); $user_index_count = !empty($user_index) ? count($user_index) : 0; // Collect a leaderboard index so we can check if published $leaderboard_tokens = rpg_prototype::leaderboard_index_tokens(); // Collect a list of completed user sprite tokens $random_sprite = 'kalinka'; // Calculate the number of sheets to display $num_sheets = ceil($user_total_count / $show_limit); // Define a function for generating user sheet links $gen_page_link = function ($i, $show_active = true, $show_text = false) use($sort_column, $sort_direction, $show_limit, $sheet_number, $num_sheets) { $active = $show_active && $i == $sheet_number ? true : false; $visible = $i == 1 || $i == $num_sheets || abs($i - $sheet_number) < 5 ? true : false; $link = 'admin/users/sort=' . $sort_column . '-' . $sort_direction . '&show=' . $show_limit . '&sheet=' . $i; $class = 'link_inline' . ($active ? ' active' : '') . (!$visible ? ' compact' : ''); $text = !empty($show_text) ? $show_text : ($visible ? $i : '.'); return '<a class="' . $class . '" href="' . $link . '">' . $text . '</a>' . PHP_EOL; }; // Generate links for prev, next, and any pages in between $sheet_link_markup = '';