Merge branch '2-add-a-home-page'

# Conflicts:
#	docker-compose.yml
#	server_files/config.php
#	server_files/views/connexion.php
#	setup/create_database.sql
This commit is contained in:
Yohann D'ANELLO 2019-10-31 15:13:45 +01:00
commit a368dfbead
17 changed files with 481 additions and 532 deletions

View File

@ -1,80 +1,8 @@
body {
display: flex;
:root {
--navbar-height: 32px;
}
html, body {
height: 100%;
width: 100%;
margin: 0;
}
#menu {
list-style-type: none;
margin: 0;
padding: 0;
width: 220px;
background-color: #f1f1f1;
height: 100%;
overflow: auto;
flex-grow: 0;
}
#menu a {
#navbar-logo {
height: var(--navbar-height);
display: block;
color: #000;
padding: 10px 20px;
text-decoration: none;
}
#menu a.active {
background-color: #4CAF50;
color: white;
}
#menu a:hover:not(.active) {
background-color: #555;
color: white;
}
#menu-logo img {
width: calc(100% - 40px);
margin: 40px auto;
display: block;
}
#main-container {
margin: 0;
flex-grow: 1;
height: 100%;
overflow-y: scroll;
}
#main-content {
padding-top: 100px;
padding-bottom: 100px;
margin: 0 auto;
max-width: 1000px;
text-align: justify;
}
@media only screen and (max-width: 700px) {
body {
flex-direction: column;
height: auto;
}
#menu {
height: auto;
width: 100%;
padding-bottom: 20px;
}
#menu-logo img {
height: 70px;
padding-left: 7px;
}
#menu a {
text-align: center;
}
#main-content {
padding: 100px 16px;
}
}
}

View File

@ -3,19 +3,19 @@
* Config options
*/
$YEAR = $_ENV["TFJM_YEAR"];
$URL_BASE = $_ENV["TFJM_URL_BASE"];
$LOCAL_PATH = $_ENV["TFJM_LOCAL_PATH"];
$MAIL_DOMAIN = $_ENV["TFJM_MAIL_DOMAIN"];
$YEAR = getenv("TFJM_YEAR");
$URL_BASE = getenv("TFJM_URL_BASE");
$LOCAL_PATH = getenv("TFJM_LOCAL_PATH");
$MAIL_DOMAIN = getenv("TFJM_MAIL_DOMAIN");
/**
* DB infos
*/
$DB_HOST = $_ENV["TFJM_DB_HOST"];
$DB_NAME = $_ENV["TFJM_DB_NAME"];
$DB_USER = $_ENV["TFJM_DB_USER"];
$DB_PASSWORD = $_ENV["TFJM_DB_PASSWORD"];
$DB_HOST = getenv("TFJM_DB_HOST");
$DB_NAME = getenv("TFJM_DB_NAME");
$DB_USER = getenv("TFJM_DB_USER");
$DB_PASSWORD = getenv("TFJM_DB_PASSWORD");
try {
$DB = new PDO("mysql:host=$DB_HOST;dbname=$DB_NAME;charset=utf8", "$DB_USER", "$DB_PASSWORD", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

View File

@ -185,7 +185,7 @@ function printDocuments($documents)
$first_name = $user->getFirstName();
$name = DocumentType::getTranslatedName($document->getType());
$version = $document->getVersion();
echo "$name de $first_name $surname (version $version) : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />";
echo "$name de $first_name $surname (version $version) : <a href=\"/file/$file_id\">Télécharger</a><br />";
}
}

View File

