1
0
mirror of https://gitlab.com/animath/si/plateforme.git synced 2025-06-25 06:20:36 +02:00

Optimisation des téléchargements ZIP

This commit is contained in:
Yohann
2019-09-09 12:15:48 +02:00
committed by galaxyoyo
parent 190039a5e8
commit 57d2bb9bec
7 changed files with 90 additions and 59 deletions

View File

@ -133,4 +133,64 @@ function printDocuments($documents) {
$version = $document->getVersion();
echo "$name de $first_name $surname (version $version) : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />";
}
}
function getZipFile($document_type, $tournament_id, $team_id = -1) {
global $LOCAL_PATH;
$tournament = Tournament::fromId($tournament_id);
$zip = new ZipArchive();
$file_name = tempnam("tmp", "tfjm-");
if ($zip->open($file_name, ZipArchive::CREATE) !== true) {
die("Impossible de créer le fichier zip.");
}
switch ($document_type) {
case DocumentType::SOLUTION:
$data = $tournament->getAllSolutions($team_id);
break;
case DocumentType::SYNTHESIS:
$data = $tournament->getAllSyntheses($team_id);
break;
default:
$data = $tournament->getAllDocuments($team_id);
break;
}
/** @var Document | Solution | Synthesis $file */
foreach ($data as $file) {
$file_id = $file->getFileId();
$team = Team::fromId($file->getTeamId());
switch ($document_type) {
case DocumentType::SOLUTION:
$name = "Problème " . $file->getProblem() . " " . $team->getTrigram() . ".pdf";
break;
case DocumentType::SYNTHESIS:
$name = "Note de synthèse " . $team->getTrigram() . " pour " . ($file->getDest() == DestType::OPPOSANT ? "l'opposant" : "le rapporteur") . ".pdf";
break;
default:
$user = User::fromId($file->getUserId());
switch ($file->getType()) {
case DocumentType::PARENTAL_CONSENT:
$name = "Autorisation parentale de " . $user->getFirstName() . " " . $user->getSurname() . ".pdf";
break;
case DocumentType::PHOTO_CONSENT:
$name = "Autorisation de droit à l'image de " . $user->getFirstName() . " " . $user->getSurname() . ".pdf";
break;
default:
$name = "Fiche sanitaire de " . $user->getFirstName() . " " . $user->getSurname() . ".pdf";
break;
}
break;
}
$zip->addFile("$LOCAL_PATH/files/$file_id", $name);
}
$zip->close();
return $file_name;
}