Changeset 65480 in spip-zone


Ignore:
Timestamp:
Sep 3, 2012, 3:00:49 PM (7 years ago)
Author:
cedric@…
Message:

Plutot qu'appliquer la conversion pdf systematiquement sur recuperer_fond, sur la base d'un parametre du env, ce qui provoque des conversion imbriquée erronée dans les modèles, on évite d'utiliser le pipeline recuperer_fond, et on applique la conversion en filtre sur le #INCLURE réalisé dans spipdf.html

Location:
_plugins_/spipdf
Files:
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/spipdf/plugin.xml

    r65477 r65480  
    66        <licence>(c) 2010 GPL</licence>
    77        <lien>http://www.spip-contrib.net/spiPDF-v0-2-0-generer-des-contenus-sur-mesure-en-PDF</lien>
    8         <version>0.2.1</version>
     8        <version>0.2.2</version>
    99        <etat>stable</etat>
    1010        <description>
     
    1515        <pipeline>
    1616                <nom>pre_typo</nom>
    17                 <inclure>spipdf.php</inclure>
    18         </pipeline>
    19         <pipeline>
    20                 <nom>recuperer_fond</nom>
    21                 <inclure>spipdf.php</inclure>
     17                <inclure>spipdf_fonctions.php</inclure>
    2218        </pipeline>
    2319        <pipeline>
    2420                <nom>affichage_final</nom>
    25                 <inclure>spipdf.php</inclure>
     21                <inclure>spipdf_fonctions.php</inclure>
    2622        </pipeline>
    2723        <categorie>edition</categorie>
  • _plugins_/spipdf/spipdf.html

    r41472 r65480  
    1 #HTTP_HEADER{Content-Type: application/pdf}#HTTP_HEADER{Content-Disposition: attachment; filename=#ENV{nom_fichier,document}.pdf}#INCLURE{fond=#ENV{spipdf},html2pdf=oui,env}
     1#HTTP_HEADER{Content-Type: application/pdf}#HTTP_HEADER{Content-Disposition: attachment; filename=#ENV{nom_fichier,document}.pdf}[(#INCLURE{fond=#ENV{spipdf},env}|spipdf_html2pdf)]
  • _plugins_/spipdf/spipdf_fonctions.php

    r65479 r65480  
    227227
    228228// traitement principal. avec ce pipeline, le PDF est mis en cache et recalculé "normalement"
    229 function spipdf_recuperer_fond($flux){
    230 
    231         // Le squelette est-il appelé par spipdf.html
    232         if ($flux['args']['contexte']['html2pdf']=='oui'){
    233 
    234                 // récupérer le contenu et le nettoyer pour la génération
    235                 $html = $flux['data']['texte'];
     229function spipdf_html2pdf($html){
    236230
    237231                // les librairies possibles
     
    333327                        $mpdf->WriteHTML($html);
    334328
    335                         $flux['data']['texte'] = $mpdf->Output('', 'S'); // envoyer le code binaire du PDF dans le flux
     329                        $html = $mpdf->Output('', 'S'); // envoyer le code binaire du PDF dans le flux
    336330                        $echap_special_pdf_chars = true;
    337331
     
    346340                        $dompdf->render();
    347341
    348                         $flux['data']['texte'] = $dompdf->output(); // envoyer le code binaire du PDF dans le flux
     342                        $html = $dompdf->output(); // envoyer le code binaire du PDF dans le flux
    349343                        $echap_special_pdf_chars = true;
    350344
     
    370364                                $html2pdf->writeHTML($html);
    371365
    372                                 $flux['data']['texte'] = $html2pdf->Output('', true); // envoyer le code binaire du PDF dans le flux
     366                                $html = $html2pdf->Output('', true); // envoyer le code binaire du PDF dans le flux
    373367                                $echap_special_pdf_chars = true;
    374368                        } catch (HTML2PDF_exception $e) {
     
    381375                // l'erreur d'évaluation est liée à la directive short_open_tag=On dans la configuration de PHP
    382376                if (!empty($echap_special_pdf_chars)
    383                   AND strpos($flux['data']['texte'],"<"."?")!==false){
    384                         $flux['data']['texte'] = str_replace("<"."?", "<\2\2?", $flux['data']['texte']);
    385                 }
    386 
    387         }
    388 
    389         return $flux;
     377                  AND strpos($html,"<"."?")!==false){
     378                        $html = str_replace("<"."?", "<\2\2?", $html);
     379                }
     380
     381        return $html;
    390382
    391383}
Note: See TracChangeset for help on using the changeset viewer.