content is the same as browser cache // So send a 304 Not Modified response header and exit if($_SERVER['HTTP_IF_NONE_MATCH'] == $etag) { http_response_code(304); exit(); } } */ include("import_runners.php"); function registration_table($runners) { parse_str($_SERVER['QUERY_STRING'], $query); $matpost = $query["control"]; $runners_filtered = []; if ($query["filter"]) { for ($i = 0; $i < count($runners); $i++) { if (filter_runners($runners[$i], $query["filter"])) { array_push($runners_filtered, $runners[$i]); } } $runners = $runners_filtered; } if (count($runners) == 0) { $runner_id = $query["filter"]; $response = "
Fant ingen løper med dette startnummeret. Registrer likevell?
"; echo($response); } else { echo(" # Navn Tid "); for ($i = 0; $i < count($runners); $i++) { $runner = $runners[$i]; // Klokkeslett for denne posten if ($runner->splits[$matpost-1] != false) { $tid_passering = $GLOBALS['start_time']->diff($runner->splits[$matpost-1])->format('%H:%I:%S'); } else { $tid_passering = ""; } if ($runner->get_control() == $matpost-1) { // Løperen har vært på denne matposten og vi farger raden grønn $button = ""; $cssclass = "class=\"bg-success\""; } elseif ($runner->get_control() > $matpost-1) { // Løperen har vært på denne matposten og vi farger raden grønn $button = ""; $cssclass = "class=\"bg-active\""; } else { $button = ""; $cssclass = ""; } echo ("$runner->id$runner->name$tid_passering$button\n"); } echo(""); } } function participants_table($runners) { usort($runners, "cmp_course"); $kadaverløpere = 0; $minikadaverløpere = 0; for ($i = 0; $i < count($runners); $i++) { if ($runners[$i]->course == "Kadaverløpet") { $kadaverløpere++; } elseif ($runners[$i]->course == "Minikadaver'n") { $minikadaverløpere++; } } echo("
$kadaverløpere påmeldt Kadaverløpet
$minikadaverløpere påmeldte i Minikadaver'n
"); echo(""); for ($i = 0; $i < count($runners); $i++) { $runner = $runners[$i]; echo ("\n"); } echo("
S.nr Navn Klubb/Forening Variant
$runner->id$runner->name$runner->club$runner->course
"); } function liveresult_table($runners) { usort($runners, "cmp"); usort($runners, "cmp_course"); $kadaver_table = "
"; $minikadaver_table = "
# Navn 1. matpost 2. matpost Mål Etter Sprekkindeks
"; $kadaver_num = 0; $mini_num = 0; for ($i = 0; $i < count($runners); $i++) { $runner = $runners[$i]; $tid_maal = ""; $sprekk = ""; if ($runner->splits[2] != false) { $tid_maal = $GLOBALS['start_time']->diff($runner->splits[2])->format('%H:%I:%S'); } if ($runner->course == "Kadaverløpet") { $kadaver_num++; $tid_1_mat = ""; if ($runner->splits[0] != false) { // https://www.php.net/manual/en/class.dateinterval.php $tid_1_mat = $GLOBALS['start_time']->diff($runner->splits[0])->format('%H:%I:%S'); } $tid_2_mat = ""; //tid etter vinner $tid_etter = ""; if ($runner->splits[2] != false && $kadaver_num > 0) { $tid_etter = $runners[0]->splits[2]->diff($runner->splits[2])->format('%I:%S'); } //sprekkindekss if ($runner->splits[1] != false) { $tid_2_mat = $GLOBALS['start_time']->diff($runner->splits[1])->format('%H:%I:%S'); try { $sprekk = ""; } catch (DivisionByZeroError $e){ $sprekk = ""; } catch (TypeError $e) { $sprekk = ""; } } $matposter = ""; } else { $mini_num++; } if ($runner->course == "Kadaverløpet") { $kadaver_table .= "$matposter$sprekk\n"; } elseif ($runner->course == "Minikadaver'n") { $minikadaver_table .= "\n"; } } $kadaver_table .= "
# Navn Mål
" . number_format(100*(time_diff($GLOBALS['start_time'],$runner->splits[2]) - time_diff($GLOBALS['start_time'],$runner->splits[1])) / time_diff($GLOBALS['start_time'],$runner->splits[2]), 0) . "%$tid_1_mat$tid_2_mat
". $kadaver_num .".$runner->name$tid_maal$tid_etter
". "" .".$runner->name$tid_maal
\n"; $minikadaver_table .= ""; echo($kadaver_table . $minikadaver_table); } $runners = read_runners_from_csv(); if (!isset($query)){ parse_str($_SERVER['QUERY_STRING'], $query); if ($query["type"] == "registrering"){ registration_table($runners); } elseif ($query["type"] == "paameldte") { participants_table($runners); } elseif ($query["type"] == "liveresultater") { liveresult_table($runners); } }