prepare("SELECT * FROM `tournaments` WHERE `name` = ? AND `year` = $YEAR;"); $response->execute([$tournament_name]); $data = $response->fetch(); if ($data === false) require_once "404.php"; $orgas_req = $DB->query("SELECT `users`.`id` AS `id`, `surname`, `first_name` FROM `users` JOIN `organizers` ON `users`.`id` = `organizer` WHERE `tournament` = " . $data["id"] . ";"); $orgas = []; $orgas_id = []; while (($orga_data = $orgas_req->fetch()) !== false) { $orgas[] = $orga_data["first_name"] . " " . $orga_data["surname"]; $orgas_id[] = $orga_data["id"]; } if (isset($_GET["modifier"]) && $_SESSION["role"] != "ADMIN" && !in_array($_SESSION["user_id"], $orgas_id)) require_once "403.php"; if (isset($_POST["edit_tournament"])) { $error_message = updateTournament(); } if ($data["final"]) $teams_response = $DB->query("SELECT `id`, `name`, `trigram`, `inscription_date`, `validation_status` FROM `teams` WHERE `final_selection` AND `year` = $YEAR;"); else $teams_response = $DB->query("SELECT `id`, `name`, `trigram`, `inscription_date`, `validation_status` FROM `teams` WHERE `tournament` = " . $data["id"] . " AND `year` = $YEAR;"); $orgas_response = $DB->query("SELECT `id`, `surname`, `first_name` FROM `users` WHERE (`role` = 'ORGANIZER' OR `role` = 'ADMIN') AND `year` = '$YEAR';"); function updateTournament() { global $DB, $URL_BASE, $YEAR, $data; $tournament_id = $data["id"]; $name = htmlspecialchars($_POST["name"]); $result = $DB->query("SELECT `id` FROM `tournaments` WHERE `name` = '" . $name . "' AND `id` != $tournament_id AND `year` = '$YEAR';"); if ($result->fetch()) return "Un tournoi existe déjà avec ce nom."; if (!isset($_POST["organizer"]) || sizeof($_POST["organizer"]) == 0) return "Aucun organisateur n'a été choisi."; if ($_SESSION["role"] == "ADMIN") { $organizers = $_POST["organizer"]; $orga_mails = []; foreach ($organizers as $orga) { $result = $DB->query("SELECT `role`, `email` FROM `users` WHERE `id` = '" . $orga . "' AND `year` = '$YEAR';"); $data = $result->fetch(); if ($data === FALSE) return "L'organisateur spécifié n'existe pas."; if ($data["role"] != "ORGANIZER" && $data["role"] != "ADMIN") return "L'organisateur indiqué ne peut pas organiser de tournoi."; $orga_mails[] = $data["email"]; } } try { $size = intval(htmlspecialchars($_POST["size"])); } catch (Exception $ex) { return "Le nombre d'équipes indiqué n'est pas un entier valide."; } if ($size < 3 || $size > 12) return "Un tournoi doit comporter entre 3 et 12 équipes."; $place = htmlspecialchars($_POST["place"]); try { $price = intval(htmlspecialchars($_POST["price"])); } catch (Throwable $t) { return "Le tarif pour les participants n'est pas un nombre valide."; } if ($price < 0) return "Le TFJM² ne va pas payer les élèves pour venir."; if ($price > 50) return "Soyons raisonnable sur le prix."; $date_start = htmlspecialchars($_POST["date_start"]); $date_start_parsed = date_parse_from_format("yyyy-mm-dd", $date_start); $date_end = htmlspecialchars($_POST["date_end"]); $date_end_parsed = date_parse_from_format("yyyy-mm-dd", $date_end); $date_inscription = htmlspecialchars($_POST["date_inscription"]); $time_inscription = htmlspecialchars($_POST["time_inscription"]); $date_inscription_parsed = date_parse_from_format("yyyy-mm-dd", $date_inscription . ' ' . $time_inscription); $date_solutions = htmlspecialchars($_POST["date_solutions"]); $time_solutions = htmlspecialchars($_POST["time_solutions"]); $date_solutions_parsed = date_parse_from_format("yyyy-mm-dd", $date_solutions . ' ' . $time_solutions); $date_syntheses = htmlspecialchars($_POST["date_syntheses"]); $time_syntheses = htmlspecialchars($_POST["time_syntheses"]); $date_syntheses_parsed = date_parse_from_format("yyyy-mm-dd", $date_syntheses . ' ' . $time_syntheses); if (!$date_start_parsed || !$date_end_parsed || !$date_inscription_parsed || !$date_solutions_parsed || !$date_syntheses_parsed) return "Une date est mal formée."; $description = htmlspecialchars($_POST["description"]); $req = $DB->prepare("UPDATE `tournaments` SET `name` = ?, `size` = ?, `place` = ?, `price` = ?, `description` = ?, `date_start` = ?, `date_end` = ?, `date_inscription` = ?, `date_solutions` = ?, `date_syntheses` = ? WHERE `id` = $tournament_id;"); $req->execute([$name, $size, $place, $price, $description, $date_start, $date_end, "$date_inscription $time_inscription", "$date_solutions $time_solutions", "$date_syntheses $time_syntheses"]); if ($_SESSION["role"] == "ADMIN") { $DB->exec("DELETE FROM `organizers` WHERE `tournament` = $tournament_id;"); foreach ($organizers as $orga) { $req = $DB->prepare("INSERT INTO `organizers`(`organizer`, `tournament`) VALUES(?, ?);"); $req->execute([$orga, $tournament_id]); } } header("Location: $URL_BASE/tournoi/" . $name); exit(); } ?>

Tournoi de

Organisateur= 2 ? 's' : '' ?> : $orgas[$i]"; else $s .= $orgas[$i]; $s .= ", "; } echo substr($s, 0, -2); ?>
Nombre d'équipes maximal :
Lieu :
Prix par partipant :
Dates : Du au
Clôture des inscriptions :
Date limite d'envoi des solutions :
Date limite d'envoi des notes de synthèse :
Description :
Ce tournoi est la finale nationale du TFJM² 2020.
"; ?> /modifier">Éditer le tournoi

Équipes inscrites à ce tournoi :

fetch()) != false) { ?>
Équipe Trigramme Date d'inscription État de validation de l'inscription
" . $team_data["name"] . ""; else echo $team_data["name"]; ?>
Équipe Trigramme Date d'inscription État de validation de l'inscription
" required />
" required />
" required />
" required />
Du " required /> au " required />
" required /> " required />
" required /> " required />
" required /> " required />