@ -1,100 +1,64 @@
<?php
require_once "header.php";
if ($has_error)
echo "<h2>Erreur : " . $error_message . "</h2>";
else {
if (isset($recuperate_account))
echo "<h2>Le mail de récupération de mot de passe a bien été envoyé.</h2>";
elseif (isset($reset_password))
echo "<h2>Le mot de passe a bien été changé. Vous pouvez désormais vous connecter.</h2>";
elseif (isset($_GET["confirmation-mail"]))
echo "<h2>Le mail a bien été renvoyé.</h2>";
else if (isset($logging_in_user)) {
echo "<h2>Connexion réussie !</h2>";
require_once "footer.php";
} else if (isset($_SESSION["user_id"])) {
echo "<h2>Vous êtes déjà connecté.</h2>";
require_once "footer.php";
}
}
if (isset($_GET["mdp_oublie"])) { ?>
<form method="POST">
<table style="width: 100%;">
<tbody>
<tr>
<td style="width: 30%;">
<label for="email">E-mail associée au compte :</label>
</td>
<td style="width: 70%;">
<input style="width: 100%;" type="email" id="email" name="email"/>
</td>
</tr>
<tr>
<td colspan="2">
<input style="width: 100%;" type="submit" name="forgotten_password"
value="Envoyer l'e-mail de récupération"/>
</td>
</tr>
</tbody>
</table>
</form>
<?php } elseif (isset($_GET["reset_password"])) {
if ($reset_password->user != null) { ?>
<form method="POST">
<table style="width: 100%;">
<tbody>
<tr>
<td style="width: 30%;">
<label for="password">Nouveau mot de passe :</label>
</td>
<td style="width: 70%;">
<input style="width: 100%;" type="password" id="password" name="password"/>
</td>
</tr>
<tr>
<td style="width: 30%;">
<label for="confirm_password">Confirmer le mot de passe :</label>
</td>
<td style="width: 70%;">
<input style="width: 100%;" type="password" id="confirm_password" name="confirm_password"/>
</td>
</tr>
<tr>
<td colspan="2">
<input style="width: 100%;" type="submit" name="reset_password"
value="Changer le mot de passe"/>
</td>
</tr>
</tbody>
</table>
</form>
<?php }
} elseif (isset($_GET["confirmation-mail"])) { ?>
if (isset($error_message) && $error_message === FALSE) {
if (isset($recuperate_account))
echo "<div class=\"alert alert-success\">Le mail de récupération de mot de passe a bien été envoyé.</div>";
else if (isset($reset_password))
echo "<div class=\"alert alert-success\">Le mot de passe a bien été changé. Vous pouvez désormais vous connecter.</div>";
else if (isset($_GET["confirmation-mail"]))
echo "<div class=\"alert alert-success\">Le mail a bien été renvoyé.</div>";
else if (isset($logging_in_user))
echo "<div class=\"alert alert-success\">Connexion réussie !</div>";
} else if (isset($_SESSION["user_id"])) { ?>
<div class="alert alert-danger">Vous êtes déjà connecté !</div>
<?php } else { ?>
<form method="POST">
<input type="hidden" name="submitted" value="true"/>
<table style="width: 100%;">
<tr>
<td style="width: 30%;"><label for="email">E-mail :</label></td>
<td style="width: 70%;"><input style="width: 100%;" type="email" id="email" name="email"
value="<?php if (isset($email)) echo $email ?>"/></td>
</tr>
<tr>
<td><label for="password">Mot de passe :</label></td>
<td><input style="width: 100%;" type="password" id="password" name="password"/></td>
</tr>
<tr>
<td colspan="2">
<!--suppress HtmlUnknownTarget -->
<a href="<?= $URL_BASE ?>/connexion/mdp_oublie">Mot de passe oublié ?</a>
</td>
</tr>
<tr>
<td colspan="2"><input style="width: 100%;" type="submit" value="Se connecter"/></td>
</tr>
</table>
</form>
<?php if (isset($_GET["mdp_oublie"])) { ?>
<form method="POST" class="jumbotron mt-5">
<h1 class="display-4">Réinitialisation du mot de passe</h1>
<label for="email">E-mail associée au compte :</label>
<input type="email" class="form-control" id="email" name="email"/>
</div>
<input class="btn btn-lg btn-primary" type="submit" name="forgotten_password"
value="Envoyer l'e-mail de récupération"/>
</form>
<?php } elseif (isset($_GET["reset_password"])) { ?>
<form method="POST" class="jumbotron mt-5">
<h1 class="display-4">Connexion</h1>
<input type="hidden" name="token" value="<?= $_GET["token"] ?>"/>
<div class="form-group">
<label for="password">Nouveau mot de passe :</label>
<input type="password" id="password" name="password" class="form-control" />
</div>
<div class="form-group">
<label for="confirm_password">Confirmer le mot de passe :</label>
<input type="password" id="confirm_password" name="confirm_password" class="form-control" />
</div>
<input type="submit" name="reset_password" class="btn btn-block btn-primary"
value="Changer le mot de passe"/>
</form>
<?php } elseif (isset($_GET["confirmation-mail"])) { ?>
<?php } else { ?>
<form method="POST" class="jumbotron mt-5">
<h1 class="display-4">Connexion</h1>
<hr class="mt-2 mb-4"/>
<input type="hidden" name="submitted" value="true"/>
<div class="form-group">
<label for="email">E-mail :</label>
<input class="form-control" type="email" id="email" name="email"
value="<?php if (isset($email)) echo $email ?>"/>
</div>
<div class="form-group">
<label for="password">Mot de passe :</label>
<input class="form-control" type="password" id="password" name="password"/>
</div>
<input class="btn btn-primary btn-block" type="submit" value="Se connecter"/>
</form>
<div class="alert">
<a href="/connexion/mdp_oublie">Mot de passe oublié ?</a>
</div>
<?php } ?>
<?php } ?>
<?php require_once "footer.php" ?>

View File

@ -4,25 +4,25 @@
Nom de l'équipe : <?= $team->getName() ?><br/>
Trigramme : <?= $team->getTrigram() ?><br/>
Tournoi : <a href="<?= $URL_BASE . "/tournoi/" . $tournament->getName() ?>"><?= $tournament->getName() ?></a><br/>
Tournoi : <a href="<?= "/tournoi/" . $tournament->getName() ?>"><?= $tournament->getName() ?></a><br/>
<?php
for ($i = 1; $i <= 2; ++$i) {
if ($team->getEncadrants()[$i - 1] == NULL)
continue;
$encadrant = User::fromId($team->getEncadrants()[$i - 1]);
$id = $encadrant->getId();
echo "Encadrant $i : <a href=\"$URL_BASE/informations/$id/" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "\">" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "</a><br />";
echo "Encadrant $i : <a href=\"/informations/$id/" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "\">" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "</a><br />";
}
for ($i = 1; $i <= 6; ++$i) {
if ($team->getParticipants()[$i - 1] == NULL)
continue;
$participant = User::fromId($team->getParticipants()[$i - 1]);
$id = $participant->getId();
echo "Participant $i : <a href=\"$URL_BASE/informations/$id/" . $participant->getFirstName() . " " . $participant->getSurname() . "\">" . $participant->getFirstName() . " " . $participant->getSurname() . "</a><br />";
echo "Participant $i : <a href=\"/informations/$id/" . $participant->getFirstName() . " " . $participant->getSurname() . "\">" . $participant->getFirstName() . " " . $participant->getSurname() . "</a><br />";
}
if ($team->isSelectedForFinal()) {
$final_name = $FINAL->getName();
echo "<strong>Équipe sélectionnée pour la <a href=\"$URL_BASE/tournoi/$final_name\">finale nationale</a>.</strong>";
echo "<strong>Équipe sélectionnée pour la <a href=\"/tournoi/$final_name\">finale nationale</a>.</strong>";
}
?>

View File

@ -1,5 +1,3 @@
</div>
</div>
</div>
</body>
</html>

View File

@ -1,76 +1,109 @@
<!DOCTYPE html>
<!--suppress HtmlUnknownTarget -->
<html lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content= "width=device-width, initial-scale=1.0" />
<title>Site d'inscription pour le TFJM² <?= $YEAR ?></title>
<link rel="stylesheet" type="text/css" href="<?= $URL_BASE ?>/style.css"/>
<link REL="shortcut icon" href="<?= $URL_BASE ?>/favicon.ico" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="google-site-verification" content="pCj5PNYVI9sAMZm8T9qoSjRrcXnEPj7tI07hBBfii04" />
<title>Site d'inscription pour le TFJM² <?= $YEAR ?></title>
<link rel="stylesheet" type="text/css" href="/style.css"/>
<link REL="shortcut icon" href="/favicon.ico"/>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" type="text/css" href="https://s3-eu-west-1.amazonaws.com/tfjm2-inscriptions/static/inscription/vendor/bootstrap/css/bootstrap.min.css">
<!-- Custom fonts for this template -->
<link rel="stylesheet" type="text/css" href="https://s3-eu-west-1.amazonaws.com/tfjm2-inscriptions/static/inscription/vendor/font-awesome/css/font-awesome.min.css">
<!-- Plugin CSS -->
<link rel="stylesheet" type="text/css" href="https://s3-eu-west-1.amazonaws.com/tfjm2-inscriptions/static/inscription/vendor/datatables/dataTables.bootstrap4.css">
<!-- Custom styles for this template -->
<link rel="stylesheet" type="text/css" href="https://s3-eu-west-1.amazonaws.com/tfjm2-inscriptions/static/inscription/css2/sb-admin.css">
<!-- Bootstrap -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
<ul id="menu">
<li id="menu-logo"><img src="<?= $URL_BASE ?>/logo.svg" alt="Logo TFJM²"></li>
<li><a href="<?= $URL_BASE ?>/">Accueil</a></li>
<li><a href="<?= $URL_BASE ?>/tournois">Liste des tournois</a></li>
<?php if (!isset($_SESSION["user_id"])) { ?>
<li><a href="<?= $URL_BASE ?>/connexion">Connexion</a></li>
<li><a href="<?= $URL_BASE ?>/inscription">Inscription</a></li>
<?php } else { ?>
<li><a href="<?= $URL_BASE ?>/mon_compte">Mon compte</a></li>
<?php if ($_SESSION["role"] == Role::ENCADRANT || $_SESSION["role"] == Role::PARTICIPANT) { ?>
<?php if ($_SESSION["team"] == NULL) { ?>
<li><a href="<?= $URL_BASE ?>/ajouter_equipe">Ajouter une équipe</a></li>
<li><a href="<?= $URL_BASE ?>/rejoindre_equipe">Rejoindre une équipe</a></li>
<?php } else { ?>
<li><a href="<?= $URL_BASE ?>/mon_equipe">Mon équipe</a></li>
<?php if ($_SESSION["team"]->getValidationStatus() == ValidationStatus::VALIDATED || true) { ?>
<li><a href="https://paypal.me/galaxyoyo42">Paiement</a></li>
<li><a href="<?= $URL_BASE ?>/solutions">Solutions</a></li>
<li><a href="<?= $URL_BASE ?>/syntheses">Notes de synthèse</a></li>
<div class="container.fluid bg-light">
<nav class="navbar navbar-expand-lg navbar-light">
<div class="container">
<a class="navbar-brand" href="/">
<img src="/logo.svg" alt="Logo TFJM²" id="navbar-logo">
</a>
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a href="/" class="nav-link">Accueil</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/tournois">Liste des tournois</a>
</li>
<?php if (isset($_SESSION["user_id"])) { ?>
<li class="nav-item active">
<a class="nav-link" href="/mon_compte">Mon compte</a>
</li>
<?php if ($_SESSION["role"] == Role::ENCADRANT || $_SESSION["role"] == Role::PARTICIPANT) { ?>
<?php if ($_SESSION["team"] == NULL) { ?>
<li class="nav-item active">
<a class="nav-link" href="/ajouter_equipe">Ajouter une équipe</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/rejoindre_equipe">Rejoindre une équipe</a>
</li>
<?php } else { ?>
<li class="nav-item active">
<a class="nav-link" href="/mon_equipe">Mon équipe</a>
</li>
<?php if ($_SESSION["team"]->getValidationStatus() == ValidationStatus::VALIDATED || true) { ?>
<li class="nav-item active">
<a class="nav-link" href="https://paypal.me/galaxyoyo42">Paiement</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/solutions">Solutions</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/syntheses">Notes de synthèse</a>
</li>
<?php } ?>
<?php } ?>
<?php } ?>
<?php if ($_SESSION["role"] == Role::ADMIN) { ?>
<li class="nav-item active">
<a class="nav-link" href="/ajouter_tournoi">Ajouter un tournoi</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/ajouter_organisateur">Ajouter un organisateur</a>
</li>
<?php } ?>
<?php if ($_SESSION["role"] == Role::ADMIN || $_SESSION["role"] == Role::ORGANIZER) { ?>
<li class="nav-item active">
<a class="nav-link" href="/solutions_orga">Solutions</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/syntheses_orga">Notes de synthèse</a>
</li>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>
<?php if ($_SESSION["role"] == Role::ADMIN) { ?>
<li><a href="<?= $URL_BASE ?>/ajouter_tournoi">Ajouter un tournoi</a></li>
<li><a href="<?= $URL_BASE ?>/ajouter_organisateur">Ajouter un organisateur</a></li>
<?php } ?>
<?php if ($_SESSION["role"] == Role::ADMIN || $_SESSION["role"] == Role::ORGANIZER) { ?>
<li><a href="<?= $URL_BASE ?>/solutions_orga">Solutions</a></li>
<li><a href="<?= $URL_BASE ?>/syntheses_orga">Notes de synthèse</a></li>
<?php } ?>
<li><a href="<?= $URL_BASE ?>/deconnexion">Déconnexion</a></li>
<hr />
<?php
if ($_SESSION["role"] != Role::ADMIN) {
echo "<li><a href=\"?be-admin=1\">Devenir administrateur</a></li>\n";
}
if ($_SESSION["role"] != Role::ORGANIZER) {
echo "<li><a href=\"?be-organizer=1\">Devenir organisateur</a></li>\n";
}
if ($_SESSION["role"] != Role::PARTICIPANT) {
echo "<li><a href=\"?be-participant=1\">Devenir participant</a></li>\n";
}
if ($_SESSION["role"] != Role::ENCADRANT) {
echo "<li><a href=\"?be-encadrant=1\">Devenir encadrant</a></li>\n";
}
?>
<?php } ?>
</ul>
</ul>
<ul class="navbar-nav">
<?php if (!isset($_SESSION["user_id"])) { ?>
<li class="nav-item active">
<a class="nav-link" href="/connexion">Connexion</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/inscription">Inscription</a>
</li>
<?php } else { ?>
<?php
if ($_SESSION["role"] != Role::ADMIN) {
echo "<li><a class=\"nav-link\" href=\"?be-admin=1\">Devenir administrateur</a></li>\n";
}
if ($_SESSION["role"] != Role::ORGANIZER) {
echo "<li><a class=\"nav-link\" href=\"?be-organizer=1\">Devenir organisateur</a></li>\n";
}
if ($_SESSION["role"] != Role::PARTICIPANT) {
echo "<li><a class=\"nav-link\" href=\"?be-participant=1\">Devenir participant</a></li>\n";
}
if ($_SESSION["role"] != Role::ENCADRANT) {
echo "<li><a class=\"nav-link\" href=\"?be-encadrant=1\">Devenir encadrant</a></li>\n";
}
?>
<li class="nav-item active">
<a class="nav-link" href="/deconnexion">Déconnexion</a>
</li>
<?php } ?>
</ul>
</nav>
</div>
<div id="main-container">
<div id="main-content">
<div class="container-fluid">
<div class="container">

View File

@ -1,126 +1,115 @@
<?php require_once "header.php" ?>
<!--suppress HtmlUnknownTarget, HtmlDeprecatedAttribute, HtmlDeprecatedTag -->
<div class="container-fluid">
<div>
<div id="header">
<center>
<img src="https://s3-eu-west-1.amazonaws.com/tfjm2-inscriptions/static/inscription/images/header.jpg"
alt="" width="720" height="160">
</center>
<div class="jumbotron bg-white">
<div class="row">
<h1 class="display-3">
Bienvenue sur le site d'inscription au <a href="https://tfjm.org">TFJM^2</a> !
</h1>
<h2 class="display-4 text-muted">
Le Tournoi Français des Jeunes Mathématiciens et Mathématiciennes
</h2>
</div>
</div>
<div class="row jumbotron bg-white">
<div class="col-sm">
<h3>
Tu souhaites participer au tournoi ?
<br/>
Ton équipe est déjà formée ?
</h3>
</div>
<div class="col-sm text-right">
<div class="btn-group-vertical">
<a class="btn btn-primary btn-lg" href="/inscription" role="button">Inscris-toi maintenant!</a>
<a class="btn btn-light btn-lg" href="/connexion" role="button">J'ai déjà un compte</a>
</div>
</div>
</div>
<br>
<div class="alert alert-warning">
<h5 class="alert-heading">Attentions aux échéances</h5>
<p class="mb-0">
Chaque tournoi a une date limite pour les inscriptions et une date limite pour
déposer vos solutions. <a href="https://tfjm.org/infos-tournois/">En savoir plus</a>
</p>
</div>
<center>
<h3>Vous souhaitez participer au tournoi ? Votre équipe est déjà formée ?</h3>
<h4><a href="<?= $URL_BASE ?>/inscription">Créez un compte</a> pour commencer la procédure d'inscription ou
<a href="<?= $URL_BASE ?>/connexion">connectez-vous</a> si votre équipe a déjà un compte.</h4>
</center>
<div class="alert alert-info" href="mailto:contact@tfjm.org">
<h5 class="alert-heading">Modification du règlement</h5>
<p class="mb-0">
Depuis l'année dernière, l'équipe doit envoyer par mail à contact@tfjm.org les informations suivantes:
<ul>
<li>Comment léquipe sest-elle formée ?</li>
<li>
Comment léquipe va-t-elle travailler ( peut-elle se rencontrer, à quelle fréquence, rencontres
avec lencadrant•e) ?
</li>
</ul>
<br>
Cette lettre permettra aux organisateurs•trices de vérifier que léquipe dispose des conditions nécessaires
à une participation sérieuse. Sont dispensées les équipes dont la moitié ou plus des membres sont scolarisés
dans le même établissement. Le comité National dOrganisation se réserve le droit daccepter ou non
linscription des équipes concernées par cette lettre.
</p>
</div>
<center>
<h2>Bienvenue sur le site d'inscription du TFJM<sup>2</sup> !</h2>
</center>
<div class="spacer" style="height: 48px"></div>
<center>
Ce site a été conçu pour gérer les inscriptions au Tournoi Français des Jeunes Mathématiciennes et
Mathématiciens.
<br>
<a href="http://www.tfjm.org/">Cliquez ici pour accéder au site de présentation du tournoi.</a>
</center>
<div class="jumbotron">
<h5 class="display-4">Comment ça marche ?</h5>
<p>
Pour participer à l'un des tournois régionaux, il suffit de créer un compte sur la rubrique
<b>Inscription</b>. Il vous faudra une adresse email pour ce faire. Un mail de confirmation sera envoyé
à cette adresse. Il vous fournira un nom d'utilisateur et un mot de passe que vous allez devoir changer
par la suite.
</p>
<p>
Vous pouvez accéder à votre compte via la rubrique <b>Connexion</b>. Une fois connecté, vous pourrez :
</p>
<ul>
<li>rentrer des informations sur les membres de votre équipe, tant participants qu'encadrants ;</li>
<li>
enregistrer et télécharger des versions préliminaires de vos solutions (seulement la dernière
version enregistrée avant la date limite sera prise en compte pour le tournoi).
</li>
</ul>
<p>
Une fois que vous aurez fourni toutes les informations demandées dans la rubrique <b>Mon Équipe</b>,
votre inscription pourra être validée par les organisateurs locaux.
</p>
<br>
<div class="alert alert-warning">
<strong>Attention!</strong> Votre équipe ne sera considérée comme admissible à participer au tournoi que
lorsque cette première étape aura été franchie.
</div>
<p align="justify"><strong>
Attention aux échéances ! Chaque tournoi a une date limite pour les inscriptions et une date limite pour
déposer vos solutions. Elles sont affichées avec les informations de chaque tournoi. Merci de vous y
référer !
<br>
Une fois l'échéance passée, le site bloque tout accès aux inscriptions (et respectivement au dépôt des
solutions).</strong>
</p>
<p style="color:red;">
Attention, modification du règlement par rapport aux années précédentes : article 4.3
<br>
"léquipe doit envoyer par mail à contact@tfjm.org, une lettre (au format pdf), répondant aux questions
suivantes :
<br>
</p>
<ul style="color:red;">
<li>Comment léquipe sest-elle formée ?</li>
<li>Comment léquipe va-t-elle travailler ( peut-elle se rencontrer, à quelle fréquence, rencontres avec
lencadrant•e) ?
</li>
</ul>
Cette lettre permettra aux organisateurs•trices de vérifier que léquipe dispose des conditions nécessaires à
une participation sérieuse. Sont dispensées les équipes dont la moitié ou plus des membres sont scolarisés dans
le même établissement. Le comité National dOrganisation se réserve le droit daccepter ou non linscription des
équipes concernées par cette lettre."
<br>
Pour plus de détail, voir le règlement : <a href="https://tfjm.org/infos-tournois/">https://tfjm.org/infos-tournois/</a>
<p></p>
<center>
<h2>Comment ça marche ?</h2>
</center>
<p align="justify">
Pour participer à l'un des tournois régionaux, il suffit de créer un compte sur la rubrique
<b>Inscription</b>. Il vous faudra une adresse email pour ce faire. Un mail de confirmation sera envoyé à
cette adresse. Il vous fournira un nom d'utilisateur et un mot de passe que vous allez devoir changer par la
suite.
</p>
<p>
Vous pouvez accéder à votre compte via la rubrique <b>Connexion</b>. Une fois connecté, vous pourrez :
</p>
<ul>
<li>rentrer des informations sur les membres de votre équipe, tant participants qu'encadrants ;</li>
<li>enregistrer et télécharger des versions préliminaires de vos solutions (seulement la dernière version
enregistrée avant la date limite sera prise en compte pour le tournoi).
</li>
</ul>
Une fois que vous aurez fourni toutes les informations demandées dans la rubrique <b>Mon Équipe</b>, votre
inscription pourra être validée par les organisateurs locaux.
<p></p>
<div class="alert alert-info">
Pensez donc à former une équipe complète (minimum 4 participants et 1 encadrant) le plus tôt possible
pour avoir plus de chances de participer, compte tenu du nombre des places disponibles dans chaque
tournoi (qui sera dûment affiché sur la rubrique <b>Liste des Tournois</b>). Les équipes restantes
seront placées en liste d'attente.
</div>
<p>
Pour les équipes dont l'inscription aura été validée, des documents à télécharger, remplir et signer
deviendront disponibles sur votre compte. Vous allez devoir ensuite les scanner et les télécharger vers
le site pour compléter votre inscription.
</p>
<div class="alert alert-warning">
<strong>Attention</strong> Les équipes qui ne respecteront pas les délais pour rendre ces documents
risquent d'être disqualifiées et de laisser leur place aux équipes placées en liste d'attente.
</div>
</div>
<p class="text-danger">
ATTENTION ! Votre équipe ne sera considérée comme admissible à participer au tournoi que
lorsque cette première étape aura été franchie.
</p>
<p>
Pensez donc à former une équipe complète (minimum 4 participants et 1 encadrant) le plus tôt possible pour
avoir plus de chances de participer, compte tenu du nombre des places disponibles dans chaque tournoi (qui
sera dûment affiché sur la rubrique <b>Liste des Tournois</b>). Les équipes restantes seront placées en
liste d'attente.
</p>
<p>
Pour les équipes dont l'inscription aura été validée, des documents à télécharger, remplir et signer
deviendront disponibles sur votre compte. Vous allez devoir ensuite les scanner et les télécharger vers le
site pour compléter votre inscription.
</p>
<p class="text-danger">
ATTENTION ! Les équipes qui ne respecteront pas les délais pour rendre ces documents
risquent d'être disqualifiées et de laisser leur place aux équipes placées en liste d'attente.
</p>
<p>
<em><strong>NB :</strong> Ce site est récent et il est encore possible que certaines pages ne fonctionnent
pas correctement. Si vous remarquez des bugs, merci de les signaler à l'adresse <a
href="mailto:contact@tfjm.org">contact@tfjm.org</a>.</em>
</p>
<div class="alert alert-light">
Ce site est récent et il est encore possible que certaines pages ne fonctionnent
pas correctement.
<br/>
Si vous remarquez des bugs, merci de les signaler à l'adresse
<a href="mailto:contact@tfjm.org">contact@tfjm.org</a>.</em>
</div>
</div>

View File

@ -3,7 +3,7 @@
<h1><?= $user->getFirstName() . " " . $user->getSurname() ?></h1>
<?php if ($user->getRole() == Role::PARTICIPANT || $user->getRole() == Role::ENCADRANT) { ?>
Équipe : <?= $team === null ? "Pas d'équipe" : "<a href=\"$URL_BASE/equipe/" . $team->getTrigram() . "\">" . $team->getName() . " (" . $team->getTrigram() . ")</a>" ?><br />
Équipe : <?= $team === null ? "Pas d'équipe" : "<a href=\"/equipe/" . $team->getTrigram() . "\">" . $team->getName() . " (" . $team->getTrigram() . ")</a>" ?><br />
<?php } ?>
Date de naissance : <?= formatDate($user->getBirthDate()) ?><br />
Sexe : <?= $user->getGender() == "M" ? "Masculin" : "Féminin" ?><br />
@ -25,7 +25,7 @@ echo "<hr />";
if ($user->getRole() == Role::ADMIN || $user->getRole() == Role::ORGANIZER) {
foreach ($tournaments as $tournament) {
echo "Organise le tournoi <a href=\"$URL_BASE/tournoi/" . $tournament->getName(). "\">" . $tournament->getName() . "</a><br />";
echo "Organise le tournoi <a href=\"/tournoi/" . $tournament->getName(). "\">" . $tournament->getName() . "</a><br />";
}
}
elseif ($user->getRole() == Role::PARTICIPANT || $user->getRole() == Role::ENCADRANT) { ?>

View File

@ -2,136 +2,169 @@
require_once "header.php";
if ($has_error)
echo "<h2>Erreur : " . $error_message . "</h2>";
echo "<div class=\"alert alert-danger\">Erreur : " . $error_message . "</div>";
?>
<div class="mt-4 mb-4">
<h1 class="display-4">Formulaire d'inscription</h1>
</div>
<?php
/** @var NewUser $user */
if (isset($user) && !$has_error) {
?>
Votre inscription est validée ! Merci désormais de confirmer votre boîte mail pour valider votre adresse.
?>
<div class="alert alert-success">
Votre inscription est validée ! Merci désormais de confirmer votre boîte mail pour valider votre adresse.
</div>
<?php } else if (isset($_SESSION["user_id"])) { ?>
<h2>Vous êtes déjà connecté !</h2>
<div class="alert alert-success">Vous êtes déjà connecté !</div>
<?php } else { ?>
<form method="POST">
<input type="hidden" name="submitted" value="true"/>
<table style="width: 100%;">
<tr>
<td style="width: 30%;"><label for="email">E-mail :</label></td>
<td style="width: 70%;"><input style="width: 100%;" type="email" id="email" name="email"
value="<?php if (isset($user)) echo $user->email ?>"
required/></td>
</tr>
<tr>
<td><label for="password">Mot de passe :</label></td>
<td><input style="width: 100%;" type="password" id="password" name="password" required/></td>
</tr>
<tr>
<td><label for="confirm_password">Confirmer le mot de passe :</label></td>
<td><input style="width: 100%;" type="password" id="confirm_password" name="confirm_password" required/>
</td>
</tr>
<tr>
<td><label for="surname">Nom :</label></td>
<td><input style="width: 100%;" type="text" id="surname" name="surname"
value="<?php if (isset($user)) echo $user->surname ?>" required/></td>
</tr>
<tr>
<td><label for="first_name">Prénom :</label></td>
<td><input style="width: 100%;" type="text" id="first_name" name="first_name"
value="<?php if (isset($user)) echo $user->first_name ?>" required/></td>
</tr>
<tr>
<td><label for="birth_date">Date de naissance :</label></td>
<td><input style="width: 100%;" type="date" id="birth_date" name="birth_date"
value="<?php if (isset($user)) echo $user->birth_date ?>" required/></td>
</tr>
<tr>
<td><label for="gender">Sexe :</label></td>
<td><input type="radio" id="male" name="gender" value="M"
required <?= isset($_POST["gender"]) && $_POST["gender"] == "M" ? "checked" : "" ?> /><label
for="male">Homme</label>
<input type="radio" id="female" name="gender" value="F"
required <?= isset($_POST["gender"]) && $_POST["gender"] == "F" ? "checked" : "" ?> /><label
for="female">Femme</label></td>
</tr>
<tr>
<td><label for="address">Adresse :</label></td>
<td><input style="width: 100%;" type="text" id="address" name="address"
value="<?php if (isset($user)) echo $user->address ?>"/></td>
</tr>
<tr>
<td><label for="postal_code">Code postal :</label></td>
<td><input style="width: 100%;" type="number" id="postal_code" name="postal_code"
value="<?php if (isset($user)) echo $user->postal_code ?>" min="1000"
max="95999" required/></td>
</tr>
<tr>
<td><label for="city">Ville :</label></td>
<td><input style="width: 100%;" type="text" id="city" name="city"
value="<?php if (isset($user)) echo $user->city ?>"/></td>
</tr>
<tr>
<td><label for="country">Pays :</label></td>
<td><input style="width: 100%;" type="text" id="country" name="country"
value="<?= isset($user) ? $user->country : "France" ?>" required/></td>
</tr>
<tr>
<td><label for="phone_number">Numéro de téléphone :</label></td>
<td><input style="width: 100%;" type="text" id="phone_number" name="phone_number"
value="<?php if (isset($user)) echo $user->phone_number ?>"/></td>
</tr>
<tr>
<td><label for="role">Rôle :</label></td>
<td><select style="width: 100%;" id="role" name="role" onchange="selectRole()">
<option value="participant"><?= Role::getTranslatedName(Role::PARTICIPANT) ?></option>
<option value="encadrant"><?= Role::getTranslatedName(Role::ENCADRANT) ?></option>
</select></td>
</tr>
<tr>
<td><label id="school_label" for="school">Établissement dans lequel l'élève étudie :</label></td>
<td><input style="width: 100%;" type="text" id="school" name="school"
value="<?php if (isset($user)) echo $user->school ?>"/></td>
</tr>
<tr>
<td><label id="class_label" for="class">Classe :</label></td>
<td><select style="width: 100%;" id="class" name="class">
<option value="terminale"><?= SchoolClass::getTranslatedName(SchoolClass::TERMINALE) ?></option>
<option value="premiere"><?= SchoolClass::getTranslatedName(SchoolClass::PREMIERE) ?></option>
<option value="seconde"><?= SchoolClass::getTranslatedName(SchoolClass::SECONDE) ?></option>
</select></td>
</tr>
<tr>
<td><label id="responsible_name_label" for="responsible_name">Nom du responsable légal :</label></td>
<td><input style="width: 100%;" type="text" id="responsible_name" name="responsible_name"
value="<?php if (isset($user)) echo $user->responsible_name ?>"/>
</td>
</tr>
<tr>
<td><label id="responsible_phone_label" for="responsible_phone">Téléphone du responsable légal :</label>
</td>
<td><input style="width: 100%;" type="text" id="responsible_phone" name="responsible_phone"
value="<?php if (isset($user)) echo $user->responsible_phone ?>"/>
</td>
</tr>
<tr>
<td><label id="responsible_email_label" for="responsible_email">Email du responsable légal :</label>
</td>
<td><input style="width: 100%;" type="text" id="responsible_email" name="responsible_email"
value="<?php if (isset($user)) echo $user->responsible_email ?>"/>
</td>
</tr>
<tr>
<td><label id="description_label" for="description">Description :</label></td>
<td><textarea style="width: 100%;" id="description"
name="description"><?php if (isset($user)) echo $user->description ?></textarea>
</td>
</tr>
<tr>
<td colspan="2"><input style="width: 100%;" type="submit" value="S'inscrire"/></td>
</tr>
</table>
<div class="form-group row">
<label for="role">Rôle :</label>
<select id="role" name="role" onchange="selectRole()" class="custom-select">
<option value="participant"><?= Role::getTranslatedName(Role::PARTICIPANT) ?></option>
<option value="encadrant"><?= Role::getTranslatedName(Role::ENCADRANT) ?></option>
</select>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="surname">Nom :</label>
<input class="form-control" type="text" id="surname" name="surname"
value="<?php if (isset($user)) echo $user->surname ?>" required/>
</div>
<div class="form-group col-md-6">
<label for="first_name">Prénom :</label>
<input class="form-control" type="text" id="first_name" name="first_name"
value="<?php if (isset($user)) echo $user->first_name ?>" required/>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="email">E-mail :</label>
<input class="form-control" type="email" id="email" name="email"
value="<?php if (isset($user)) echo $user->email ?>"
required/>
</div>
<div class="form-group col-md-6">
<label for="phone_number">Numéro de téléphone :</label>
<input class="form-control" type="text" id="phone_number" name="phone_number"
value="<?php if (isset($user)) echo $user->phone_number ?>"/>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="password">Mot de passe :</label>
<input class="form-control" type="password" id="password" name="password" required/>
</div>
<div class="form-group col-md-6">
<label for="confirm_password">Confirmer le mot de passe :</label>
<input class="form-control" type="password" id="confirm_password" name="confirm_password" required/>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="gender" class="mr-2">Sexe :</label>
<br/>
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" class="custom-control-input" id="male" name="gender" value="M"
required <?= isset($_POST["gender"]) && $_POST["gender"] == "M" ? "checked" : "" ?> />
<label for="male" class="custom-control-label">Homme</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" class="custom-control-input" id="female" name="gender" value="F"
required <?= isset($_POST["gender"]) && $_POST["gender"] == "F" ? "checked" : "" ?> />
<label for="female" class="custom-control-label">Femme</label>
</div>
</div>
<div class="form-group col-md-6">
<label for="birth_date">Date de naissance :</label>
<input class="form-control" type="date" id="birth_date" name="birth_date"
value="<?php if (isset($user)) echo $user->birth_date ?>" required/>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-5">
<label for="address">Adresse :</label>
<input class="form-control" type="text" id="address" name="address"
value="<?php if (isset($user)) echo $user->address ?>"/>
</div>
<div class="form-group col-md-2">
<label for="postal_code">Code postal :</label>
<input class="form-control" type="number" id="postal_code" name="postal_code"
value="<?php if (isset($user)) echo $user->postal_code ?>" min="1000"
max="95999" required/>
</div>
<div class="form-group col-md-3">
<label for="city">Ville :</label>
<input class="form-control" type="text" id="city" name="city"
value="<?php if (isset($user)) echo $user->city ?>"/>
</div>
<div class="form-group col-md-2">
<label for="country">Pays :</label>
<input class="form-control" type="text" id="country" name="country"
value="<?= isset($user) ? $user->country : "France" ?>" required/>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label id="school_label" for="school">Établissement dans lequel l'élève étudie :</label>
<input class="form-control" type="text" id="school" name="school"
value="<?php if (isset($user)) echo $user->school ?>"/>
</div>
<div class="form-group col-md-6">
<label id="class_label" for="class">Classe :</label>
<select id="class" name="class" class="custom-select">
<option value="terminale"><?= SchoolClass::getTranslatedName(SchoolClass::TERMINALE) ?></option>
<option value="premiere"><?= SchoolClass::getTranslatedName(SchoolClass::PREMIERE) ?></option>
<option value="seconde"><?= SchoolClass::getTranslatedName(SchoolClass::SECONDE) ?></option>
</select>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4">
<label id="responsible_name_label" for="responsible_name">Nom du responsable légal :</label>
<input class="form-control" type="text" id="responsible_name" name="responsible_name"
value="<?php if (isset($user)) echo $user->responsible_name ?>"/>
</div>
<div class="form-group col-md-4">
<label id="responsible_phone_label" for="responsible_phone">Téléphone du responsable légal :</label>
<input class="form-control" type="text" id="responsible_phone" name="responsible_phone"
value="<?php if (isset($user)) echo $user->responsible_phone ?>"/>
</div>
<div class="form-group col-md-4">
<label id="responsible_email_label" for="responsible_email">Email du responsable légal :</label>
<input class="form-control" type="text" id="responsible_email" name="responsible_email"
value="<?php if (isset($user)) echo $user->responsible_email ?>"/>
</div>
</div>
<div class="form-group row">
<label id="description_label" for="description">Description :</label>
<textarea class="form-control" id="description"
name="description"><?php if (isset($user)) echo $user->description ?></textarea>
</div>
<div class="form-group row">
<input class="btn btn-primary btn-lg btn-block" type="submit" value="S'inscrire"/>
</div>
</form>
<script>

View File

@ -18,20 +18,20 @@ for ($i = 1; $i <= 2; ++$i) {
continue;
$encadrant = User::fromId($team->getEncadrants()[$i - 1]);
$id = $encadrant->getId();
echo "Encadrant $i : <a href=\"$URL_BASE/informations/$id/" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "\">" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "</a><br />";
echo "Encadrant $i : <a href=\"/informations/$id/" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "\">" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "</a><br />";
}
for ($i = 1; $i <= 6; ++$i) {
if ($team->getParticipants()[$i - 1] == NULL)
continue;
$participant = User::fromId($team->getParticipants()[$i - 1]);
$id = $participant->getId();
echo "Participant $i : <a href=\"$URL_BASE/informations/$id/" . $participant->getFirstName() . " " . $participant->getSurname() . "\">" . $participant->getFirstName() . " " . $participant->getSurname() . "</a><br />";
echo "Participant $i : <a href=\"/informations/$id/" . $participant->getFirstName() . " " . $participant->getSurname() . "\">" . $participant->getFirstName() . " " . $participant->getSurname() . "</a><br />";
}
?>
Code d'accès : <strong><?= $team->getAccessCode() ?></strong><br/>
<?php if ($team->isSelectedForFinal()) {
$final_name = $FINAL->getName();
echo "<strong>Équipe sélectionnée pour la <a href=\"$URL_BASE/tournoi/$final_name\">finale nationale</a>.</strong><br />";
echo "<strong>Équipe sélectionnée pour la <a href=\"/tournoi/$final_name\">finale nationale</a>.</strong><br />";
} ?>
<?php if (isset($_GET["modifier"])) { ?>
@ -83,7 +83,7 @@ for ($i = 1; $i <= 6; ++$i) {
<?php if ($_SESSION["team_validation_status"] == ValidationStatus::NOT_READY) { ?>
<!--suppress HtmlUnknownTarget -->
<a href="<?= $URL_BASE ?>/mon_equipe/modifier">Modifier mon équipe</a>
<a href="/mon_equipe/modifier">Modifier mon équipe</a>
<?php } ?>
<hr/>
<h2>Mes autorisations</h2>

View File

@ -55,7 +55,7 @@ foreach ($solutions as $sol) {
$file_id = $sol->getFileId();
$problem = $sol->getProblem();
$version = $sol->getVersion();
echo "Problème $problem (Version $version) : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />";
echo "Problème $problem (Version $version) : <a href=\"/file/$file_id\">Télécharger</a><br />";
}
if ($team->isSelectedForFinal()) { ?>
@ -68,7 +68,7 @@ if ($team->isSelectedForFinal()) { ?>
$file_id = $sol->getFileId();
$problem = $sol->getProblem();
$version = $sol->getVersion();
echo "Problème $problem (Version $version) : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />";
echo "Problème $problem (Version $version) : <a href=\"/file/$file_id\">Télécharger</a><br />";
}
}

View File

@ -13,7 +13,7 @@ foreach ($tournaments as $tournament) {
$team = Team::fromId($sol->getTeamId());
$team_name = $team->getName();
$team_trigram = $team->getTrigram();
echo "Problème n°$problem de l'équipe $team_name ($team_trigram), version $version : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />";
echo "Problème n°$problem de l'équipe $team_name ($team_trigram), version $version : <a href=\"/file/$file_id\">Télécharger</a><br />";
}
echo "<form method=\"POST\">\n";

View File

@ -59,7 +59,7 @@ foreach ($syntheses as $synthesis) {
$file_id = $synthesis->getFileId();
$dest = $synthesis->getDest();
$version = $synthesis->getVersion();
echo "Note de synthèse pour " . ($dest == DestType::OPPOSANT ? "l'opposant" : "le rapporteur") . " (version $version) : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />";
echo "Note de synthèse pour " . ($dest == DestType::OPPOSANT ? "l'opposant" : "le rapporteur") . " (version $version) : <a href=\"/file/$file_id\">Télécharger</a><br />";
}
if ($team->isSelectedForFinal()) { ?>
@ -72,7 +72,7 @@ if ($team->isSelectedForFinal()) { ?>
$file_id = $synthesis->getFileId();
$dest = $synthesis->getDest();
$version = $synthesis->getVersion();
echo "Note de synthèse pour " . ($dest == DestType::OPPOSANT ? "l'opposant" : "le rapporteur") . " (version $version) : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />";
echo "Note de synthèse pour " . ($dest == DestType::OPPOSANT ? "l'opposant" : "le rapporteur") . " (version $version) : <a href=\"/file/$file_id\">Télécharger</a><br />";
}
}

View File

@ -15,7 +15,7 @@ foreach ($tournaments as $tournament) {
$team_name = $team->getName();
$team_trigram = $team->getTrigram();
echo "Note de synthèse de l'équipe $team_name ($team_trigram) pour " . ($dest == DestType::OPPOSANT ? "l'opposant" : "le rapporteur")
. ", version $version : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />";
. ", version $version : <a href=\"/file/$file_id\">Télécharger</a><br />";
}
echo "<form method=\"POST\">\n";

View File

@ -15,7 +15,7 @@ foreach ($orgas as $orga) {
$orga_id = $orga->getId();
$orga_name = $orga->getFirstName() . " " . $orga->getSurname();
if ($_SESSION["role"] == Role::ORGANIZER || $_SESSION["role"] == Role::ADMIN)
$s .= "<a href=\"$URL_BASE/informations/$orga_id/$orga_name\">$orga_name</a>";
$s .= "<a href=\"/informations/$orga_id/$orga_name\">$orga_name</a>";
else
$s .= $orga_name;
$s .= ", ";
@ -37,7 +37,7 @@ if ($tournament->isFinal())
?>
<?php if (!isset($_GET["modifier"]) && ($_SESSION["role"] == Role::ADMIN || $_SESSION["role"] == Role::ORGANIZER && $tournament->organize($_SESSION["user_id"]))) { ?>
<a href="<?= $URL_BASE ?>/tournoi/<?= $tournament->getName() ?>/modifier">Éditer le tournoi</a>
<a href="/tournoi/<?= $tournament->getName() ?>/modifier">Éditer le tournoi</a>
<?php } ?>
@ -72,7 +72,7 @@ if ($tournament->isFinal())
<td style="border: 1px solid black; text-align: center">
<?php
if (isset($_SESSION["role"]) && ($_SESSION["role"] == Role::ADMIN || ($_SESSION["role"] == Role::ORGANIZER && $tournament->organize($_SESSION["user_id"]))))
echo "<a href=\"$URL_BASE/equipe/" . $team->getTrigram() . "\">" . $team->getName(). "</a>";
echo "<a href=\"/equipe/" . $team->getTrigram() . "\">" . $team->getName(). "</a>";
else
echo $team->getName();
?>

View File

@ -1,41 +1,45 @@
<?php require_once "header.php" ?>
<h2>Liste des tournois</h2>
<div class="mt-4 mb-4">
<h2 class="display-3">Liste des tournois</h2>
</div>
<table style="border: 1px solid black; width: 100%">
<thead style="border: 1px solid black">
<tr>
<th style="border: 1px solid black; text-align: center">Nom</th>
<th style="border: 1px solid black; text-align: center">Dates</th>
<th style="border: 1px solid black; text-align: center">Inscription avant le</th>
<th style="border: 1px solid black; text-align: center">Date de rendu des solutions</th>
<th style="border: 1px solid black; text-align: center">Places disponibles</th>
</tr>
</thead>
<tbody style="border: 1px solid black">
<?php
foreach ($tournaments as $tournament) {
?>
<tr style="border: 1px solid black">
<td style="border: 1px solid black; text-align: center"><a href="<?= $URL_BASE ?>/tournoi/<?= $tournament->getName() ?>"><?= $tournament->getName() ?></a></td>
<td style="border: 1px solid black; text-align: center">Du <?= formatDate($tournament->getStartDate()) ?> au <?= formatDate($tournament->getEndDate()) ?></td>
<td style="border: 1px solid black; text-align: center"><?= formatDate($tournament->getSolutionsDate()) ?></td>
<td style="border: 1px solid black; text-align: center"><?= formatDate($tournament->getSynthesesDate()) ?></td>
<td style="border: 1px solid black; text-align: center"><?= $tournament->getSize() ?></td>
</tr>
<?php
}
?>
</tbody>
<tfoot style="border: 1px solid black">
<tr>
<th style="border: 1px solid black; text-align: center">Nom</th>
<th style="border: 1px solid black; text-align: center">Dates</th>
<th style="border: 1px solid black; text-align: center">Inscription avant le</th>
<th style="border: 1px solid black; text-align: center">Date de rendu des solutions</th>
<th style="border: 1px solid black; text-align: center">Places disponibles</th>
</tr>
</tfoot>
<table class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th scope="col">Nom</th>
<th scope="col">Dates</th>
<th scope="col">Inscription avant le</th>
<th scope="col">Date de rendu des solutions</th>
<th scope="col">Places disponibles</th>
</tr>
</thead>
<tbody>
<?php
foreach ($tournaments as $tournament) {
?>
<tr>
<th scope="row">
<a href="/tournoi/<?= $tournament->getName() ?>"><?= $tournament->getName() ?></a>
</th>
<td>Du <?= formatDate($tournament->getStartDate()) ?> au <?= formatDate($tournament->getEndDate()) ?></td>
<td><?= formatDate($tournament->getSolutionsDate()) ?></td>
<td><?= formatDate($tournament->getSynthesesDate()) ?></td>
<td><?= $tournament->getSize() ?></td>
</tr>
<?php
}
?>
</tbody>
<tfoot>
<tr>
<th>Nom</th>
<th>Dates</th>
<th>Inscription avant le</th>
<th>Date de rendu des solutions</th>
<th>Places disponibles</th>
</tr>
</tfoot>
</table>
<?php require_once "footer.php" ?>