mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-11-04 08:22:10 +01:00 
			
		
		
		
	Amélioration des fichiers d'ajout de tournoi
This commit is contained in:
		@@ -42,6 +42,7 @@ $ROUTES["^solutions/?$"] = ["server_files/controllers/solutions.php"];
 | 
				
			|||||||
$ROUTES["^solutions_orga/?$"] = ["server_files/controllers/solutions_orga.php"];
 | 
					$ROUTES["^solutions_orga/?$"] = ["server_files/controllers/solutions_orga.php"];
 | 
				
			||||||
$ROUTES["^syntheses/?$"] = ["server_files/controllers/syntheses.php"];
 | 
					$ROUTES["^syntheses/?$"] = ["server_files/controllers/syntheses.php"];
 | 
				
			||||||
$ROUTES["^syntheses_orga/?$"] = ["server_files/controllers/syntheses_orga.php"];
 | 
					$ROUTES["^syntheses_orga/?$"] = ["server_files/controllers/syntheses_orga.php"];
 | 
				
			||||||
 | 
					$ROUTES["^tournoi/(.*)/(modifier)/?$"] = ["server_files/controllers/tournoi.php", "name", "modifier"];
 | 
				
			||||||
$ROUTES["^tournoi/(.*)/?$"] = ["server_files/controllers/tournoi.php", "name"];
 | 
					$ROUTES["^tournoi/(.*)/?$"] = ["server_files/controllers/tournoi.php", "name"];
 | 
				
			||||||
