gamutable/action/pdf_gamutable.php
tofulm 8ba264d69b pour les pdfs, on passe par une action afin de pouvoir avoir tous les
cas possibles. Le gros problème a été de gérer la génération du pdf et
surtout son telechargement.
la solution :
- le fichier action cree le pdf et le place dans
  IMG/gamutable_pdf/xxxxxxxxxx.mdf (nom du fichier hashé)
- on ajoute un cron dans 20 secondes pour supprimer ce fichier
- TODO, mainteannt jouer avec l'action !
2022-09-27 15:01:52 +02:00

52 lines
1.1 KiB
PHP

<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function action_pdf_gamutable_dist() {
include_spip('inc/autoriser');
if (! autoriser('generer', 'gamutablepdf')) {
return false;
}
$fichierpdf = _request('fichierpdf') ?? '';
$namepdf = _request('namepdf') ?? $fichierpdf;
$header = _request('header') ?? [];
$Tdata = _request('data') ?? [];
if (empty($header) or empty($fichierpdf)) {
exit;
}
$header = array_values($header);
$Tcles = [];
if (!empty($Tdata)) {
foreach ($Tdata as $d) {
$Tcles[] = $d['html']['id'];
}
}
if (empty($Tcles)) {
$fond = recuperer_fond('gamutable_pdf/' . $fichierpdf);
} else {
$fond = recuperer_fond('gamutable_pdf/' . $fichierpdf,['ids' => implode(',', $Tcles)]);
}
include_spip('spipdf_options');
include_spip('inc/spipdf');
$a = spipdf_html2pdf($fond);
$dir = sous_repertoire(_DIR_IMG . 'pdfgamutable');
$chemin = $dir . md5($namepdf) . '.pdf' ;
file_put_contents($chemin, $a);
$id_job = job_queue_add(
'gamutable_clean_pdf',
'Gamutable nettoyer pdf',
[$chemin],
'inc/gamutable_clean_pdf',
false,
time() + 20
);
echo url_absolue($chemin);
}