$user_id = fetch_current_user_id(); if ($user_id == false) { echo "You must be logged into view this page."; return; } if ($sort_by == "default") { $sort_by = isset($_SESSION["sort_by"]) ? $_SESSION["sort_by"] : "rank"; } $_SESSION["sort_by"] = $sort_by; $filter = isset($_POST['filter']) ? $_POST['filter'] : "default"; if ($filter != "default") { $query = process_filter_to_query($filter); $_SESSION['filter'] = $_POST['filter']; } else { if ($filter == "default") { $query = isset($_SESSION['filter']) ? process_filter_to_query($_SESSION['filter']) : process_filter_to_query($filter); } } echo "<table style='text-align:center;'>" . fetch_table_header($sort_by); $statement = $connection->query("select * from achievements " . $query . fetch_order_query($sort_by)); while ($achievement = $statement->fetchObject()) { echo fetch_listing_row($achievement); } echo "</table>"; list_completed_achievements(); echo "<h3 style='text-align:center;'>\n <span id='show_abandoned' class='h-normal hand text-button' style='float:left;'>[ Show ] </span>\n <span id='hide_abandoned' class='h-normal hand text-button' style='display:none;float:left;'>[ Hide ] </span>\n Abandoned Achievements</h3>\n \n <div id='abandoned_achievements_list' style='display:none;'>"; list_abandoned_achievements(); echo "</div>"; function fetch_order_query($sort_by) { $order_by = ["default" => " order by quality asc, rank asc", "power" => " order by power asc", "powerrev" => " order by power desc, rank asc", "adjusted" => " order by power_adj asc", "adjusted_rev" => " order by power_adj desc, rank asc", "rank" => " order by rank asc", "rankrev" => " order by rank desc", "created" => " order by created asc", "createdrev" => " order by created desc", "name" => " order by name asc", "namerev" => " order by name desc", "work" => " order by work", "workrev" => " order by work desc"];
function count_achievements() { //INTEGRATE //This is intended for working achievements. $data = []; $connection = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USER, DB_PWD); $filter_is_active = return_if_filter_active(); $user_id = fetch_current_user_id(); if ($user_id == false) { $default_query = "select count(*) from achievements " . DEFAULT_LISTING . " and public=1"; $query = $filter_is_active ? "select count(*) from achievements " . process_filter_to_query($_SESSION['filter']) : $default_query; $statement = $connection->query($query); $data['total'] = (int) $statement->fetchColumn(); if ($filter_is_active) { $statement = $connection->query($default_query); $num_of_unfiltered = (int) $statement->fetchColumn(); $num_of_filtered = $num_of_unfiltered - $total; $data["filtered"] = $num_of_filtered; } } else { if (!$user_id == false) { $default_query = "select count(*) from achievements " . DEFAULT_LISTING . " and owner={$user_id}"; $query = $filter_is_active ? "select count(*) from achievements " . process_filter_to_query($_SESSION['filter']) : $default_query; $statement = $connection->query($query . " and active=1"); $num_of_working_achievements = (int) $statement->fetchColumn(); $statement = $connection->query($query); $total = (int) $statement->fetchColumn(); $statement = $connection->query($query . " and active=0"); $num_of_nonworking_achievements = (int) $statement->fetchColumn(); $data = ["total" => $total, "working" => $num_of_working_achievements, "not_working" => $num_of_nonworking_achievements]; if ($filter_is_active) { $statement = $connection->query($default_query); $num_of_unfiltered = (int) $statement->fetchColumn(); $num_of_filtered = $num_of_unfiltered - $total; $data["filtered"] = $num_of_filtered; } } } return $data; }