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 !
52 lines
1.1 KiB
PHP
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);
|
|
}
|