$ROUTES["^tournois/?$"] = ["server_files/controllers/tournois.php"];
 | 
					$ROUTES["^tournois/?$"] = ["server_files/controllers/tournois.php"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,106 +5,100 @@ if (!isset($_SESSION["role"]) || $_SESSION["role"] != Role::ADMIN)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
$orgas_response = $DB->query("SELECT `id`, `surname`, `first_name` FROM `users` WHERE (`role` = 'ORGANIZER' OR `role` = 'ADMIN') AND `year` = '$YEAR';");
 | 
					$orgas_response = $DB->query("SELECT `id`, `surname`, `first_name` FROM `users` WHERE (`role` = 'ORGANIZER' OR `role` = 'ADMIN') AND `year` = '$YEAR';");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$has_error = false;
 | 
				
			||||||
 | 
					$error_message = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (isset($_POST["submitted"])) {
 | 
					if (isset($_POST["submitted"])) {
 | 
				
			||||||
    $error_message = registerTournament();
 | 
					    $tournament = new NewTournament($_POST);
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					    	$tournament->makeVerifications();
 | 
				
			||||||
 | 
					    	$tournament->register();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						catch (AssertionError $e) {
 | 
				
			||||||
 | 
					    	$has_error = true;
 | 
				
			||||||
 | 
					    	$error_message = $e->getMessage();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function registerTournament() {
 | 
					class NewTournament {
 | 
				
			||||||
    global $DB, $YEAR, $MAIL_ADDRESS;
 | 
						public $name;
 | 
				
			||||||
 | 
						public $organizers;
 | 
				
			||||||
 | 
						public $size;
 | 
				
			||||||
 | 
						public $place;
 | 
				
			||||||
 | 
						public $price;
 | 
				
			||||||
 | 
						public $date_start;
 | 
				
			||||||
 | 
						public $date_end;
 | 
				
			||||||
 | 
						public $date_inscription;
 | 
				
			||||||
 | 
						public $time_inscription;
 | 
				
			||||||
 | 
						public $date_solutions;
 | 
				
			||||||
 | 
						public $time_solutions;
 | 
				
			||||||
 | 
						public $date_syntheses;
 | 
				
			||||||
 | 
						public $time_syntheses;
 | 
				
			||||||
 | 
						public $description;
 | 
				
			||||||
 | 
						public $final;
 | 
				
			||||||
 | 
						public $tournament;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $name = htmlspecialchars($_POST["name"]);
 | 
						public function __construct($data)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
    $result = $DB->query("SELECT `id` FROM `tournaments` WHERE `name` = '" . $name . "' AND `year` = '$YEAR';");
 | 
							foreach ($data as $key => $value)
 | 
				
			||||||
    if ($result->fetch())
 | 
								$this->$key = ($key == "organizers" ? $value : htmlspecialchars($value));
 | 
				
			||||||
        return "Un tournoi existe déjà avec ce nom.";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!isset($_POST["organizer"]) || sizeof($_POST["organizer"]) == 0)
 | 
					 | 
				
			||||||
        return "Aucun organisateur n'a été choisi.";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    $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"] != Role::ORGANIZER && $data["role"] != Role::ADMIN)
 | 
					 | 
				
			||||||
			return "L'organisateur indiqué ne peut pas organiser de tournoi.";
 | 
					 | 
				
			||||||
		$orga_mails[] = $data["email"];
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    try {
 | 
						public function makeVerifications()
 | 
				
			||||||
        $size = intval(htmlspecialchars($_POST["size"]));
 | 
						{
 | 
				
			||||||
    }
 | 
							global $FINAL;
 | 
				
			||||||
    catch (Exception $ex) {
 | 
					 | 
				
			||||||
        return "Le nombre d'équipes indiqué n'est pas un entier valide.";
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ($size < 3 || $size > 12)
 | 
							ensure($this->name != null && $this->name != "", "Le nom est invalide.");
 | 
				
			||||||
        return "Un tournoi doit comporter entre 3 et 12 équipes.";
 | 
							ensure(!tournamentExists($this->name), "Un tournoi existe déjà avec ce nom.");
 | 
				
			||||||
 | 
							ensure(sizeof($this->organizers) > 0, "Aucun organisateur n'a été choisi.");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $place = htmlspecialchars($_POST["place"]);
 | 
							$orgas = [];
 | 
				
			||||||
 | 
							foreach ($this->organizers as $orga_id) {
 | 
				
			||||||
 | 
								$orga = User::fromId($orga_id);
 | 
				
			||||||
 | 
								ensure($orga != null, "Un organisateur spécifié n'existe pas.");
 | 
				
			||||||
 | 
								ensure($orga->getRole() == Role::ORGANIZER || $orga->getRole() == Role::ADMIN, "Une personne indiquée ne peut pas organiser de tournoi.");
 | 
				
			||||||
 | 
								$orgas[] = $orga;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							$this->organizers = $orgas;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    try {
 | 
							ensure(preg_match("#[0-9]*#", $this->size), "Le nombre d'équipes indiqué n'est pas un nombre valide.");
 | 
				
			||||||
        $price = intval(htmlspecialchars($_POST["price"]));
 | 
							$this->size = intval($this->size);
 | 
				
			||||||
    }
 | 
							ensure($this->size >= 3 && $this->size <= 15, "Un tournoi doit avoir au moins 3 et au plus 15 équipes.");
 | 
				
			||||||
    catch (Throwable $t) {
 | 
					 | 
				
			||||||
        return "Le tarif pour les participants n'est pas un nombre valide.";
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ($price < 0)
 | 
							ensure(preg_match("#[0-9]*#", $this->price), "Le tarif pour les participants n'est pas un entier valide.");
 | 
				
			||||||
        return "Le TFJM² ne va pas payer les élèves pour venir.";
 | 
							$this->price = intval($this->price);
 | 
				
			||||||
 | 
							ensure($this->size >= 0, "Le TFJM² ne va pas payer les élèves pour venir.");
 | 
				
			||||||
 | 
							ensure($this->size <= 50, "Soyons raisonnable sur le prix.");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ($price > 50)
 | 
							ensure(dateWellFormed($this->date_start), "La date de début n'est pas valide.");
 | 
				
			||||||
        return "Soyons raisonnable sur le prix.";
 | 
							ensure(dateWellFormed($this->date_end), "La date de fin n'est pas valide.");
 | 
				
			||||||
 | 
							ensure(dateWellFormed($this->date_inscription . " " . $this->time_inscription), "La date de clôture des inscriptions n'est pas valide.");
 | 
				
			||||||
 | 
							ensure(dateWellFormed($this->date_solutions . " " . $this->time_solutions), "La date limite de remise des solutions n'est pas valide.");
 | 
				
			||||||
 | 
							ensure(dateWellFormed($this->date_syntheses . " " . $this->time_syntheses), "La date limite de remise des notes de synthèse n'est pas valide.");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $date_start = htmlspecialchars($_POST["date_start"]);
 | 
							$this->final = $this->final ? 1 : 0;
 | 
				
			||||||
    $date_start_parsed = date_parse_from_format("yyyy-mm-dd", $date_start);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $date_end = htmlspecialchars($_POST["date_end"]);
 | 
							ensure(!$this->final || $FINAL == NULL, "Une finale nationale est déjà enregistrée.");
 | 
				
			||||||
    $date_end_parsed = date_parse_from_format("yyyy-mm-dd", $date_end);
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $date_inscription = htmlspecialchars($_POST["date_inscription"]);
 | 
						public function register()
 | 
				
			||||||
    $time_inscription = htmlspecialchars($_POST["time_inscription"]);
 | 
						{
 | 
				
			||||||
    $date_inscription_parsed = date_parse_from_format("yyyy-mm-dd", $date_inscription . ' ' . $time_inscription);
 | 
							global $DB, $YEAR;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $date_solutions = htmlspecialchars($_POST["date_solutions"]);
 | 
							$req = $DB->prepare("INSERT INTO `tournaments` (`name`, `size`, `place`, `price`, `description`, 
 | 
				
			||||||
    $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"]);
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    $final = isset($_POST["final"]) && $_POST["final"];
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    if ($final && $DB->query("SELECT `id` FROM `tournaments` WHERE `final` = true AND `year` = $YEAR;")->fetch() !== false)
 | 
					 | 
				
			||||||
        return "Une finale est déjà enregistrée.";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    $req = $DB->prepare("INSERT INTO `tournaments` (`name`, `size`, `place`, `price`, `description`, 
 | 
					 | 
				
			||||||
                           `date_start`, `date_end`, `date_inscription`, `date_solutions`, `date_syntheses`, `final`, `year`)
 | 
					                           `date_start`, `date_end`, `date_inscription`, `date_solutions`, `date_syntheses`, `final`, `year`)
 | 
				
			||||||
                           VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
 | 
					                           VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
 | 
				
			||||||
    $req->execute([$name, $size, $place, $price, $description, $date_start, $date_end,
 | 
							$req->execute([$this->name, $this->size, $this->place, $this->price, $this->description, $this->date_start, $this->date_end,
 | 
				
			||||||
        "$date_inscription $time_inscription", "$date_solutions $time_solutions", "$date_syntheses $time_syntheses", $final, $YEAR]);
 | 
								"$this->date_inscription $this->time_inscription", "$this->date_solutions $this->time_solutions", "$this->date_syntheses $this->time_syntheses", $this->final ? 1 : 0, $YEAR]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $req = $DB->query("SELECT `id` FROM `tournaments` WHERE `name` = '$name' AND `year` = $YEAR;");
 | 
							$this->tournament = Tournament::fromName($this->name);
 | 
				
			||||||
    $tournament_id = $req->fetch()["id"];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    foreach ($organizers as $orga) {
 | 
							foreach ($this->organizers as $organizer) {
 | 
				
			||||||
        $req = $DB->prepare("INSERT INTO `organizers`(`organizer`, `tournament`) VALUES(?, ?);");
 | 
								$req = $DB->prepare("INSERT INTO `organizers`(`organizer`, `tournament`) VALUES(?, ?);");
 | 
				
			||||||
        $req->execute([$orga, $tournament_id]);
 | 
								$req->execute([$organizer->getId(), $this->tournament->getId()]);
 | 
				
			||||||
    }
 | 
								sendAddOrganizerForTournamentMail($organizer, $this->tournament);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
    foreach ($orga_mails as $orga_mail)
 | 
						}
 | 
				
			||||||
        mail($orga_mail, "Organisateur TFJM² " . $name, "Vous venez d'être promu organisateur du tournoi " . $name . " pour le TFJM² $YEAR !", "From: $MAIL_ADDRESS");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return false;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require_once "server_files/views/ajouter_tournoi.php";
 | 
					require_once "server_files/views/ajouter_tournoi.php";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,7 +30,7 @@ else
 | 
				
			|||||||
$orgas_response = $DB->query("SELECT `id`, `surname`, `first_name` FROM `users` WHERE (`role` = 'ORGANIZER' OR `role` = 'ADMIN') 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() {
 | 
					function updateTournament() {
 | 
				
			||||||
	global $DB, $URL_BASE, $YEAR, $tournament;
 | 
						global $DB, $URL_BASE, $YEAR, $tournament, $orgas;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $name = htmlspecialchars($_POST["name"]);
 | 
					    $name = htmlspecialchars($_POST["name"]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -43,7 +43,7 @@ function updateTournament() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if ($_SESSION["role"] == Role::ADMIN) {
 | 
						if ($_SESSION["role"] == Role::ADMIN) {
 | 
				
			||||||
		$organizers = $_POST["organizer"];
 | 
							$organizers = $_POST["organizer"];
 | 
				
			||||||
		$orga_mails = [];
 | 
							$orgas = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		foreach ($organizers as $orga_id) {
 | 
							foreach ($organizers as $orga_id) {
 | 
				
			||||||
			$orga = User::fromId($orga_id);
 | 
								$orga = User::fromId($orga_id);
 | 
				
			||||||
@@ -51,7 +51,7 @@ function updateTournament() {
 | 
				
			|||||||
				return "L'organisateur spécifié n'existe pas.";
 | 
									return "L'organisateur spécifié n'existe pas.";
 | 
				
			||||||
			if ($orga->getRole() != Role::ORGANIZER && $orga->getRole() != Role::ADMIN)
 | 
								if ($orga->getRole() != Role::ORGANIZER && $orga->getRole() != Role::ADMIN)
 | 
				
			||||||
				return "L'organisateur indiqué ne peut pas organiser de tournoi.";
 | 
									return "L'organisateur indiqué ne peut pas organiser de tournoi.";
 | 
				
			||||||
			$orga_mails[] = $orga->getEmail();
 | 
								$orgas[] = $orga;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -111,7 +111,7 @@ function updateTournament() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if ($_SESSION["role"] == Role::ADMIN) {
 | 
						if ($_SESSION["role"] == Role::ADMIN) {
 | 
				
			||||||
		$DB->exec("DELETE FROM `organizers` WHERE `tournament` = " . $tournament->getId() . ";");
 | 
							$DB->exec("DELETE FROM `organizers` WHERE `tournament` = " . $tournament->getId() . ";");
 | 
				
			||||||
		foreach ($organizers as $orga) {
 | 
							foreach ($orgas as $orga) {
 | 
				
			||||||
			$req = $DB->prepare("INSERT INTO `organizers`(`organizer`, `tournament`) VALUES(?, ?);");
 | 
								$req = $DB->prepare("INSERT INTO `organizers`(`organizer`, `tournament`) VALUES(?, ?);");
 | 
				
			||||||
			$req->execute([$orga->getId(), $tournament->getId()]);
 | 
								$req->execute([$orga->getId(), $tournament->getId()]);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -111,4 +111,12 @@ function trigramExists($trigram) {
 | 
				
			|||||||
	$req = $DB->prepare("SELECT `id` FROM `teams` WHERE `trigram` = ? AND `year` = '$YEAR';");
 | 
						$req = $DB->prepare("SELECT `id` FROM `teams` WHERE `trigram` = ? AND `year` = '$YEAR';");
 | 
				
			||||||
	$req->execute([$trigram]);
 | 
						$req->execute([$trigram]);
 | 
				
			||||||
	return $req->fetch();
 | 
						return $req->fetch();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function tournamentExists($name) {
 | 
				
			||||||
 | 
						global $DB, $YEAR;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						$req = $DB->prepare("SELECT `id` FROM `tournaments` WHERE `name` = ? AND `year` = '$YEAR';");
 | 
				
			||||||
 | 
						$req->execute([$name]);
 | 
				
			||||||
 | 
						return $req->fetch();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -61,5 +61,21 @@ function sendAddOrganizerMail($new_orga)
 | 
				
			|||||||
	$content = preg_replace("#{SURNAME}#", $new_orga->surname, $content);
 | 
						$content = preg_replace("#{SURNAME}#", $new_orga->surname, $content);
 | 
				
			||||||
	$content = preg_replace("#{PASSWORD}#", $new_orga->password, $content);
 | 
						$content = preg_replace("#{PASSWORD}#", $new_orga->password, $content);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	sendMail($new_orga->email, "Inscription au TFJM² $YEAR", $content);
 | 
						sendMail($new_orga->email, "Ajout d'un organisateur -- TFJM² $YEAR", $content);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @param $organizer User
 | 
				
			||||||
 | 
					 * @param $tournament Tournament
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function sendAddOrganizerForTournamentMail($organizer, $tournament)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						global $LOCAL_PATH, $YEAR;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						$content = file_get_contents("$LOCAL_PATH/server_files/services/mail_templates/add_organizer_for_tournament.html");
 | 
				
			||||||
 | 
						$content = preg_replace("#{FIRST_NAME}#", $organizer->getFirstName(), $content);
 | 
				
			||||||
 | 
						$content = preg_replace("#{SURNAME}#", $organizer->getSurname(), $content);
 | 
				
			||||||
 | 
						$content = preg_replace("#{TOURNAMENT_NAME}#", $tournament->getName(), $content);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						sendMail($organizer->getEmail(), "Ajout d'un organisateur pour le tournoi " . $tournament->getName() . "-- TFJM² $YEAR", $content);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html lang="en">
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <meta charset="UTF-8">
 | 
				
			||||||
 | 
					    <title>Organisateur du tournoi de {TOURNAMENT_NAME} -- TFJM²</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					Bonjour {FIRST_NAME} {SURNAME},<br />
 | 
				
			||||||
 | 
					<br />
 | 
				
			||||||
 | 
					Vous venez d'être promu organisateur du tournoi <a href="{URL_BASE}/tournoi/{TOURNAMENT_NAME}">{TOURNAMENT_NAME}</a> du TFJM<sup>2</sup> {YEAR}.<br />
 | 
				
			||||||
 | 
					<br />
 | 
				
			||||||
 | 
					Cordialement,<br />
 | 
				
			||||||
 | 
					<br />
 | 
				
			||||||
 | 
					Le comité national d'organisation du TFJM<sup>2</sup>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
@@ -12,6 +12,6 @@ function formatDate($date = NULL, $with_time = false) {
 | 
				
			|||||||
	return strftime("%d %B %G" . ($with_time ? " %H:%M" : ""), strtotime($date));
 | 
						return strftime("%d %B %G" . ($with_time ? " %H:%M" : ""), strtotime($date));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function dateWellFormed($date, $format = "yyyy-mm-dd") {
 | 
					function dateWellFormed($date, $with_time = false) {
 | 
				
			||||||
	return date_parse_from_format($format, $date) !== false;
 | 
						return date_parse_from_format($with_time ? "yyyy-mm-dd HH-MM:ss" : "yy-mm-dd", $date) !== false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,10 +1,11 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
require_once "header.php";
 | 
					require_once "header.php";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (isset($error_message)) {
 | 
					if (isset($tournament)) {
 | 
				
			||||||
	if ($error_message !== false) {
 | 
						if ($has_error) {
 | 
				
			||||||
		echo "<h2>Erreur : " . $error_message . "</h2>";
 | 
							echo "<h2>Erreur : " . $error_message . "</h2>";
 | 
				
			||||||
	} else {
 | 
						}
 | 
				
			||||||
 | 
						else {
 | 
				
			||||||
		echo "<h2>Tournoi de " . htmlspecialchars($_POST["name"]) . " ajouté avec succès !</h2>";
 | 
							echo "<h2>Tournoi de " . htmlspecialchars($_POST["name"]) . " ajouté avec succès !</h2>";
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}?>
 | 
					}?>
 | 
				
			||||||
@@ -23,10 +24,10 @@ if (isset($error_message)) {
 | 
				
			|||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<td>
 | 
								<td>
 | 
				
			||||||
				<label for="organizer">Organisateur :</label>
 | 
									<label for="organizers">Organisateurs :</label>
 | 
				
			||||||
			</td>
 | 
								</td>
 | 
				
			||||||
			<td>
 | 
								<td>
 | 
				
			||||||
				<select style="width: 100%;" id="organizer" name="organizer[]" multiple size="4" required>
 | 
									<select style="width: 100%;" id="organizers" name="organizers[]" multiple size="4" required>
 | 
				
			||||||
					<?php
 | 
										<?php
 | 
				
			||||||
					while (($data = $orgas_response->fetch()) !== FALSE) {
 | 
										while (($data = $orgas_response->fetch()) !== FALSE) {
 | 
				
			||||||
						echo "<option value=\"" . $data["id"] . "\">" . $data["first_name"] . " " . $data["surname"] . "</option>\n";
 | 
											echo "<option value=\"" . $data["id"] . "\">" . $data["first_name"] . " " . $data["surname"] . "</option>\n";
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user