Changeset 108966 in spip-zone


Ignore:
Timestamp:
Feb 15, 2018, 11:01:29 AM (21 months ago)
Author:
maieul@…
Message:

oups

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/article_pdf/article_pdf.html

    r108965 r108966  
    22<?php
    33
    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 
    84        // Mode release => $debug=0
    9         // Mode debug => $debug=1 (ne fonctionne pas sous Internet Explorer)=> ??? si, ça fonctionne !
    10         $debug=1;
    11 
    12         <BOUCLE_principale(RUBRIQUES){id_rubrique}>
    13 
    14         $conf_url_site = '[(#URL_RUBRIQUE|url_absolue|texte_script)]' ;
     5        // Mode debug => $debug=1
     6       
     7        <B_principale>
     8        <BOUCLE_principale(ARTICLES){id_article}>
     9       
     10        $conf_url_site = '[(#URL_ARTICLE|url_absolue|texte_script)]' ;
    1511        $conf_nom_site = '[(#NOM_SITE_SPIP|pdf_first_clean|supprimer_tags|texte_script)]' ;
    16 
     12       
    1713        // Recuperation et definition des differents elements
    18 
     14       
    1915        $site='[(#NOM_SITE_SPIP|pdf_first_clean|supprimer_tags|texte_script)]';
    20         $rubrique='<BOUCLE_rubrique_mere(RUBRIQUES){id_enfant}>[(#TITRE|supprimer_numero|pdf_first_clean|supprimer_tags|texte_script)]</BOUCLE_rubrique_mere>[(#NOM_SITE_SPIP|pdf_first_clean|supprimer_tags|texte_script)]<//B_rubrique_mere>';
     16        $rubrique='<B_rubrique_mere><BOUCLE_rubrique_mere(RUBRIQUES){id_rubrique}>[(#TITRE|supprimer_numero|pdf_first_clean|supprimer_tags|texte_script)]</BOUCLE_rubrique_mere></B_rubrique_mere>[(#NOM_SITE_SPIP|pdf_first_clean|supprimer_tags|texte_script)]<//B_rubrique_mere>';
    2117        $DateParution='[(#DATE_REDAC|affdate|pdf_first_clean|texte_script)]';
    2218        $DateMiseEnLigne='[(#DATE|nom_jour|texte_script)] [(#DATE|affdate|pdf_first_clean|texte_script)]';
    23 
    24         /*$auteur='<BOUCLE_auteurs(AUTEURS){id_rubrique}{", "}>[(#NOM|pdf_first_clean|texte_script)]</BOUCLE_auteurs>';*/
    25         $motsclef=/*'<BOUCLE_keywords(MOTS){id_rubrique}{", "}>[(#TITRE|pdf_first_clean|supprimer_tags|texte_script)]</BOUCLE_keywords>'*/'';
    26         $yahoo='-<BOUCLE_yahoo(HIERARCHIE){id_rubrique}> [(#TITRE|supprimer_numero|pdf_first_clean|supprimer_tags|texte_script)] - </BOUCLE_yahoo>';
     19       
     20        /*$auteur='<BOUCLE_auteurs(AUTEURS){id_article}{", "}>[(#NOM|pdf_first_clean|texte_script)]</BOUCLE_auteurs>';*/
     21        $motsclef='<BOUCLE_keywords(MOTS){id_article}{", "}>[(#TITRE|pdf_first_clean|supprimer_tags|texte_script)]</BOUCLE_keywords>';
     22        $yahoo='-<BOUCLE_yahoo(HIERARCHIE){id_article}> [(#TITRE|supprimer_numero|pdf_first_clean|supprimer_tags|texte_script)] - </BOUCLE_yahoo>';
    2723
    2824        $logo_site='[(#LOGO_SITE_SPIP|extraire_attribut{src}|texte_script)]';
    29         // attention à l'ordre des filtres SPIP
    30         [$logo_fichier='(#LOGO_RUBRIQUE|extraire_attribut{src}|texte_script|supprimer_param_logo)';]
    31 
     25        $logo_site = preg_replace(',[?][0-9]+$,','',$logo_site);
     26        // attention à l'ordre des filtres SPIP
     27        $logo_fichier='[(#LOGO_ARTICLE_RUBRIQUE|texte_script|extraire_attribut{src})]'; //fonctionne correctement
     28        $logo_fichier = preg_replace(',[?][0-9]+$,','',$logo_fichier);
    3229//  [$logo_lien="(#URL_ARTICLE)";]
    33 
     30               
    3431        [$surtitre='(#SURTITRE|pdf_first_clean|supprimer_tags|texte_script)';]
    3532        [$titre='(#TITRE|supprimer_numero|pdf_first_clean|supprimer_tags|texte_script)';]
     
    3734        [$chapo='(#CHAPO|pdf_first_clean|texte_script)';]
    3835        [$descriptif='(#DESCRIPTIF|pdf_first_clean|texte_script)';]
    39         [$texte= '(#TEXTE|pdf_first_clean|texte_script)';]
     36        [$texte= '(#TEXTE|image_reduire{400,400}|abs_url|pdf_first_clean|texte_script)';]
    4037        [$ps='(#PS|pdf_first_clean|texte_script)';]
    4138        [$notes='(#NOTES|pdf_first_clean|texte_script)';]
    42 
     39       
    4340        $copyright = '[(#VAL{articlepdf:copyright}|_T|pdf_first_clean|texte_script)][(#NOM_SITE_SPIP|pdf_first_clean|supprimer_tags|texte_script)][(#VAL{articlepdf:tous_droits_reserves}|_T|pdf_first_clean|texte_script)]';
    4441
    45         $id_rubrique = "#ID_RUBRIQUE";
    46 
    47         $titre_rubrique = translitteration(corriger_caracteres('[(#TITRE|supprimer_numero|pdf_first_clean|supprimer_tags|texte_script)]'));
    48         // Reprise du code de urls/propres.php (pourquoi c'est pas une fonction de l'API de SPIP ?)
    49 
    50         // on va convertir tous les caracteres de ponctuation et espaces
    51         // a l'exception de l'underscore (_), car on veut le conserver dans l'url
    52         $titre_rubrique = str_replace('_', chr(7), $titre_rubrique);
    53         $titre_rubrique = @preg_replace(',[[:punct:][:space:]]+,u', ' ', $titre_rubrique);
    54         $titre_rubrique = str_replace(chr(7), '_', $titre_rubrique);
    55 
    56         // S'il reste trop de caracteres non latins, les gerer comme wikipedia
    57         // avec rawurlencode :
    58         if (preg_match_all(",[^a-zA-Z0-9 _]+,", $titre_rubrique, $r, PREG_SET_ORDER)) {
    59                 foreach ($r as $regs) {
    60                         $titre_rubrique = substr_replace($titre_rubrique, rawurlencode($regs[0]),
    61                                 strpos($titre_rubrique, $regs[0]), strlen($regs[0]));
    62                 }
     42        $id_article = "#ID_ARTICLE";
     43       
     44        $files_pdf = '[(#TITRE|pdf_nommer_ancien{article, #ID_ARTICLE})]';     
     45        $file_out = _DIR_STOCK_PDF . $files_pdf ;
     46       
     47        $files_pdf_new = '[(#TITRE|pdf_nommer{article, #ID_ARTICLE})]';
     48        $file_out_new = _DIR_STOCK_PDF . $files_pdf_new ;
     49       
     50        //creer un pdf avec un nouveau nom que si un ancien n'existe pas
     51        if (!file_exists($file_out)) {
     52                $file_out = $file_out_new ;
     53                $files_pdf = $files_pdf_new;
    6354        }
    64 
    65         // S'il reste trop peu, on retombe sur rubrique12
    66         if (strlen($titre_rubrique) == 0 ) {
    67                 $titre_rubrique = "rubrique";
    68         }
    69 
    70         // Sinon couper les mots et les relier par des tirets
    71         else {
    72                 $mots = preg_split(",[^a-zA-Z0-9_%]+,", $titre_rubrique);
    73                 $titre_rubrique = '';
    74                 foreach ($mots as $mot) {
    75                         if (!strlen($mot)) continue;
    76                         $titre_rubrique2 = $titre_rubrique.'-'.$mot;
    77 
    78                         // Si on depasse _URLS_PROPRES_MAX caracteres, s'arreter
    79                         // ne pas compter 3 caracteres pour %E9 mais un seul
    80                         $long = preg_replace(',%.,', '', $titre_rubrique2);
    81                         if (strlen($long) > _URLS_PROPRES_MAX) {
    82                                 break;
    83                         }
    84 
    85                         $titre_rubrique = $titre_rubrique2;
    86                 }
    87                 $titre_rubrique = substr($titre_rubrique, 1);
    88 
    89                 // On enregistre en utf-8 dans la base
    90                 $titre_rubrique = rawurldecode($titre_rubrique);
    91 
    92                 if (strlen($titre_rubrique) == 0)
    93                         $titre_rubrique = "rubrique";
    94         }
    95 
    96         $files_pdf = $titre_rubrique."_".$id_rubrique.".pdf";
    97         $file_out = $path_pdf . $files_pdf ;
    98 
    99         if (file_exists($file_out))
     55       
     56        if (file_exists($file_out))
    10057        {
    10158                clearstatcache;
     
    10764                }
    10865        }
    109 
     66       
    11067        </BOUCLE_principale>
     68        </B_principale>
    11169        header("Location: index.php");
    112         exit;
     70        exit; 
    11371        <//B_principale>
    114 
    115         if ($debug == 1 && file_exists($file_out))
     72       
     73        if ($debug == 1 && file_exists($file_out)) 
    11674        {
    11775                unlink($file_out);
    11876        }
    119 
    120         if (!file_exists($file_out))
     77       
     78        if (!file_exists($file_out)) 
    12179        {
    122 
    12380       
    124                
    12581                define('FPDF_FONTPATH',_DIR_FPDF_LIB.'font');
    12682                include_spip(_DIR_FPDF_LIB.'fpdf');
    12783                include_spip('pdf/lib_pdf_global');
    12884                include_spip('pdf/lib_pdf_spip');
    129                
     85       
    13086                //--------------------------------
    131                 // Debut génération du PDF
     87                // Debut génération du PDF
    13288                //--------------------------------
    13389                $pdf->debug=$debug;
    13490                $pdf=new PDF_SPIP();
    135 
     91               
    13692                $pdf->SetCompression(false);
    137                 $pdf->SetDisplayMode(fullpage, single );
    138 
     93                $pdf->SetDisplayMode(fullpage, single );       
     94               
    13995                // haut, gauche,  bas, droite
    14096                $pdf->SetAllMargins(12,15,12,10);
    141 
     97       
    14298                $pdf->SetTitle($titre);
    14399                $pdf->SetCreator($site);
     
    145101                $pdf->SetSubject($rubrique);
    146102                $pdf->SetKeywords($motsclef);
    147 
     103       
    148104                $pdf->Build($file_out);
    149 
     105               
     106                $lier_pdf = pipeline('build_pdf',array(
     107                        'args'=>array(
     108                                'objet'         => 'article',
     109                                'id_objet'      => $id_article,
     110                                'file_name' => $files_pdf
     111                        ),
     112                        'data'=> $file_out,
     113        ));
     114               
     115        }
     116       
     117        $id_document = $lier_pdf[data][$file_out];
     118        if($id_document > 0){
     119                $file_out = '#URL_DOCUMENT{$id_document}';
    150120        }
    151121
    152122                // Vous voulez afficher un pdf
    153123                header("Content-type: application/pdf");
     124        //Si on est en mutualisé avec masquages des vraies urls d'images
     125        if (stripos($GLOBALS['spip_pipeline']['affichage_final'],'mutualisation_url_img_courtes')){
     126                $file_out = str_replace(_DIR_IMG,_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES,$file_out);
     127        }
    154128        if ($debug==1)
    155129        {
     
    160134        else
    161135        {
    162                 // Il sera nommé $files_pdf
     136                // Il sera nommé $files_pdf
    163137                // ATTENTION : pour "filename", mettre un nom de fichier court (<nom>.<extension>)
    164                 // sinon IE 6 SP2 ne reconnaîtra pas le type de fichier
    165                 // Semble poser problème sous IE6 SP1
     138                // sinon IE 6 SP2 ne reconnaîtra pas le type de fichier
     139                // Semble poser problème sous IE6 SP1
    166140                // Ah,  Microsoft, je vous jure !
    167141                header('Content-Disposition: attachment; filename=' . $files_pdf);
     
    171145        }
    172146
    173         exit;
    174 ?>
     147        exit;
Note: See TracChangeset for help on using the changeset viewer.