2019-09-05 17:07:41 +00:00
< ? php require_once 'config.php' ; ?>
2019-08-21 20:56:46 +00:00
2019-08-26 14:27:55 +00:00
< ? php
2019-09-02 19:21:37 +00:00
if ( ! isset ( $_SESSION [ " role " ]) || $_SESSION [ " role " ] != " ADMIN " && $_SESSION [ " role " ] != " ORGANIZER " )
2019-09-05 17:07:41 +00:00
require_once " 403.php " ;
2019-09-02 19:21:37 +00:00
2019-08-26 14:27:55 +00:00
if ( isset ( $_POST [ " download_zip " ])) {
$id = $_POST [ " tournament " ];
$tournament_name = $_POST [ " tournament_name " ];
$files_req = $DB -> query ( " SELECT *, COUNT(`problem`) AS `version` FROM `solutions` WHERE `tournament` = ' $id ' GROUP BY `team`, `problem` ORDER BY `team`, `problem`, `uploaded_at` DESC; " );
$zip = new ZipArchive ();
$temp = tempnam ( " tmp " , " tfjm- " );
if ( $zip -> open ( $temp , ZipArchive :: CREATE ) !== true ) {
die ( " Impossible de créer le fichier zip. " );
}
while (( $data_file = $files_req -> fetch ()) !== false ) {
$file_id = $data_file [ " file_id " ];
$problem = $data_file [ " problem " ];
$version = $data_file [ " version " ];
$team_id = $data_file [ " team " ];
$team_data = $DB -> query ( " SELECT `name`, `trigram` FROM `teams` WHERE `id` = ' $team_id ' AND `year` = $YEAR ; " ) -> fetch ();
$team_name = $team_data [ " name " ];
$team_trigram = $team_data [ " trigram " ];
$zip -> addFile ( " $LOCAL_PATH /files/ $file_id " , " Problème $problem $team_trigram .pdf " );
}
$zip -> close ();
header ( " Content-Type: application/zip " );
header ( " Content-Disposition: attachment; filename= \" Solutions du tournoi de $tournament_name .zip \" " );
header ( " Content-Length: " . strval ( filesize ( $temp ) + 1 ));
readfile ( $temp );
exit ();
}
?>
2019-09-05 17:07:41 +00:00
< ? php require_once 'header.php' ; ?>
2019-08-21 20:56:46 +00:00
< ? php
2019-08-26 18:14:29 +00:00
$req = $DB -> query ( " SELECT `tournaments`.`id`, `name` FROM `tournaments` JOIN `organizers` ON `tournament` = `tournaments`.`id` WHERE "
2019-08-21 20:56:46 +00:00
. ( $_SESSION [ " role " ] == " ADMIN " ? " " : " `organizer` = ' " . $_SESSION [ " user_id " ] . " ' AND " )
2019-08-26 18:14:29 +00:00
. " `year` = $YEAR GROUP BY `tournament` ORDER BY `name`; " );
2019-08-21 20:56:46 +00:00
while (( $data_tournament = $req -> fetch ()) !== false ) {
echo " <h1>Tournoi de " . $data_tournament [ " name " ] . " </h1> \n " ;
$id = $data_tournament [ " id " ];
2019-09-02 22:01:54 +00:00
$files_req = $DB -> query ( " SELECT *, COUNT(`problem`) AS `version` FROM `solutions` WHERE `tournament` = ' $id ' GROUP BY `team` ORDER BY `team`, `problem`, `uploaded_at` DESC; " );
2019-08-21 20:56:46 +00:00
while (( $data_file = $files_req -> fetch ()) !== false ) {
$file_id = $data_file [ " file_id " ];
$problem = $data_file [ " problem " ];
$version = $data_file [ " version " ];
$team_id = $data_file [ " team " ];
$team_data = $DB -> query ( " SELECT `name`, `trigram` FROM `teams` WHERE `id` = ' $team_id ' AND `year` = $YEAR ; " ) -> fetch ();
$team_name = $team_data [ " name " ];
$team_trigram = $team_data [ " trigram " ];
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 /> " ;
}
2019-08-26 14:27:55 +00:00
?>
< form method = " POST " >
< input type = " hidden " name = " tournament " value = " <?= $id ?> " />
< input type = " hidden " name = " tournament_name " value = " <?= $data_tournament["name"] ?> " />
2019-09-02 22:01:54 +00:00
< input style = " width: 100% " type = " submit " name = " download_zip " value = " Télécharger l'archive " />
2019-08-26 14:27:55 +00:00
</ form >
2019-09-02 22:01:54 +00:00
< hr />
2019-08-26 14:27:55 +00:00
< ? php
2019-08-21 20:56:46 +00:00
}
?>
2019-09-05 17:07:41 +00:00
< ? php require_once 'footer.php' ; ?>