diff --git a/assets/style.css b/assets/style.css
index fc68852..5c8d3ff 100644
--- a/assets/style.css
+++ b/assets/style.css
@@ -11,14 +11,19 @@ html, body {
min-height: 78%;
}
-footer {
- text-align: center;
-}
-
.inner {
margin: 20px;
}
+.alert {
+ text-align: justify;
+}
+
+
+footer .alert {
+ text-align: center;
+}
+
#navbar-logo {
height: var(--navbar-height);
display: block;
diff --git a/server_files/classes/Question.php b/server_files/classes/Question.php
index f49ab8b..f31fe3c 100644
--- a/server_files/classes/Question.php
+++ b/server_files/classes/Question.php
@@ -68,7 +68,7 @@ class Question
ensure($from->getProblem() == $to->getProblem(), "Les deux équipes doivent travailler sur le même problème.");
- $req = $DB->prepare("SELECT * FROM `questions` WHERE `from` = ? AND `to` = ? ORDER BY `from`;");
+ $req = $DB->prepare("SELECT * FROM `questions` WHERE `from` = ? AND `to` = ? ORDER BY `from`, `number`;");
$req->execute([$from->getId(), $to->getId()]);
$questions = [];
@@ -80,9 +80,11 @@ class Question
}
if (sizeof($questions) == 0) {
- for ($i = 0; $i < 6; ++$i) {
+ $req = $DB->prepare("INSERT INTO `questions`(`from`, `to`, `problem`, `number`, `question`) VALUES (?, ?, ?, ?, ?);");
+ $req->execute([$from->getId(), $to->getId(), $from->getProblem(), 0, ""]);
+ for ($i = 1; $i <= 6; ++$i) {
$req = $DB->prepare("INSERT INTO `questions`(`from`, `to`, `problem`, `number`, `question`) VALUES (?, ?, ?, ?, ?);");
- $req->execute([$from->getId(), $to->getId(), $from->getProblem(), $i, self::DEFAULT_QUESTIONS[$i]]);
+ $req->execute([$from->getId(), $to->getId(), $from->getProblem(), $i, self::DEFAULT_QUESTIONS[$i - 1]]);
}
return self::getQuestions($from, $to);
}
diff --git a/server_files/classes/SchoolClass.php b/server_files/classes/SchoolClass.php
index 7159047..6a6efd1 100644
--- a/server_files/classes/SchoolClass.php
+++ b/server_files/classes/SchoolClass.php
@@ -5,30 +5,35 @@ class SchoolClass
const SECONDE = 0;
const PREMIERE = 1;
const TERMINALE = 2;
+ const ADULT = 3;
public static function getTranslatedName($class) {
switch ($class) {
- case null:
- return "Adulte";
case self::SECONDE:
return "Seconde ou inférieur";
case self::PREMIERE:
return "Première";
case self::TERMINALE:
return "Terminale";
+ case self::ADULT:
+ return "Adulte";
+ default:
+ return null;
}
}
public static function getName($class) {
switch ($class) {
- case null:
- return null;
case self::SECONDE:
return "SECONDE";
case self::PREMIERE:
return "PREMIERE";
case self::TERMINALE:
return "TERMINALE";
+ case self::ADULT:
+ return "ADULT";
+ default:
+ return null;
}
}
@@ -40,6 +45,8 @@ class SchoolClass
return self::PREMIERE;
case "TERMINALE":
return self::TERMINALE;
+ case "ADULT":
+ return self::ADULT;
default:
return null;
}
diff --git a/server_files/config.php b/server_files/config.php
index 9cbd5c6..6c1ae13 100644
--- a/server_files/config.php
+++ b/server_files/config.php
@@ -43,27 +43,32 @@ class Config
public function initDB()
{
- global $DB, $LOCAL_PATH;
+ global $DB, $LOCAL_PATH, $YEAR;
$index_template_page = htmlspecialchars(file_get_contents($LOCAL_PATH . "/server_files/views/index.html"));
$DB->exec("SET GLOBAL time_zone = 'Europe/Paris';");
- $DB->prepare("INSERT IGNORE INTO `config` VALUES ('inscription_date', CURRENT_TIMESTAMP + INTERVAL 2 DAY),
- ('start_phase1_date', CURRENT_TIMESTAMP + INTERVAL 1 DAY), ('end_phase1_date', CURRENT_TIMESTAMP + INTERVAL 3 DAY),
- ('start_phase2_date', CURRENT_TIMESTAMP + INTERVAL 4 DAY), ('end_phase2_date', CURRENT_TIMESTAMP + INTERVAL 5 DAY),
- ('start_phase3_date', CURRENT_TIMESTAMP + INTERVAL 6 DAY), ('end_phase3_date', CURRENT_TIMESTAMP + INTERVAL 7 DAY),
- ('start_phase4_date', CURRENT_TIMESTAMP + INTERVAL 8 DAY), ('end_phase4_date', CURRENT_TIMESTAMP + INTERVAL 9 DAY),
- ('index_page', ?);")->execute([$index_template_page]);
+ $DB->prepare("INSERT IGNORE INTO `config`(`key`, `value`)
+ VALUES ('inscription_date_$YEAR', CURRENT_TIMESTAMP + INTERVAL 2 DAY),
+ ('start_phase1_date_$YEAR', CURRENT_TIMESTAMP + INTERVAL 1 DAY),
+ ('end_phase1_date_$YEAR', CURRENT_TIMESTAMP + INTERVAL 3 DAY),
+ ('start_phase2_date_$YEAR', CURRENT_TIMESTAMP + INTERVAL 4 DAY),
+ ('end_phase2_date_$YEAR', CURRENT_TIMESTAMP + INTERVAL 5 DAY),
+ ('start_phase3_date_$YEAR', CURRENT_TIMESTAMP + INTERVAL 6 DAY),
+ ('end_phase3_date_$YEAR', CURRENT_TIMESTAMP + INTERVAL 7 DAY),
+ ('start_phase4_date_$YEAR', CURRENT_TIMESTAMP + INTERVAL 8 DAY),
+ ('end_phase4_date_$YEAR', CURRENT_TIMESTAMP + INTERVAL 9 DAY),
+ ('index_page_$YEAR', ?);")->execute([$index_template_page]);
}
public function loadConfigValues()
{
- global $DB;
+ global $DB, $YEAR;
- $req = $DB->query("SELECT * FROM `config`;");
+ $req = $DB->query("SELECT * FROM `config` WHERE `key` REGEXP '$YEAR';");
while (($data = $req->fetch()) !== false) {
- $key = $data["key"];
+ $key = substr($data["key"], 0, -5);
$this->$key = $data["value"];
}
}
@@ -75,8 +80,8 @@ class Config
public function setInscriptionDate($inscription_date)
{
- global $DB;
- $DB->exec("UPDATE `config` SET `value` = '$inscription_date' WHERE `key` = 'inscription_date';");
+ global $DB, $YEAR;
+ $DB->exec("UPDATE `config` SET `value` = '$inscription_date' WHERE `key` = 'inscription_date_$YEAR'");
$this->inscription_date = $inscription_date;
}
@@ -88,8 +93,8 @@ class Config
public function setStartPhase1Date($start_phase1_date)
{
- global $DB;
- $DB->exec("UPDATE `config` SET `value` = '$start_phase1_date' WHERE `key` = 'start_phase1_date';");
+ global $DB, $YEAR;
+ $DB->exec("UPDATE `config` SET `value` = '$start_phase1_date' WHERE `key` = 'start_phase1_date_$YEAR'");
$this->start_phase1_date = $start_phase1_date;
}
@@ -101,8 +106,8 @@ class Config
public function setEndPhase1Date($end_phase1_date)
{
- global $DB;
- $DB->exec("UPDATE `config` SET `value` = '$end_phase1_date' WHERE `key` = 'end_phase1_date';");
+ global $DB, $YEAR;
+ $DB->exec("UPDATE `config` SET `value` = '$end_phase1_date' WHERE `key` = 'end_phase1_date_$YEAR'");
$this->end_phase1_date = $end_phase1_date;
}
@@ -114,8 +119,8 @@ class Config
public function setStartPhase2Date($start_phase2_date)
{
- global $DB;
- $DB->exec("UPDATE `config` SET `value` = '$start_phase2_date' WHERE `key` = 'start_phase2_date';");
+ global $DB, $YEAR;
+ $DB->exec("UPDATE `config` SET `value` = '$start_phase2_date' WHERE `key` = 'start_phase2_date_$YEAR'");
$this->start_phase2_date = $start_phase2_date;
}
@@ -127,8 +132,8 @@ class Config
public function setEndPhase2Date($end_phase2_date)
{
- global $DB;
- $DB->exec("UPDATE `config` SET `value` = '$end_phase2_date' WHERE `key` = 'end_phase2_date';");
+ global $DB, $YEAR;
+ $DB->exec("UPDATE `config` SET `value` = '$end_phase2_date' WHERE `key` = 'end_phase2_date_$YEAR'");
$this->end_phase2_date = $end_phase2_date;
}
@@ -140,8 +145,8 @@ class Config
public function setStartPhase3Date($start_phase3_date)
{
- global $DB;
- $DB->exec("UPDATE `config` SET `value` = '$start_phase3_date' WHERE `key` = 'start_phase3_date';");
+ global $DB, $YEAR;
+ $DB->exec("UPDATE `config` SET `value` = '$start_phase3_date' WHERE `key` = 'start_phase3_date_$YEAR'");
$this->start_phase3_date = $start_phase3_date;
}
@@ -153,8 +158,8 @@ class Config
public function setEndPhase3Date($end_phase3_date)
{
- global $DB;
- $DB->exec("UPDATE `config` SET `value` = '$end_phase3_date' WHERE `key` = 'end_phase3_date';");
+ global $DB, $YEAR;
+ $DB->exec("UPDATE `config` SET `value` = '$end_phase3_date' WHERE `key` = 'end_phase3_date_$YEAR'");
$this->end_phase3_date = $end_phase3_date;
}
@@ -166,8 +171,8 @@ class Config
public function setStartPhase4Date($start_phase4_date)
{
- global $DB;
- $DB->exec("UPDATE `config` SET `value` = '$start_phase4_date' WHERE `key` = 'start_phase4_date';");
+ global $DB, $YEAR;
+ $DB->exec("UPDATE `config` SET `value` = '$start_phase4_date' WHERE `key` = 'start_phase4_date_$YEAR'");
$this->start_phase4_date = $start_phase4_date;
}
@@ -179,8 +184,8 @@ class Config
public function setEndPhase4Date($end_phase4_date)
{
- global $DB;
- $DB->exec("UPDATE `config` SET `value` = '$end_phase4_date' WHERE `key` = 'end_phase4_date';");
+ global $DB, $YEAR;
+ $DB->exec("UPDATE `config` SET `value` = '$end_phase4_date' WHERE `key` = 'end_phase4_date_$YEAR'");
$this->end_phase4_date = $end_phase4_date;
}
@@ -192,8 +197,8 @@ class Config
public function setIndexPage($index_page)
{
- global $DB;
- $DB->prepare("UPDATE `config` SET `value` = ? WHERE `key` = 'index_page';")->execute([$index_page]);
+ global $DB, $YEAR;
+ $DB->prepare("UPDATE `config` SET `value` = ? WHERE `key` = 'index_page_$YEAR'")->execute([$index_page]);
$this->index_page = $index_page;
}
diff --git a/server_files/controllers/ajouter_admin.php b/server_files/controllers/ajouter_admin.php
index 395349c..ed7b589 100644
--- a/server_files/controllers/ajouter_admin.php
+++ b/server_files/controllers/ajouter_admin.php
@@ -44,9 +44,10 @@ class NewAdmin {
$this->password = genRandomPhrase(16, true);
- $req = $DB->prepare("INSERT INTO `users`(`email`, `pwd_hash`, `surname`, `first_name`, `role`, `year`)
- VALUES (?, ?, ?, ?, ?, ?);");
- $req->execute([$this->email, password_hash($this->password, PASSWORD_BCRYPT), $this->surname, $this->first_name, "ADMIN", $YEAR]);
+ $req = $DB->prepare("INSERT INTO `users`(`email`, `pwd_hash`, `surname`, `first_name`, `class`, `role`, `year`)
+ VALUES (?, ?, ?, ?, ?, ?, ?);");
+ $req->execute([$this->email, password_hash($this->password, PASSWORD_BCRYPT), $this->surname,
+ $this->first_name, "ADULT", "ADMIN", $YEAR]);
Mailer::sendAddAdminMail($this);
}
diff --git a/server_files/controllers/poser_questions.php b/server_files/controllers/poser_questions.php
index 170bbcf..de5b3f4 100644
--- a/server_files/controllers/poser_questions.php
+++ b/server_files/controllers/poser_questions.php
@@ -30,7 +30,8 @@ class GiveQuestions
* @var Team $to_team
*/
private $to_team;
- private $question_1;
+ private $question_0;
+ private $question_1;
private $question_2;
private $question_3;
private $question_4;
@@ -50,7 +51,7 @@ class GiveQuestions
$this->files = [];
$this->has_files = false;
- for ($i = 1; $i <= 6; ++$i) {
+ for ($i = 0; $i <= 6; ++$i) {
if (strlen($files["file_$i"]["name"]) > 0) {
$this->files[] = $files["file_$i"];
$this->has_files = true;
@@ -59,7 +60,7 @@ class GiveQuestions
$this->files[] = null;
}
- $this->questions = [$this->question_1, $this->question_2, $this->question_3, $this->question_4, $this->question_5, $this->question_6];
+ $this->questions = [$this->question_0, $this->question_1, $this->question_2, $this->question_3, $this->question_4, $this->question_5, $this->question_6];
}
public function makeVerifications()
@@ -73,12 +74,12 @@ class GiveQuestions
"Vous devez poser au moins 3 questions.");
ensure(!$this->has_files || $this->no_drawing, "Vous devez confirmer ne pas avoir inclus de texte dans vos pièces jointes.");
- for ($i = 3; $i < 6; ++$i) {
+ for ($i = 4; $i <= 6; ++$i) {
if ($this->questions[$i] == "")
$this->questions[$i] = null;
}
- for ($i = 0; $i < 6; ++$i) {
+ for ($i = 0; $i <= 6; ++$i) {
ensure($this->files[$i]["size"] <= 2e6, "Le fichier doit peser moins que 2 Mo.");
ensure(!$this->files[$i]["error"], "Une erreur est survenue. Veuillez vérifier vos pièces jointes. Elles ne doivent pas peser plus de 2 Mo chacune.");
}
@@ -92,7 +93,7 @@ class GiveQuestions
/** @var Question[] $questions */
$questions = Question::getQuestions($team, $this->to_team);
- for ($i = 0; $i < 6; ++$i) {
+ for ($i = 0; $i <= 6; ++$i) {
$question = $questions[$i];
if ($question->getQuestion() != $this->questions[$i] && $question->getAttachedFile() != null) {
unlink("$LOCAL_PATH/files/" . $question->getAttachedFile());
diff --git a/server_files/controllers/probleme.php b/server_files/controllers/probleme.php
index c7370d3..42085a2 100644
--- a/server_files/controllers/probleme.php
+++ b/server_files/controllers/probleme.php
@@ -5,7 +5,7 @@ $problem = htmlspecialchars($_GET["probleme"]);
if (!preg_match("#[0-4]#", $problem))
require_once "server_files/404.php";
-if (isset($_GET["modifier"]) && $_SESSION["role"] != Role::ADMIN)
+if (!isset($_SESSION["user_id"]) || $_SESSION["role"] != Role::ADMIN)
require_once "server_files/403.php";
$has_error = false;
diff --git a/server_files/controllers/repondre_questions.php b/server_files/controllers/repondre_questions.php
index 69988ba..318a48d 100644
--- a/server_files/controllers/repondre_questions.php
+++ b/server_files/controllers/repondre_questions.php
@@ -26,6 +26,7 @@ class AnswerQuestions
* @var Team $to_team
*/
private $from_team;
+ private $answer_0;
private $answer_1;
private $answer_2;
private $answer_3;
@@ -46,7 +47,7 @@ class AnswerQuestions
$this->files = [];
$this->has_files = false;
- for ($i = 1; $i <= 6; ++$i) {
+ for ($i = 0; $i <= 6; ++$i) {
if (strlen($files["file_$i"]["name"]) > 0) {
$this->files[] = $files["file_$i"];
$this->has_files = true;
@@ -55,7 +56,7 @@ class AnswerQuestions
$this->files[] = null;
}
- $this->answers = [$this->answer_1, $this->answer_2, $this->answer_3, $this->answer_4, $this->answer_5, $this->answer_6];
+ $this->answers = [$this->answer_0, $this->answer_1, $this->answer_2, $this->answer_3, $this->answer_4, $this->answer_5, $this->answer_6];
}
public function makeVerifications()
@@ -67,12 +68,12 @@ class AnswerQuestions
ensure($team->getProblem() == $this->from_team->getProblem(), "Les équipes ne travaillent pas sur le même problème.");
ensure(!$this->has_files || $this->no_drawing, "Vous devez confirmer ne pas avoir inclus de texte dans vos pièces jointes.");
- for ($i = 0; $i < 6; ++$i) {
+ for ($i = 1; $i <= 6; ++$i) {
if ($this->answers[$i] == "")
$this->answers[$i] = null;
}
- for ($i = 0; $i < 6; ++$i) {
+ for ($i = 0; $i <= 6; ++$i) {
ensure($this->files[$i]["size"] <= 2e6, "Le fichier doit peser moins que 2 Mo.");
ensure(!$this->files[$i]["error"], "Une erreur est survenue. Veuillez vérifier vos pièces jointes. Elles ne doivent pas peser plus de 2 Mo chacune.");
}
@@ -86,7 +87,7 @@ class AnswerQuestions
/** @var Question[] $questions */
$questions = Question::getQuestions($this->from_team, $team);
- for ($i = 0; $i < 6; ++$i) {
+ for ($i = 0; $i <= 6; ++$i) {
$question = $questions[$i];
if ($question->getAnswer() != $this->answers[$i] && $question->getAttachedFileAnswer() != null) {
unlink("$LOCAL_PATH/files/" . $question->getAttachedFileAnswer());
diff --git a/server_files/controllers/suivi_correspondances.php b/server_files/controllers/suivi_correspondances.php
index a120b5d..e76005d 100644
--- a/server_files/controllers/suivi_correspondances.php
+++ b/server_files/controllers/suivi_correspondances.php
@@ -64,12 +64,12 @@ switch (Phase::getCurrentPhase()) {
case Phase::PHASE2:
$req = $DB->query("SELECT DISTINCT `teams`.`id` FROM `teams`"
. " WHERE `id` NOT IN (SELECT `q1`.`from` FROM `questions` AS `q1`"
- . " JOIN `questions` AS `q2` ON `q2`.`from` = `q1`.`from` AND `q2`.`number` = 1"
- . " JOIN `questions` AS `q3` ON `q3`.`from` = `q1`.`from` AND `q3`.`number` = 2"
- . " JOIN `questions` AS `q4` ON `q4`.`from` = `q1`.`from` AND `q4`.`number` = 3"
- . " JOIN `questions` AS `q5` ON `q5`.`from` = `q1`.`from` AND `q5`.`number` = 4"
- . " JOIN `questions` AS `q6` ON `q6`.`from` = `q1`.`from` AND `q6`.`number` = 5"
- . " WHERE `q1`.`number` = 0"
+ . " JOIN `questions` AS `q2` ON `q2`.`from` = `q1`.`from` AND `q2`.`number` = 2"
+ . " JOIN `questions` AS `q3` ON `q3`.`from` = `q1`.`from` AND `q3`.`number` = 3"
+ . " JOIN `questions` AS `q4` ON `q4`.`from` = `q1`.`from` AND `q4`.`number` = 4"
+ . " JOIN `questions` AS `q5` ON `q5`.`from` = `q1`.`from` AND `q5`.`number` = 5"
+ . " JOIN `questions` AS `q6` ON `q6`.`from` = `q1`.`from` AND `q6`.`number` = 6"
+ . " WHERE `q1`.`number` = 1"
. " AND (`q1`.`question` != '" . Question::DEFAULT_QUESTIONS[0] . "'"
. " OR `q2`.`question` != '" . Question::DEFAULT_QUESTIONS[1] . "'"
. " OR `q3`.`question` != '" . Question::DEFAULT_QUESTIONS[2] . "'"
@@ -82,12 +82,12 @@ switch (Phase::getCurrentPhase()) {
case Phase::PHASE3:
$req = $DB->query("SELECT DISTINCT `teams`.`id` FROM `teams`"
. " WHERE `id` NOT IN (SELECT `q1`.`to` FROM `questions` AS `q1`"
- . " JOIN `questions` AS `q2` ON `q2`.`to` = `q1`.`to` AND `q2`.`number` = 1"
- . " JOIN `questions` AS `q3` ON `q3`.`to` = `q1`.`to` AND `q3`.`number` = 2"
- . " JOIN `questions` AS `q4` ON `q4`.`to` = `q1`.`to` AND `q4`.`number` = 3"
- . " JOIN `questions` AS `q5` ON `q5`.`to` = `q1`.`to` AND `q5`.`number` = 4"
- . " JOIN `questions` AS `q6` ON `q6`.`to` = `q1`.`to` AND `q6`.`number` = 5"
- . " WHERE `q1`.`question` = 0"
+ . " JOIN `questions` AS `q2` ON `q2`.`to` = `q1`.`to` AND `q2`.`number` = 2"
+ . " JOIN `questions` AS `q3` ON `q3`.`to` = `q1`.`to` AND `q3`.`number` = 3"
+ . " JOIN `questions` AS `q4` ON `q4`.`to` = `q1`.`to` AND `q4`.`number` = 4"
+ . " JOIN `questions` AS `q5` ON `q5`.`to` = `q1`.`to` AND `q5`.`number` = 5"
+ . " JOIN `questions` AS `q6` ON `q6`.`to` = `q1`.`to` AND `q6`.`number` = 6"
+ . " WHERE `q1`.`question` = 1"
. " AND (`q1`.`answer` IS NOT NULL"
. " OR `q2`.`answer` IS NOT NULL"
. " OR `q3`.`answer` IS NOT NULL"
diff --git a/server_files/model.php b/server_files/model.php
index 07aeeaa..1f73cfd 100644
--- a/server_files/model.php
+++ b/server_files/model.php
@@ -119,6 +119,11 @@ function canValidate(Team $team)
function printDocuments($documents)
{
+ if (sizeof($documents) == 0) {
+ echo "
\nPas de document envoyé pour le moment.\n
\n";
+ return;
+ }
+
echo "
\n";
foreach ($documents as $document) {
$file_id = $document->getFileId();
diff --git a/server_files/services/mail.php b/server_files/services/mail.php
index 07d6979..f3963eb 100644
--- a/server_files/services/mail.php
+++ b/server_files/services/mail.php
@@ -7,7 +7,7 @@ class Mailer
global $MAIL_DOMAIN, $URL_BASE, $YEAR;
$content = preg_replace("#{URL_BASE}#", $URL_BASE, $content);
- $content = preg_replace("#{YEAR}#", $YEAR, $content);
+ $content = preg_replace("#{YEAR}#", $YEAR . "- " . ($YEAR + 1), $content);
$headers = "From: \"Contact Corres2Math\" <" . $from . "@" . $MAIL_DOMAIN . ">\r\n";
$headers .= "Reply-To: \"Contact corres2Math\" \r\n";
@@ -68,7 +68,7 @@ class Mailer
$content = preg_replace("#{SURNAME}#", $new_user->surname, $content);
$content = preg_replace("#{TOKEN}#", $new_user->confirm_email_token, $content);
- self::sendMail($new_user->email, "Inscription aux Correspondances des Jeunes Mathématicien·ne·s $YEAR", $content);
+ self::sendMail($new_user->email, "Inscription aux Correspondances des Jeunes Mathématicien·ne·s $YEAR - " . ($YEAR + 1), $content);
}
public static function sendConfirmEmail(User $user)
@@ -80,36 +80,42 @@ class Mailer
$content = preg_replace("#{SURNAME}#", $user->getSurname(), $content);
$content = preg_replace("#{TOKEN}#", $user->getConfirmEmailToken(), $content);
- self::sendMail($user->getEmail(), "Confirmation d'adresse e-mail – Correspondances des Jeunes Mathématicien·ne·s $YEAR", $content);
+ self::sendMail($user->getEmail(), "Confirmation d'adresse e-mail – Correspondances des Jeunes Mathématicien·ne·s $YEAR - " . ($YEAR + 1), $content);
}
public static function sendChangeEmailAddressMail(User $user)
{
+ global $YEAR;
+
$content = self::getTemplate("change_email_address");
$content = preg_replace("#{FIRST_NAME}#", $user->getFirstName(), $content);
$content = preg_replace("#{SURNAME}#", $user->getSurname(), $content);
$content = preg_replace("#{TOKEN}#", $user->getConfirmEmailToken(), $content);
- self::sendMail($user->getEmail(), "Changement d'adresse e-mail – Correspondances des Jeunes Mathématicien·ne·s", $content);
+ self::sendMail($user->getEmail(), "Changement d'adresse e-mail – Correspondances des Jeunes Mathématicien·ne·s $YEAR - " . ($YEAR + 1), $content);
}
public static function sendForgottenPasswordProcedureMail(User $user)
{
+ global $YEAR;
+
$content = self::getTemplate("forgotten_password");
$content = preg_replace("#{FIRST_NAME}#", $user->getFirstName(), $content);
$content = preg_replace("#{SURNAME}#", $user->getSurname(), $content);
$content = preg_replace("#{TOKEN}#", $user->getForgottenPasswordToken(), $content);
- self::sendMail($user->getEmail(), "Mot de passe oublié – Correspondances des Jeunes Mathématicien·ne·s", $content);
+ self::sendMail($user->getEmail(), "Mot de passe oublié – Correspondances des Jeunes Mathématicien·ne·s $YEAR - " . ($YEAR + 1), $content);
}
public static function sendChangePasswordMail(User $user)
{
+ global $YEAR;
+
$content = self::getTemplate("change_password");
$content = preg_replace("#{FIRST_NAME}#", $user->getFirstName(), $content);
$content = preg_replace("#{SURNAME}#", $user->getSurname(), $content);
- self::sendMail($user->getEmail(), "Mot de passe changé – Correspondances des Jeunes Mathématicien·ne·s", $content);
+ self::sendMail($user->getEmail(), "Mot de passe changé – Correspondances des Jeunes Mathématicien·ne·s $YEAR - " . ($YEAR + 1), $content);
}
public static function sendAddAdminMail(NewAdmin $new_admin)
@@ -121,7 +127,7 @@ class Mailer
$content = preg_replace("#{SURNAME}#", $new_admin->surname, $content);
$content = preg_replace("#{PASSWORD}#", $new_admin->password, $content);
- self::sendMail($new_admin->email, "Ajout d'un administrateur – Correspondances des Jeunes Mathématicien·ne·s $YEAR", $content);
+ self::sendMail($new_admin->email, "Ajout d'un administrateur – Correspondances des Jeunes Mathématicien·ne·s $YEAR - " . ($YEAR + 1), $content);
}
public static function sendAddTeamMail(User $user, Team $team)
@@ -133,10 +139,13 @@ class Mailer
$content = preg_replace("#{SURNAME}#", $user->getSurname(), $content);
$content = preg_replace("#{TEAM_NAME}#", $team->getName(), $content);
$content = preg_replace("#{TRIGRAM}#", $team->getTrigram(), $content);
- $content = preg_replace("#{PROBLEM}#", $team->getProblem(), $content);
- $content = preg_replace("#{ACCESS_CODE}#", $team->getAccessCode(), $content);
+ $content = preg_replace("#{ACCESS_CODE}#", $team->getAccessCode(), $content);
+ if ($team->getProblem() > 0)
+ $content = preg_replace("#{PROBLEM}#", "pour le problème" . $team->getProblem(), $content);
+ else
+ $content = preg_replace("#{PROBLEM}#", "", $content);
- self::sendMail($user->getEmail(), "Ajout d'une équipe – Correspondances des Jeunes Mathématicien·ne·s $YEAR", $content);
+ self::sendMail($user->getEmail(), "Ajout d'une équipe – Correspondances des Jeunes Mathématicien·ne·s $YEAR - " . ($YEAR + 1), $content);
}
public static function sendJoinTeamMail(User $user, Team $team)
@@ -148,9 +157,12 @@ class Mailer
$content = preg_replace("#{SURNAME}#", $user->getSurname(), $content);
$content = preg_replace("#{TEAM_NAME}#", $team->getName(), $content);
$content = preg_replace("#{TRIGRAM}#", $team->getTrigram(), $content);
- $content = preg_replace("#{PROBLEM}#", $team->getProblem(), $content);
+ if ($team->getProblem() > 0)
+ $content = preg_replace("#{PROBLEM}#", "pour le problème" . $team->getProblem(), $content);
+ else
+ $content = preg_replace("#{PROBLEM}#", "", $content);
- self::sendMail($user->getEmail(), "Équipe rejointe – Correspondances des Jeunes Mathématicien·ne·s $YEAR", $content);
+ self::sendMail($user->getEmail(), "Équipe rejointe – Correspondances des Jeunes Mathématicien·ne·s $YEAR - " . ($YEAR + 1), $content);
}
public static function sendRequestValidationMail(Team $team)
@@ -163,7 +175,7 @@ class Mailer
$content = preg_replace("#{PROBLEM}#", $team->getProblem(), $content);
$content = preg_replace("#{ACCESS_CODE}#", $team->getAccessCode(), $content);
- self::broadcastToAdmins("Ajout d'une équipe – Correspondances des Jeunes Mathématicien·ne·s $YEAR", $content);
+ self::broadcastToAdmins("Demande de validation – Correspondances des Jeunes Mathématicien·ne·s $YEAR - " . ($YEAR + 1), $content);
}
public static function sendValidateTeam($team, $message)
@@ -176,7 +188,7 @@ class Mailer
$message = preg_replace("#\n#", " \n", $message);
$content = preg_replace("#{MESSAGE}#", $message, $content);
- self::broadcastToTeam($team, "Équipe validée – Correspondances des Jeunes Mathématicien·ne·s $YEAR", $content);
+ self::broadcastToTeam($team, "Équipe validée – Correspondances des Jeunes Mathématicien·ne·s $YEAR - " . ($YEAR + 1), $content);
}
public static function sendUnvalidateTeam($team, $message)
@@ -189,7 +201,7 @@ class Mailer
$message = preg_replace("#\n#", " \n", $message);
$content = preg_replace("#{MESSAGE}#", $message, $content);
- self::broadcastToTeam($team, "Équipe non validée – Correspondances des Jeunes Mathématicien·ne·s $YEAR", $content);
+ self::broadcastToTeam($team, "Équipe non validée – Correspondances des Jeunes Mathématicien·ne·s $YEAR - " . ($YEAR + 1), $content);
}
public static function sendNewVideo(NewVideo $video, Team $team)
@@ -201,7 +213,7 @@ class Mailer
$content = preg_replace("#{TRIGRAM}#", $team->getTrigram(), $content);
$content = preg_replace("#{PROBLEM}#", $team->getProblem(), $content);
$content = preg_replace("#{VIDEO_LINK}#", $video->link, $content);
- self::broadcastToAdmins("Nouvelle vidéo – Correspondances des Jeunes Mathématicien·ne·s $YEAR", $content);
+ self::broadcastToAdmins("Nouvelle vidéo – Correspondances des Jeunes Mathématicien·ne·s $YEAR - " . ($YEAR + 1), $content);
}
public static function sendNewAnswer(NewAnswer $video, Team $team)
@@ -217,7 +229,7 @@ class Mailer
$content = preg_replace("#{PROBLEM}#", $team->getProblem(), $content);
$content = preg_replace("#{VIDEO_LINK}#", $video->link, $content);
- self::broadcastToAdmins("Nouvelle vidéo de réponse – Correspondances des Jeunes Mathématicien·ne·s $YEAR", $content);
+ self::broadcastToAdmins("Nouvelle vidéo de réponse – Correspondances des Jeunes Mathématicien·ne·s $YEAR - " . ($YEAR + 1), $content);
}
public static function validateVideo(Video $video, $message)
@@ -238,6 +250,7 @@ class Mailer
$message = preg_replace("#\n#", " \n", $message);
$content = preg_replace("#{MESSAGE}#", $message, $content);
- self::broadcastToTeam($team, ($video->getValidation() == Video::REJECTED ? "Vidéo refusée " : "Vidéo acceptée ") . $team->getTrigram() . " – Correspondances des Jeunes Mathématicien·ne·s $YEAR", $content);
+ self::broadcastToTeam($team, ($video->getValidation() == Video::REJECTED ? "Vidéo refusée " : "Vidéo acceptée ")
+ . $team->getTrigram() . " – Correspondances des Jeunes Mathématicien·ne·s $YEAR - " . ($YEAR + 1), $content);
}
}
diff --git a/server_files/services/mail_templates/add_team.html b/server_files/services/mail_templates/add_team.html
index 5bd8944..0b2b0a6 100644
--- a/server_files/services/mail_templates/add_team.html
+++ b/server_files/services/mail_templates/add_team.html
@@ -7,7 +7,8 @@
Bonjour {FIRST_NAME} {SURNAME},
-Vous venez de créer l'équipe « {TEAM_NAME} » ({TRIGRAM}) pour les Correspondances des Jeunes Mathématicien·ne·s pour le problème {PROBLEM} et nous vous en remercions.
+Vous venez de créer l'équipe « {TEAM_NAME} » ({TRIGRAM}) pour les Correspondances des Jeunes Mathématicien·ne·s
+{PROBLEM} et nous vous en remercions.
Afin de permettre aux autres membres de votre équipe de vous rejoindre, veuillez leur transmettre le code d'accès :
{ACCESS_CODE}
-Vous venez de rejoindre l'équipe « {TEAM_NAME} » ({TRIGRAM}) pour les Correspondances des Jeunes Mathématicien·ne·s pour le problème {PROBLEM} et nous vous en
-remercions.
+Vous venez de rejoindre l'équipe « {TEAM_NAME} » ({TRIGRAM}) pour les Correspondances des Jeunes Mathématicien·ne·s
+{PROBLEM} et nous vous en remercions.
Cordialement,
diff --git a/server_files/services/mail_templates/unvalidate_team.html b/server_files/services/mail_templates/unvalidate_team.html
index 0d7f226..3c80990 100644
--- a/server_files/services/mail_templates/unvalidate_team.html
+++ b/server_files/services/mail_templates/unvalidate_team.html
@@ -11,7 +11,7 @@ Maleureusement, votre équipe « {TEAM_NAME} » ({TRIGRAM}) n'a pas été valid
de droit à l'image sont correctes.
{MESSAGE}
- N'hésitez pas à nous contacter à l'adresse contact@correspondances-maths.fr
+N'hésitez pas à nous contacter à l'adresse contact@correspondances-maths.fr
pour plus d'informations.
Cordialement,
diff --git a/server_files/services/mail_templates/validate_team.html b/server_files/services/mail_templates/validate_team.html
index 90ecd99..f34caab 100644
--- a/server_files/services/mail_templates/validate_team.html
+++ b/server_files/services/mail_templates/validate_team.html
@@ -9,7 +9,7 @@ Bonjour {FIRST_NAME} {SURNAME},
Félicitations ! Votre équipe « {TEAM_NAME} » ({TRIGRAM}) est désormais validée ! Vous êtes désormais apte à travailler sur
votre problème. Lorsque les Correspondances auront débutées, vous pourrez soumettre votre vidéo sur la plateforme d'inscription.
-{MESSAGE}
+{MESSAGE}
-Malheureusement, votre vidéo de réponse pour le problème {PROBLEM} n'a pas été validée. Pour rappel, vous aviez soumis ce lien : {VIDEO_LINK}.
+Malheureusement, votre vidéo de réponse pour le problème {PROBLEM} n'a pas été validée. Pour rappel, vous aviez soumis
+ce lien : {VIDEO_LINK}.
Si vous aviez soumis une précédente vidéo qui a été validée, elle reste conservée.
-Vous êtes désormais invités à retravailler vos réponses ou votre présentation orale afin que votre prestation soit validée par les organisateurs.
-N'hésitez pas à nous contacter à contact@correspondances-maths.fr si vous souhaitez avoir plus d'informations ou contester ce refus.
+Vous êtes désormais invités à retravailler vos réponses ou votre présentation orale afin que votre prestation soit
+validée par les organisateurs. N'hésitez pas à nous contacter à
+contact@correspondances-maths.fr si vous souhaitez avoir plus
+d'informations ou contester ce refus.
-Malheureusement, votre vidéo pour le problème {PROBLEM} n'a pas été validée. Pour rappel, vous aviez soumis ce lien : {VIDEO_LINK}.
+Malheureusement, votre vidéo pour le problème {PROBLEM} n'a pas été validée. Pour rappel, vous aviez soumis ce lien :
+{VIDEO_LINK}.
Si vous aviez soumis une précédente vidéo qui a été validée, elle reste conservée.
-Vous êtes désormais invités à retravailler vos résultats ou votre présentation orale afin que votre prestation soit validée par les organisateurs.
-N'hésitez pas à nous contacter à contact@correspondances-maths.fr si vous souhaitez avoir plus d'informations ou contester ce refus.
+Vous êtes désormais invités à retravailler vos résultats ou votre présentation orale afin que votre prestation soit
+validée par les organisateurs. N'hésitez pas à nous contacter à
+contact@correspondances-maths.fr si vous souhaitez avoir plus
+d'informations ou contester ce refus.
- Votre équipe a bien été créée ! Voici le code d'accès à transmettre aux autres membres de votre équipe : = $new_team->access_code ?>
+ Votre équipe a bien été créée ! Voici le code d'accès à transmettre aux autres membres de votre équipe :
+ = $new_team->access_code ?>
@@ -21,7 +22,7 @@ require_once "header.php";
- Chacune des informations pourra être modifiée avant que l'équipe soit validée.
+ Chacune des informations pourra être modifiée avant que l'équipe tant que l'équipe n'est pas validée.
+ Pour clore vos Correspondances, vous devez produire, pour chaque vidéo reçue d'une autre équipe, une vidéo de
+ synthèse d'au plus 4 minutes.
+ Cette vidéo doit mettre en perspective de la vidéo initiale en tenant compte de l'échange qui a eu lieu.
+ Vous devez mettre en valeur l’échange questions/réponses, et montrer l'évolution de la résolution au problème.
+
+
+
+ Date limite de soumission : = formatDate($CONFIG->getEndPhase4Date(), true) ?>
+