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:
@ -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;
|
||||
}
|
Reference in New Issue
Block a user