source: trunk/spip/esqueleto-redcta/plugins/article_pdf/article_pdf.html @ 30

Last change on this file since 30 was 30, checked in by sebas, 17 years ago

nueva importacion del codigo del esqueleto de redcta con los plugins

File size: 4.5 KB
Line 
1#CACHE{0}
2<?php
3
4        //au choix, selon le cas (voir les avantages et les inconvéniants de chaque selon le site):
5  $path_pdf = sous_repertoire(_DIR_CACHE, "article_PDF"); // stockage dans le cache SPIP
6        $path_pdf = sous_repertoire(_DIR_IMG, "article_PDF"); //stockage sous le dossier IMG
7       
8        // Mode release => $debug=0
9        // Mode debug => $debug=1 (ne fonctionne pas sous Internet Explorer)=> ??? si, ça fonctionne !
10        $debug=1;
11       
12        <B_principale>
13        <BOUCLE_principale(ARTICLES){id_article}>
14       
15        $conf_url_site = '[(#URL_SITE_SPIP|texte_script)]' ;
16        $conf_nom_site = '[(#NOM_SITE_SPIP|pdf_first_clean|texte_script)]' ;
17       
18        // Recuperation et definition des differents elements
19       
20        $site='[(#NOM_SITE_SPIP|pdf_first_clean|texte_script)]';
21        $rubrique='<B_rubrique_mere><BOUCLE_rubrique_mere(RUBRIQUES){id_rubrique}>[(#TITRE|supprimer_numero|pdf_first_clean|texte_script)]</BOUCLE_rubrique_mere></B_rubrique_mere>[(#NOM_SITE_SPIP|pdf_first_clean|texte_script)]<//B_rubrique_mere>';
22        $DateParution='[(#DATE_REDAC|affdate|pdf_first_clean|texte_script)]';
23        $DateMiseEnLigne='[(#DATE|nom_jour|texte_script)] [(#DATE|affdate|pdf_first_clean|texte_script)]';
24       
25        /*$auteur='<BOUCLE_auteurs(AUTEURS){id_article}{", "}>[(#NOM|pdf_first_clean|texte_script)]</BOUCLE_auteurs>';*/
26        $motsclef='<BOUCLE_keywords(MOTS){id_article}{", "}>[(#TITRE|pdf_first_clean|texte_script)]</BOUCLE_keywords>';
27        $yahoo='-<BOUCLE_yahoo(HIERARCHIE){id_article}> [(#TITRE|supprimer_numero|pdf_first_clean|texte_script)] - </BOUCLE_yahoo>';
28
29        $logo_site='[(#LOGO_SITE_SPIP|extraire_attribut{src}|texte_script)]';
30        // attention à l'ordre des filtres SPIP
31//      [$logo_fichier='(#LOGO_ARTICLE_RUBRIQUE|extraire_attribut{src}|texte_script)';] ne fonctionne pas
32  [$logo_fichier='(#LOGO_ARTICLE_RUBRIQUE|texte_script|extraire_attribut{src})';] //fonctionne correctement
33//  [$logo_lien="(#URL_ARTICLE)";]
34               
35        [$surtitre='(#SURTITRE|pdf_first_clean|texte_script)';]
36        [$titre='(#TITRE|SUPPRIMER_NUMERO|pdf_first_clean|texte_script)';]
37        [$soustitre='(#SOUSTITRE|pdf_first_clean|texte_script)';]
38        [$chapo='(#CHAPO|pdf_first_clean|texte_script)';]
39        [$descriptif='(#DESCRIPTIF|pdf_first_clean|texte_script)';]
40        [$texte= '(#TEXTE|pdf_first_clean|texte_script)';]
41        [$ps='(#PS|pdf_first_clean|texte_script)';]
42        [$notes='(#NOTES|pdf_first_clean|texte_script)';]
43       
44        $copyright = '[(#REM|texte{'Copyright (c) '}|pdf_first_clean|texte_script)][(#NOM_SITE_SPIP|pdf_first_clean|texte_script)][(#REM|texte{'\nTous droits réservés'}|pdf_first_clean|texte_script)]';
45       
46        $id_article = "#ID_ARTICLE";
47       
48       
49        $url_article = generer_url_article($id_article);
50        if (strpos($url_article,'?')===FALSE){
51                $p = strrpos($url_article,'.');
52                if ($p!==FALSE)
53                        $url_article = substr($url_article,0,$p);
54                $files_pdf = $url_article.".pdf";
55        }
56        else
57                $files_pdf = "article_".$id_article.".pdf" ;
58        $file_out = $path_pdf . $files_pdf ;
59       
60        if (file_exists($file_out))
61        {
62                clearstatcache;
63                $damo = date(YmdHi , strtotime("#DATE_MODIF")) ;
64                $dage = date(YmdHi , filemtime($file_out)) ;
65                if ($damo > $dage)
66                {
67                        unlink($file_out);
68                }
69        }
70       
71        </BOUCLE_principale>
72        </B_principale>
73        header("Location: index.php");
74        exit;
75        <//B_principale>
76       
77        if ($debug == 1 && file_exists($file_out))
78        {
79                unlink($file_out);
80        }
81       
82        if (!file_exists($file_out))
83        {
84       
85                //define('FPDF_FONTPATH',_DIR_PLUGIN_ARTICLE_PDF.'/font/');
86                include_spip('pdf/fpdf');
87                include_spip('pdf/lib_pdf_global');
88                include_spip('pdf/lib_pdf_spip');
89       
90                //--------------------------------
91                // Debut génération du PDF
92                //--------------------------------
93                $pdf->debug=$debug;
94                $pdf=new PDF_SPIP();
95               
96                $pdf->SetCompression(false);
97                $pdf->SetDisplayMode(fullpage, single );       
98               
99                // haut, gauche,  bas, droite
100                $pdf->SetAllMargins(12,15,12,10);
101       
102                $pdf->SetTitle($titre);
103                $pdf->SetCreator($site);
104                $pdf->SetCopyright($copyright);
105                $pdf->SetSubject($rubrique);
106                $pdf->SetKeywords($motsclef);
107       
108                $pdf->Build($file_out);
109               
110        }
111
112                // Vous voulez afficher un pdf
113                header("Content-type: application/pdf");
114        if ($debug==1)
115        {
116                // Affiche le PDF directement dans l'onglet de Firefox
117                // Ne fonctionne pas sous IE 6 SP2 : le pdf n'est pas reconnu (pris pour un fichier texte)
118                header("location: ". url_de_base() . $file_out);
119        }
120        else
121        {
122                // Il sera nommé $files_pdf
123                // ATTENTION : pour "filename", mettre un nom de fichier court (<nom>.<extension>)
124                // sinon IE 6 SP2 ne reconnaîtra pas le type de fichier
125                // Semble poser problème sous IE6 SP1
126                // Ah,  Microsoft, je vous jure !
127                header('Content-Disposition: attachment; filename=' . $files_pdf);
128
129                // Le source du PDF original.pdf
130                readfile($file_out);
131        }
132
133        exit;
134?>
Note: See TracBrowser for help on using the repository browser.