+19
−33
+13
−0
Chargement en cours
Le déclenchement de la prévisualisation était mal situé, car en amont des exécutions éventuelles de code PHP présents dans le code compilé du squelette. C'était déjà peu jouable pour la prévisualisation HTML, franchement inutilisable pour une prévisualisation PDF (voir notamment le "plugin spipdf":http://contrib.spip.net/spiPDF-v0-2-1-generer-des-contenus-sur-mesure-en-PDF qui oblige à dédoubler tous les squelettes faute de pouvoir faire ça). On déplace donc un peu en aval ce déclenchement, et on confie le comportement standard à une fonction surchargeable: "public_previsualisation". Comme exemple d'utilisation avec la lib mpdf (à installer) rajouter dans squelettes-dist/formulaires/administration.html le bouton suivant : <pre><code class='html'> [<a class="spip-admin-boutons" href="(#VAL{lib/mpdf}|is_dir|?{#SELF} |parametre_url_nonvide{var_mode,preview} |parametre_url_nonvide{pdf,1})">PDF</a> ] </code></pre> et définir dans mes_fontions.php <pre><code class='php'> function public_previsualisation($page) { if (!_request('pdf') OR !is_readable($f = _DIR_RACINE . 'lib/mpdf/mpdf.php')) return public_previsualisation_dist($page); include_once($f); $f = str_replace(' ', '_', $GLOBALS['meta']['nom_site']) . '.pdf'; $GLOBALS['flag_preserver'] = true; $page['entetes']['Content-Type'] = "application/pdf"; $page['entetes']['Content-Disposition'] = "attachment; filename=$f"; $mpdf = new mPDF($GLOBALS['meta']['charset']); $mpdf->WriteHTML($page['texte']); $page['texte'] = $mpdf->Output('', 'S'); return $page; } function parametre_url_nonvide($url, $c, $v=NULL, $sep='&') { return !$url ? '' : parametre_url($url, $c, $v, $sep); } </code></pre>
Forge communautaire SPIP | Charte d'utilisation | Signaler un problème sur ce site