public static function prepareData($item, $mysqli) { // page title $data["title"] = "Alois Sečkár - Domovská stránka"; // information - age of author include_once getcwd() . "/web/scripts/elrh_misc_helper.php"; $data["age"] = ELRHMiscHelper::elrhCountAge("1988-07-21"); // get contacts include_once getcwd() . '/web/scripts/page-data/elrh_data_helper.php'; $data["contacts"] = ELRHDataHelper::retrieveArray($mysqli, "SELECT contact, name, link, dscr FROM elrh_contacts"); // save prepared data for renderer return $data; }
public static function prepareData($item, $mysqli) { include_once getcwd() . '/web/scripts/page-data/elrh_data_helper.php'; include_once getcwd() . '/web/scripts/elrh_misc_helper.php'; // page title $data["title"] = "Alois Sečkár - Běh"; // deal with admin input, if any if (isset($_SESSION["user"])) { if (isset($_POST["admin_date"]) && isset($_POST["admin_track"]) && isset($_POST["admin_length"]) && isset($_POST["admin_time"])) { // prepare values $data["admin_input"]["date"] = $_POST["admin_date"]; $data["admin_input"]["track"] = $_POST["admin_track"]; if ($data["admin_input"]["track"] > -1) { // get length from db $track_info = ELRHDataHelper::retrieveArray($mysqli, "SELECT length FROM elrh_run_tracks WHERE id='" . $data["admin_input"]["track"] . "'"); $data["admin_input"]["length"] = $track_info[0]["length"]; } else { // for single-run-records length is inserted directly $data["admin_input"]["length"] = $_POST["admin_length"]; } $data["admin_input"]["time"] = $_POST["admin_time"]; $data["admin_input"]["speed"] = ELRHMiscHelper::getAVGSpeed($data["admin_input"]["time"], $data["admin_input"]["length"]); // elaborate average speed from input if ($data["admin_input"]["track"] > -1) { $data["admin_input"]["length"] = 0; // erease length info again for existing track (is kept in other table) } // insert into db $result = $mysqli->query("INSERT INTO elrh_run_records (date, track, length, time, speed) VALUES ('" . mysqli_real_escape_string($mysqli, $data["admin_input"]["date"]) . "', '" . mysqli_real_escape_string($mysqli, $data["admin_input"]["track"]) . "', '" . mysqli_real_escape_string($mysqli, $data["admin_input"]["length"]) . "', '" . mysqli_real_escape_string($mysqli, $data["admin_input"]["time"]) . "', '" . mysqli_real_escape_string($mysqli, $data["admin_input"]["speed"]) . "');"); if ($result) { $data["admin_message"] = '<span style="color: green;">Vložen nový záznam</span>'; } else { $data["admin_message"] = '<span style="color: red;">Vložení selhalo</span>'; } } else { $data["admin_input"]["date"] = ""; $data["admin_input"]["track"] = ""; $data["admin_input"]["length"] = ""; $data["admin_input"]["time"] = ""; } } // // handle filter selection if (isset($_POST["filter_mode"])) { $data["filter"]["mode"] = $_POST["filter_mode"]; } else { $data["filter"]["mode"] = "last30"; } if (isset($_POST["filter_track"])) { $data["filter"]["track"] = $_POST["filter_track"]; } else { $data["filter"]["track"] = "all"; } if (isset($_POST["filter_year"])) { $data["filter"]["year"] = $_POST["filter_year"]; } else { $data["filter"]["year"] = "all"; } if (isset($_POST["filter_month"])) { $data["filter"]["month"] = $_POST["filter_month"]; } else { $data["filter"]["month"] = "all"; } if (isset($_POST["filter_sort"])) { $data["filter"]["sort"] = $_POST["filter_sort"]; } else { $data["filter"]["sort"] = "date"; } if (isset($_POST["filter_sort_desc"])) { $data["filter"]["sort_desc"] = $_POST["filter_sort_desc"]; } else { $data["filter"]["sort_desc"] = "true"; } // prepare filter values $data["tracks"] = ELRHDataHelper::retrieveArray($mysqli, "SELECT id, name FROM elrh_run_tracks ORDER BY name"); for ($i = 2013; $i <= date("Y"); $i++) { $data["years"][$i] = $i; } $data["months"][0] = "01"; $data["months"][1] = "02"; $data["months"][2] = "03"; $data["months"][3] = "04"; $data["months"][4] = "05"; $data["months"][5] = "06"; $data["months"][6] = "07"; $data["months"][7] = "08"; $data["months"][8] = "09"; $data["months"][9] = "10"; $data["months"][10] = "11"; $data["months"][11] = "12"; // get run records // prepare sql statement // basic statement if ($data["filter"]["track"] == -1) { $sql = "SELECT r.date AS date, r.track AS track_id, r.time AS time, r.speed AS speed, '-' AS track, r.length AS length, r.length AS r_length FROM elrh_run_records r"; } else { $sql = "SELECT r.date AS date, r.track AS track_id, r.time AS time, r.speed AS speed, t.name AS track, t.length AS length, r.length AS r_length FROM elrh_run_records r JOIN elrh_run_tracks t ON r.track = t.id"; } // where clauses (track, year and month - if set) $where = ""; if ($data["filter"]["track"] != "all") { $where .= " WHERE r.track=" . $data["filter"]["track"]; } if ($data["filter"]["year"] != "all") { if ($where == "") { $where .= " WHERE "; } else { $where .= " AND "; } $where .= "r.date LIKE '" . $data["filter"]["year"] . "%'"; } if ($data["filter"]["month"] != "all") { if ($where == "") { $where .= " WHERE "; } else { $where .= " AND "; } $where .= "r.date LIKE '%-" . $data["filter"]["month"] . "-%'"; } if ($where != "") { $sql .= $where; } // order by $sql .= " ORDER BY " . $data["filter"]["sort"]; if ($data["filter"]["sort_desc"] == "true") { $sql .= " DESC"; } // limit part (if set) if ($data["filter"]["mode"] == "last10") { $sql .= " LIMIT 10"; } elseif ($data["filter"]["mode"] == "last30") { $sql .= " LIMIT 30"; } // run records from db $data["runs"] = ELRHDataHelper::retrieveArray($mysqli, $sql); // fix values + count totals from extracted results $data["total"]["count"] = 0; $data["total"]["length"] = 0; $data["total"]["time"] = "00:00:00"; $row_index = 0; foreach ($data["runs"] as $row) { // $data["runs"][$row_index]["speed"] = ELRHMiscHelper::getAVGSpeed($row["time"], $row["length"]); // value now stored in DB $data["runs"][$row_index]["time"] = substr_replace($data["runs"][$row_index]["time"], '.', strrpos($data["runs"][$row_index]["time"], ':'), 1); // change : to . for miliseconds if ($data["runs"][$row_index]["track_id"] == -1) { $row["length"] = $row["r_length"]; $data["runs"][$row_index]["length"] = $row["r_length"]; // for single-record-runs, length is kept within run record itself } $row_index++; // $data["total"]["count"]++; $data["total"]["length"] += $row["length"]; $data["total"]["time"] = ELRHMiscHelper::sumTimes($data["total"]["time"], $row["time"]); } // set totals if ($data["total"]["length"] > 0) { $data["total"]["speed"] = ELRHMiscHelper::getAVGSpeed($data["total"]["time"], $data["total"]["length"]); } $data["total"]["time"] = substr_replace($data["total"]["time"], '.', strrpos($data["total"]["time"], ':'), 1); // change : to . for miliseconds // round length if needed if ($data["total"]["length"] > 9999) { $data["total"]["length"] = round($data["total"]["length"] / 1000, 2) . " km"; } else { $data["total"]["length"] .= " m"; } // save prepared data for renderer return $data; }