} //Unblock user session session_write_close(); $zip = new ZipArchive(); $zipfilename = tempnam($CFG->dataroot . '/temp/', 'vpl_zipdownloadall'); if ($zip->open($zipfilename, ZIPARCHIVE::CREATE)) { foreach ($all_data as $data) { $user = $data->userinfo; $fgm = $data->submission->get_submitted_fgm(); $zipdirname = vpl_selzipdirname($user->lastname . ' ' . $user->firstname); //Create directory $zip->addEmptyDir($zipdirname); $zipdirname .= '/'; $sourcedir = $data->submission->get_submission_directory() . '/'; foreach ($fgm->getFileList() as $filename) { $source = file_group_process::encodeFileName($filename); $zip->addFile($sourcedir . $source, $zipdirname . $filename); } if ($includeCE) { $CE = $data->submission->getCE(); if (!($CE['compilation'] === 0)) { $zip->addFromString($zipdirname . 'vpl_data/compilation.txt', $CE['compilation']); if ($CE['executed']) { $zip->addFromString($zipdirname . 'vpl_data/execution.txt', $CE['execution']); } } } } $zip->close(); //Get zip data $data = file_get_contents($zipfilename);
/** * Get list of files * * @return string[] */ function getFileList() { return array_values(array_unique(array_merge(self::$base_files, parent::getFileList()))); }