- switchable report output type

This commit is contained in:
Wiesner András 2024-09-27 13:52:11 +02:00
parent 1e6590f6bb
commit 8238fab8b7

View File

@ -534,6 +534,7 @@ function generate_report_by_groups(ReqHandler &$rh, array $params): string
$gameid = trim($params["gameid"]); $gameid = trim($params["gameid"]);
$filter = trim($params["filter"] ?? ""); $filter = trim($params["filter"] ?? "");
$groups = explode_list(trim($params["groups"])); // TODO: lehessen több csoportra is $groups = explode_list(trim($params["groups"])); // TODO: lehessen több csoportra is
$outtype = trim($params["outtype"] ?? "pdf");
$game = $gameMgr->getGame($gameid); $game = $gameMgr->getGame($gameid);
@ -552,24 +553,33 @@ function generate_report_by_groups(ReqHandler &$rh, array $params): string
// generate latex // generate latex
$report_dir = "report"; $report_dir = "report";
$report->saveTeX($report_dir . DIRECTORY_SEPARATOR . "stats"); $content_dir = $report_dir . DIRECTORY_SEPARATOR . "stats";
$report->saveTeX($content_dir);
// run LuaLaTeX twice $output = "";
chdir($report_dir); $contentType = "";
$tex_cmd = "lualatex -interaction=nonstopmode report.tex"; if ($outtype === "pdf") {
exec($tex_cmd); // run LuaLaTeX twice
exec($tex_cmd); chdir($report_dir);
$tex_cmd = "lualatex -interaction=nonstopmode report.tex";
exec($tex_cmd);
exec($tex_cmd);
$output = "report.pdf"; $output = "report.pdf";
$contentType = "application/pdf";
} else {
$output = $content_dir . DIRECTORY_SEPARATOR . "content.tex";
$contentType = "text/plain";
}
header("Content-Type: application/pdf"); header("Content-Type: ${contentType}");
header("Content-Length: " . filesize($output)); header("Content-Length: " . filesize($output));
// deploy the generated PDF // deploy the generated PDF
$pdf = fopen($output, "r"); $f = fopen($output, "r");
if ($pdf !== false) { if ($f !== false) {
fpassthru($pdf); fpassthru($f);
fclose($pdf); fclose($f);
} }
return "OK"; return "OK";