getRole(); if ($user->getTeamId() !== null) $_SESSION["team"] = Team::fromId($user->getTeamId()); } } function quitTeam() { global $DB, $URL_BASE; header("Location: $URL_BASE"); /** @var User $user */ $user = $_SESSION["user"]; $user_id = $user->getId(); $role = $user->getRole(); if ($role == Role::ADMIN) return; if ($role == Role::PARTICIPANT) for ($i = 1; $i <= 5; ++$i) /** @noinspection SqlResolve */ $DB->exec("UPDATE `teams` SET `participant_$i` = NULL WHERE `participant_$i` = $user_id;"); else $DB->exec("UPDATE `teams` SET `encadrant` = NULL WHERE `encadrant` = $user_id;"); $user->setTeamId(null); for ($i = 1; $i <= 4; ++$i) { /** @noinspection SqlResolve */ $DB->exec("UPDATE `teams` SET `participant_$i` = `participant_" . strval($i + 1) . "`, `participant_" . strval($i + 1) . "` = NULL WHERE `participant_$i` IS NULL;"); } $DB->exec("DELETE FROM `teams` WHERE `encadrant` IS NULL OR `participant_1` IS NULL;"); $req = $DB->query("SELECT `file_id` FROM `documents` WHERE `user` = $user_id;"); while (($data = $req->fetch()) !== false) unlink("$URL_BASE/files/" . $data["file_id"]); $DB->exec("DELETE FROM `documents` WHERE `user` = $user_id;"); $_SESSION["team"] = null; unset($_SESSION["team"]); } function userExists($email) { global $DB, $YEAR; $req = $DB->prepare("SELECT `id` FROM `users` WHERE `email` = ? AND `year` = '$YEAR';"); $req->execute([$email]); return $req->fetch(); } function teamExists($name) { global $DB, $YEAR; $req = $DB->prepare("SELECT `id` FROM `teams` WHERE `name` = ? AND `year` = '$YEAR';"); $req->execute([$name]); return $req->fetch(); } function trigramExists($trigram) { global $DB, $YEAR; $req = $DB->prepare("SELECT `id` FROM `teams` WHERE `trigram` = ? AND `year` = '$YEAR';"); $req->execute([$trigram]); return $req->fetch(); } function canValidate(Team $team) { global $DB, $CONFIG; $can_validate = date("Y-m-d H:i:s") < $CONFIG->getInscriptionDate(); $can_validate &= $team->getValidationStatus() == ValidationStatus::NOT_READY; $can_validate &= $team->getEncadrantId() != null; $can_validate &= $team->getParticipants()[2] != null; if ($team->getEncadrantId() != null) { $req = $DB->prepare("SELECT COUNT(*) AS `version` FROM `documents` WHERE `user` = ? AND `problem` = ?;"); $req->execute([$team->getEncadrantId(), $team->getProblem()]); $d = $req->fetch(); $can_validate &= $d["version"] > 0; } for ($i = 1; $i <= 5; ++$i) { if ($team->getParticipants()[$i] === NULL) continue; $req = $DB->prepare("SELECT COUNT(*) AS `version` FROM `documents` WHERE `user` = ? AND `problem` = ?;"); $req->execute([$team->getParticipants()[$i], $team->getProblem()]); $d = $req->fetch(); $can_validate &= $d["version"] > 0; } return $can_validate; } function printDocuments($documents) { echo "
\n"; foreach ($documents as $document) { $file_id = $document->getFileId(); $user = User::fromId($document->getUserId()); $surname = $user->getSurname(); $first_name = $user->getFirstName(); $name = DocumentType::getTranslatedName($document->getType()); $version = $document->getVersion(); echo "$name de $first_name $surname (version $version) : Télécharger
\n"; } echo "
\n"; } function getZipFile($problem, $team_id = -1) { global $LOCAL_PATH; $zip = new ZipArchive(); $file_name = tempnam("tmp", "corres2math-"); if ($zip->open($file_name, ZipArchive::CREATE) !== true) { die("Impossible de créer le fichier zip."); } $data = Document::getAllDocuments($problem, $team_id); /** @var Document $file */ foreach ($data as $file) { $file_id = $file->getFileId(); $user = User::fromId($file->getUserId()); $name = "Autorisation de droit à l'image de " . $user->getFirstName() . " " . $user->getSurname() . ".pdf"; $zip->addFile("$LOCAL_PATH/files/$file_id", $name); } $zip->close(); return $file_name; } function displayVideo($link) { if (preg_match("#(https?\://|)(www\.|)youtube\.com\/watch\?v=(.*)#", $link, $matches)) { $code = $matches[3]; echo "

\n"; } elseif (preg_match("#(https?\://|)(www\.|)vimeo\.com/([0-9]*)#", $link, $matches)) { $code = $matches[3]; echo "
"; } elseif (preg_match("#(https?\://|)(www\.|)dailymotion\.com/video/(.*)#", $link, $matches)) { $code = $matches[3]; echo "
"; } }