Changeset 28616 in spip-zone


Ignore:
Timestamp:
May 13, 2009, 5:47:24 AM (12 years ago)
Author:
paladin@…
Message:

Quelques options complémentaires pour l'impression PDF.

Et la possibilité d'éditer d'autres types de documents (carte adhérent par exemple).

'mon_diplome' nom peut-être mal choisi vu qu'il n'y a pas de limite au type de document ?

'ma_paperasse' ?

Location:
_plugins_/_stable_/mon_diplome
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/mon_diplome/LISEZ-MOI.txt

    r28601 r28616  
    22Documentation sur: http://www.quesaco.org/Mon-diplome-SPIP
    33
     4A propos de html2pdf: http://html2pdf.spipu.net/
    45
    56IGNOTI NULLA CUPIDO
  • _plugins_/_stable_/mon_diplome/balise/lien_mon_diplome.php

    r28563 r28616  
    6161               
    6262                foreach($queries as $key=>$val) {
     63                        if($key == 'page') continue;
    6364                        $params .= "&$key=$val";
    6465                }
    6566               
    66                 $result = generer_url_public(_PLOM_MODELE_DEFAUT, $args) . $params;
     67                $queries['page'] = trim($queries['page']);
     68               
     69                if(empty($queries['page'])) $queries['page'] = _PLOM_PAGE_DEFAUT;
     70               
     71                $result = generer_url_public($queries['page'], $args) . $params;
    6772                               
    6873                return ("<a href=\"$result\">" . _T('plom:obtenir_mon_diplome') . "</a>");
  • _plugins_/_stable_/mon_diplome/balise/mon_diplome_pdf.php

    r28563 r28616  
    6868                                if(array_key_exists($key, $plom_options))
    6969                                {
    70                                         $val = trim($val, "\"'");
    71                                         $result[$key] = $val;
     70                                        $result[$key] = trim(trim($val, "\"'"));
    7271                                }
    7372                        }
     
    108107                                ;
    109108                }
    110                
     109                else {
     110                        $queries['modele_fond'] = null;
     111                }
     112
    111113                $calque = 'modele_texte';
    112114                $ext = ".html";
     
    114116                $queries[$calque] =
    115117                                ($f = plom_chemin_calque ($calque, $ext, $queries))
    116                                 ? $f
     118                                ? $queries[$calque]
    117119                                : plom_alert_and_die (_T('plom:erreur_fichier_s_manquant', array('s' => $queries[$calque].$ext)))
    118120                                ;
     
    131133                               
    132134                // construction à partir du squelette
    133                 $content = recuperer_fond("modeles/mon_diplome", $contexte);
     135                $content = recuperer_fond("modeles/" . $queries['modele_texte'], $contexte);
    134136               
    135137                include_spip("html2pdf/html2pdf.class");
     138                include_spip('inc/texte');
     139               
     140foreach($queries as $key => $val) { spip_log("B: $key = $val"); }               
    136141               
    137142                $html2pdf = new HTML2PDF(
    138                                                                  (($queries['orientation'] == "paysage") ? 'P' : 'L')
     143                                                                 (($queries['orientation'] == "portrait") ? 'P' : 'L')
    139144                                                                 , $queries['format']
    140145                                                                 , $GLOBALS['auteur_session']['lang']
     
    144149               
    145150                // afficher la page en entier
    146                 $html2pdf->pdf->SetDisplayMode('fullpage');
    147                 $html2pdf->pdf->SetAutoPageBreak(false, 0);
     151                $html2pdf->pdf->SetDisplayMode($queries['SetDisplayMode']);
     152                $html2pdf->pdf->SetAutoPageBreak($queries['SetAutoPageBreak'], $queries['SetAutoPageBreakMargin']);
    148153                $html2pdf->pdf->SetAuthor($queries['author'], true); // titre du site
    149154                $html2pdf->pdf->SetCreator($queries['creator'], true);
    150                 $html2pdf->pdf->SetMargins(0, 0);
    151                 $html2pdf->pdf->SetSubject("Votre diplôme", true);
    152                 $html2pdf->pdf->SetTitle("Votre diplôme", true);
     155                $html2pdf->pdf->SetMargins($queries['MarginLeft'], $queries['MarginTop']);
     156                $html2pdf->pdf->SetSubject(html_entity_decode($queries['subject']), false);
     157                $html2pdf->pdf->SetTitle(html_entity_decode($queries['title']), false);
    153158               
    154                 $fond = find_in_path('modeles/mon_diplome.png');
    155                
    156                 // fond de page
    157                 $html2pdf->background = array('img' => $fond, 'posX' => 0, 'posY' => 0
    158                                                                         , 'width' => 297 // en mm !
     159                // fond de page
     160                if($queries['modele_fond']) {
     161                        $html2pdf->background = array('img' => $queries['modele_fond'], 'posX' => 0, 'posY' => 0
     162                                                                        , 'width' => "100%" // ou int en mm
    159163                                                                        ); 
    160        
     164                }
    161165               
    162166                // conversion
     
    168172                // Envoyer
    169173                header("Content-type: application/pdf");
    170                 header('Content-Disposition: attachment; filename=mon_diplome.pdf');
     174                header("Content-Disposition: attachment; filename=" . $queries['modele_texte'] . ".pdf");
    171175                echo ($result);
    172176               
  • _plugins_/_stable_/mon_diplome/lang/plom_fr.php

    r28586 r28616  
    2020        , 'diplome_ligne_4' => "pour en jouir avec les droits et pr&#233;rogatives qui y sont attach&#233;s."
    2121       
     22        , 'pdf_sujet_defaut' => "Mon dipl&#244;me"
     23        , 'pdf_titre_defaut' => "Mon dipl&#244;me"
     24       
    2225        , 'erreur_diplome_manquant_i' => "Votre dipl&#244;me est introuvable (code erreur #ID_@i@)"
    2326        , 'erreur_fichier_s_manquant' => "Le fichier @s@ est introuvable."
  • _plugins_/_stable_/mon_diplome/mon_diplome_options.php

    r28564 r28616  
    6060define("_DIR_IMAGES_PLOM", _DIR_PLUGIN_PLOM."images/");
    6161
     62define("_PLOM_PAGE_DEFAUT", "mon_diplome");
    6263define("_PLOM_MODELE_DEFAUT", "mon_diplome");
    6364
     
    6566       
    6667        'id_auteur' => null // # de celui identifié
     68       
     69        // titre du document
     70        , 'titre_document' => ""
    6771       
    6872        // le fond du diplome peut être un PDF
     
    7377        , 'modele_texte' => 'mon_diplome'
    7478       
    75         // format sortie, etc...
     79        // format sortie, proprietes PDF, etc...
    7680        , 'format' => "A4"
    7781        , 'orientation' => "landscape"
    7882        , 'creator' => "mon_diplome+html2pdf+fpdf/SPIP"
    7983        , 'author' => $GLOBALS['meta']['nom_site']
     84        , 'subject' => _T('plom:pdf_sujet_defaut')
     85        , 'title' => _T('plom:pdf_titre_defaut')
     86       
     87        // squelette de sortie
     88        // doit se trouver a la racine du plug ou squelettes
     89        // ici, 'mon_diplome.html'
     90        , 'page' => "mon_diplome"
     91       
     92        // prefs complémentaires
     93        , 'SetAutoPageBreak' => false
     94        , 'SetAutoPageBreakMargin' => 0
     95        , 'MarginLeft' => 0
     96        , 'MarginTop' => 0
     97        , 'SetDisplayMode' => "real" // 'fullpage' || 'fullwidth' || 'real' || 'default'
     98       
    8099);
    81100
  • _plugins_/_stable_/mon_diplome/plugin.xml

    r28615 r28616  
    1414        <nom>Mon dipl&#244;me</nom>
    1515        <auteur>
    16                 cpaulus@quesaco.org
     16                [Christian Paulus->cpaulus@quesaco.org]
    1717                <br />avec l'aide de :
    1818                <ul>
     
    2626        </description>
    2727       
    28         <version>1.00.01</version>
     28        <!-- documentation -->
     29        <lien>http://www.quesaco.org/Mon-diplome-SPIP</lien>
     30       
     31        <version>1.01.00</version>
    2932        <etat>stable</etat>
    3033        <icon>images/mon_diplome-64.png</icon>
Note: See TracChangeset for help on using the changeset viewer.