Changeset 90359 in spip-zone


Ignore:
Timestamp:
Jun 19, 2015, 2:48:50 PM (4 years ago)
Author:
laurent@…
Message:

Ajout de la constante _DIR_TMP_XSLT_COMARQUAGE qui permet de definir comme repertoire d'ecriture des xlstprocError le tmp SPIP au lieu du tmp serveur.

Location:
_plugins_/comarquage/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/comarquage/trunk/inc/comarquage.php

    r85738 r90359  
    1212
    1313if (!defined('_DIR_PLUGIN_COMARQUAGE')){
    14         $p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(dirname(__FILE__)))));
    15         define('_DIR_PLUGIN_COMARQUAGE',(_DIR_PLUGINS.end($p)).'/');
     14    $p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(dirname(__FILE__)))));
     15    define('_DIR_PLUGIN_COMARQUAGE',(_DIR_PLUGINS.end($p)).'/');
    1616}
    1717
     
    2323define('_DIR_CACHE_COMARQUAGE_CACHE',"comarq_cache");// sous repertoire de _DIR_CACHE
    2424
     25// repertoire des fichiers xlstprocError.
     26// La constante permet de definir un repertoire different dans les options
     27// en fonction des specifites des serveurs de chacun.
     28if (!defined('_DIR_TMP_XSLT_COMARQUAGE')){
     29    define('_DIR_TMP_XSLT_COMARQUAGE', _NOM_TEMPORAIRES_INACCESSIBLES);
     30}
     31
    2532include_spip('inc/config');
    2633
     
    2835$local_refresh = lire_config('comarquage/local_refresh');
    2936if (!isset($local_refresh)) {
    30         ecrire_config('comarquage/local_refresh','259200'); /* 60*60*24*3 */
     37    ecrire_config('comarquage/local_refresh','259200'); /* 60*60*24*3 */
    3138}
    3239$local_timeout = lire_config('comarquage/local_timeout');
    3340if (!isset($local_timeout)){
    34         ecrire_config('comarquage/local_timeout','604800'); /* 60*60*24*7 */
     41    ecrire_config('comarquage/local_timeout','604800'); /* 60*60*24*7 */
    3542}
    3643
    3744$default_xml_file = lire_config('comarquage/default_xml_file');
    3845if (!isset($default_xml_file)){
    39         ecrire_config('comarquage/default_xml_file','Themes.xml');
     46    ecrire_config('comarquage/default_xml_file','Themes.xml');
    4047}
    4148
    4249$default_xsl_file = lire_config('comarquage/default_xsl_file');
    4350if (!isset($default_xsl_file)){
    44         ecrire_config('comarquage/default_xsl_file','spThemes.xsl');
     51    ecrire_config('comarquage/default_xsl_file','spThemes.xsl');
    4552}
    4653
     
    4855// recuperer le contenu compile d'une page xml
    4956function & comarquage_compile_page_xml($parametres,$url_base){
    50         // regarder si la page parsee est en cache et valide
    51         comarquage_prepare_parametres_cache($parametres,$url_base);
    52         if ($ma_page =& comarquage_lire_cache($parametres))
    53           return $ma_page;
    54 
    55         // sinon la parser
    56 
    57         // s'assurer que la feuille de style est bien la
    58         if (!file_exists($parametres['xsl_full_path'])) {
    59                 comarquage_error("la feuille de style XSL '$parametres[xsl]' n'existe pas");
    60                 return -10;
    61         }
    62 
    63         // rapatrier tous les fichiers xml necessaires au parsing
    64         // fichier principal + dependances
    65         if (!comarquage_prepare_fichiers_xml($parametres))  {
    66                 spip_log("Erreur du rapatriement des fichiers",'comarquage');
    67                 return -20;
    68 
    69         }
    70 
    71 
    72         /*----------------------------------------
    73         *  definir les parametres xsl
    74         */
    75         $parametres_xsl = array();
    76         $parametres_xsl['IMAGESURL'] = $parametres_xsl['SITEURL'].'/'._DIR_PLUGIN_COMARQUAGE_IMAGES;
    77 
    78         if (isset($parametres['lettre']))       $parametres_xsl['LETTRE'] = $parametres['lettre'];
    79         if (isset($parametres['motcle'])) $parametres_xsl['MOTCLE'] = $parametres['motcle'];
    80 
    81         /* Réglage pour l'URL */
    82         $parametres_xsl['REFERER'] = self();
    83         // spip_log("REFERER 1 : ".$parametres_xsl['REFERER'],"comarquage");
    84         $parametres_xsl['REFERER'] = parametre_url($parametres_xsl['REFERER'],"xml",'','&'); // on enlève les paramètres d'url
    85         // spip_log("REFERER 2 : ".$parametres_xsl['REFERER'],"comarquage");
    86         $parametres_xsl['REFERER'] = parametre_url($parametres_xsl['REFERER'],"xsl",'','&');
    87         // spip_log("REFERER 3 : ".$parametres_xsl['REFERER'],"comarquage");
    88         //$parametres_xsl['REFERER'] = $GLOBALS['REQUEST_URI'].'?&' ; // url principale du comarquage
    89 
    90         // On teste s'il faut un "?" ou un "&" pour la suite
    91         if (strpos($parametres_xsl['REFERER'], '?') !== false){
    92                 $parametres_xsl['REFERER'] .= '&';
    93         }
    94         else{
    95                 $parametres_xsl['REFERER'] .= '?';
    96         }
    97 
    98 
    99         // MODIF VI :  REFERER / PICTOS / SITEURL / IMAGES / PIVOTS / XMLURL / CATEGORIE
    100         $parametres_xsl['SITEURL'] = lire_meta("adresse_site" );
    101         $parametres_xsl['PICTOS'] = $parametres_xsl['SITEURL'].'/'._DIR_PLUGIN_COMARQUAGE_IMAGES; // url des picto (web, téléphone, ...)
    102         $parametres_xsl['IMAGES'] = $parametres_xsl['SITEURL'].'/'._DIR_PLUGIN_COMARQUAGE_IMAGES.'/'; // URL des images
    103         $parametres_xsl['PIVOTS'] = 'mairie'; // pivots locaux
    104         $parametres_xsl['XMLURL'] = 'http://lecomarquage.service-public.fr/xml2v2/'; // url des données XML du comarquage
    105         $parametres_xsl['CATEGORIE'] = $parametres['categorie']; // particuliers, associations ou entreprises
    106 
    107         switch ($parametres_xsl['CATEGORIE']) {
    108                 case "particuliers":
    109                         $parametres_xsl['XMLURL'] = "http://lecomarquage.service-public.fr/xml2v2/";
    110                 break;
    111 
    112                 case "associations":
    113                         $parametres_xsl['XMLURL'] = "http://lecomarquage.service-public.fr/xmlassov2/";
    114                 break;
    115 
    116                 case 'entreprises':
    117                         $parametres_xsl['XMLURL'] = "http://lecomarquage.service-public.fr/xmlpmev2/";
    118                 break;
    119 
    120                 default:
    121                         $parametres_xsl['XMLURL'] = "http://lecomarquage.service-public.fr/xml2v2/";
    122                 break;
    123         }
    124 
    125         $ma_page =& comarquage_transforme_fichier_xml($parametres['xml_full_path'],$parametres['xsl_full_path'], $parametres_xsl);
    126         if ($ma_page === FALSE) {
    127                 comarquage_error("le processeur XSLT a retourné une erreur fatale; l'action ne peut pas continuer");
    128                 return -40;
    129         }
    130 
    131         $ma_page = implode("\n", $ma_page)."\n";
    132         // ecrire le fichier cache pour le prochain coup
    133         ecrire_fichier ($parametres['cache_full_path'], $ma_page);
    134 
    135         return $ma_page;
     57    // regarder si la page parsee est en cache et valide
     58    comarquage_prepare_parametres_cache($parametres,$url_base);
     59    if ($ma_page =& comarquage_lire_cache($parametres))
     60      return $ma_page;
     61
     62    // sinon la parser
     63
     64    // s'assurer que la feuille de style est bien la
     65    if (!file_exists($parametres['xsl_full_path'])) {
     66        comarquage_error("la feuille de style XSL '$parametres[xsl]' n'existe pas");
     67        return -10;
     68    }
     69
     70    // rapatrier tous les fichiers xml necessaires au parsing
     71    // fichier principal + dependances
     72    if (!comarquage_prepare_fichiers_xml($parametres))  {
     73        spip_log("Erreur du rapatriement des fichiers",'comarquage');
     74        return -20;
     75
     76    }
     77
     78
     79    /*----------------------------------------
     80    *  definir les parametres xsl
     81    */
     82    $parametres_xsl = array();
     83    $parametres_xsl['IMAGESURL'] = $parametres_xsl['SITEURL'].'/'._DIR_PLUGIN_COMARQUAGE_IMAGES;
     84
     85    if (isset($parametres['lettre']))   $parametres_xsl['LETTRE'] = $parametres['lettre'];
     86    if (isset($parametres['motcle'])) $parametres_xsl['MOTCLE'] = $parametres['motcle'];
     87
     88    /* Réglage pour l'URL */
     89    $parametres_xsl['REFERER'] = self();
     90    // spip_log("REFERER 1 : ".$parametres_xsl['REFERER'],"comarquage");
     91    $parametres_xsl['REFERER'] = parametre_url($parametres_xsl['REFERER'],"xml",'','&'); // on enlève les paramètres d'url
     92    // spip_log("REFERER 2 : ".$parametres_xsl['REFERER'],"comarquage");
     93    $parametres_xsl['REFERER'] = parametre_url($parametres_xsl['REFERER'],"xsl",'','&');
     94    // spip_log("REFERER 3 : ".$parametres_xsl['REFERER'],"comarquage");
     95    //$parametres_xsl['REFERER'] = $GLOBALS['REQUEST_URI'].'?&' ; // url principale du comarquage
     96
     97    // On teste s'il faut un "?" ou un "&" pour la suite
     98    if (strpos($parametres_xsl['REFERER'], '?') !== false){
     99        $parametres_xsl['REFERER'] .= '&';
     100    }
     101    else{
     102        $parametres_xsl['REFERER'] .= '?';
     103    }
     104
     105
     106    // MODIF VI :  REFERER / PICTOS / SITEURL / IMAGES / PIVOTS / XMLURL / CATEGORIE
     107    $parametres_xsl['SITEURL'] = lire_meta("adresse_site" );
     108    $parametres_xsl['PICTOS'] = $parametres_xsl['SITEURL'].'/'._DIR_PLUGIN_COMARQUAGE_IMAGES; // url des picto (web, téléphone, ...)
     109    $parametres_xsl['IMAGES'] = $parametres_xsl['SITEURL'].'/'._DIR_PLUGIN_COMARQUAGE_IMAGES.'/'; // URL des images
     110    $parametres_xsl['PIVOTS'] = 'mairie'; // pivots locaux
     111    $parametres_xsl['XMLURL'] = 'http://lecomarquage.service-public.fr/xml2v2/'; // url des données XML du comarquage
     112    $parametres_xsl['CATEGORIE'] = $parametres['categorie']; // particuliers, associations ou entreprises
     113
     114    switch ($parametres_xsl['CATEGORIE']) {
     115        case "particuliers":
     116            $parametres_xsl['XMLURL'] = "http://lecomarquage.service-public.fr/xml2v2/";
     117        break;
     118
     119        case "associations":
     120            $parametres_xsl['XMLURL'] = "http://lecomarquage.service-public.fr/xmlassov2/";
     121        break;
     122
     123        case 'entreprises':
     124            $parametres_xsl['XMLURL'] = "http://lecomarquage.service-public.fr/xmlpmev2/";
     125        break;
     126
     127        default:
     128            $parametres_xsl['XMLURL'] = "http://lecomarquage.service-public.fr/xml2v2/";
     129        break;
     130    }
     131
     132    $ma_page =& comarquage_transforme_fichier_xml($parametres['xml_full_path'],$parametres['xsl_full_path'], $parametres_xsl);
     133    if ($ma_page === FALSE) {
     134        comarquage_error("le processeur XSLT a retourné une erreur fatale; l'action ne peut pas continuer");
     135        return -40;
     136    }
     137
     138    $ma_page = implode("\n", $ma_page)."\n";
     139    // ecrire le fichier cache pour le prochain coup
     140    ecrire_fichier ($parametres['cache_full_path'], $ma_page);
     141
     142    return $ma_page;
    136143}
    137144
    138145// rapatrier tout le contenu necessaire pour effectuer le rendu
    139146function comarquage_prepare_fichiers_xml($parametres, $profondeur = 2){
    140         static $parsed=array();
    141         if (isset($parsed[$parametres['xml_full_path']]))
    142                 return $parsed[$parametres['xml_full_path']];
    143 
    144         $ma_page ="";
    145         $mise_a_jour = comarquage_lire_xml($parametres, $ma_page);
    146         if ($mise_a_jour == FALSE){
    147                 $parsed[$parametres['xml_full_path']] = FALSE;
    148                 return FALSE;
    149         }
    150         $parsed[$parametres['xml_full_path']] = TRUE;
    151 
    152 
    153         if ($profondeur>0 && $mise_a_jour !==FALSE && $parametres['xml']{0} != 'M') {
    154                 $liste_ressources = comarquage_extraire_ressources($parametres['xml_full_path'], $ma_page);
     147    static $parsed=array();
     148    if (isset($parsed[$parametres['xml_full_path']]))
     149        return $parsed[$parametres['xml_full_path']];
     150
     151    $ma_page ="";
     152    $mise_a_jour = comarquage_lire_xml($parametres, $ma_page);
     153    if ($mise_a_jour == FALSE){
     154        $parsed[$parametres['xml_full_path']] = FALSE;
     155        return FALSE;
     156    }
     157    $parsed[$parametres['xml_full_path']] = TRUE;
     158
     159
     160    if ($profondeur>0 && $mise_a_jour !==FALSE && $parametres['xml']{0} != 'M') {
     161        $liste_ressources = comarquage_extraire_ressources($parametres['xml_full_path'], $ma_page);
    155162
    156163
    157164    if ($liste_ressources !== FALSE)
    158                         foreach ($liste_ressources as $v){
    159                                 $pars = array_merge($parametres, array('xml' => $v,'xml_full_path' => dirname($parametres['xml_full_path']).'/'.$v));
    160                                 comarquage_prepare_fichiers_xml($pars, $profondeur-1);
    161                         }
    162 
    163                 if ($liste_ressources === FALSE) {
    164                         comarquage_error("impossible de recuperer les ressources associees au fichier $parametres[xml_full_path]");
    165                         return FALSE;
    166                 }
     165            foreach ($liste_ressources as $v){
     166                $pars = array_merge($parametres, array('xml' => $v,'xml_full_path' => dirname($parametres['xml_full_path']).'/'.$v));
     167                comarquage_prepare_fichiers_xml($pars, $profondeur-1);
     168            }
     169
     170        if ($liste_ressources === FALSE) {
     171            comarquage_error("impossible de recuperer les ressources associees au fichier $parametres[xml_full_path]");
     172            return FALSE;
     173        }
    167174
    168175  }
    169176
    170         return TRUE;
     177    return TRUE;
    171178}
    172179
     
    175182// dans un tableau
    176183function comarquage_extraire_ressources($fichier_xml, $ma_page){
    177         $liste_ressources=array();
    178         include_spip('inc/plugin');
    179         include_spip('inc/filtres');
    180         include_spip('inc/xml');
    181         $arbre = spip_xml_parse($ma_page);
    182         if (is_array($arbre)){
    183                 $arbre = reset($arbre); // prendre le noeud racine
    184                 $arbre = $arbre[0];
    185                 if (isset($arbre['Fils']))
    186                         foreach($arbre['Fils'] as $subtree)
    187                                 foreach($subtree as $tag=>$val){
    188                                         $f = extraire_attribut("<$tag>",'lien');
    189                                         $f = basename($f,'.xml').'.xml';
    190                                         $liste_ressources[]=$f;
    191                                 }
    192         }
    193         // spip_log("*********************** DEBUT liste ressource","comarquage");
    194         // spip_log($liste_ressources,"comarquage");
    195         // spip_log("*********************** FIN liste ressource","comarquage");
    196         return $liste_ressources;
     184    $liste_ressources=array();
     185    include_spip('inc/plugin');
     186    include_spip('inc/filtres');
     187    include_spip('inc/xml');
     188    $arbre = spip_xml_parse($ma_page);
     189    if (is_array($arbre)){
     190        $arbre = reset($arbre); // prendre le noeud racine
     191        $arbre = $arbre[0];
     192        if (isset($arbre['Fils']))
     193            foreach($arbre['Fils'] as $subtree)
     194                foreach($subtree as $tag=>$val){
     195                    $f = extraire_attribut("<$tag>",'lien');
     196                    $f = basename($f,'.xml').'.xml';
     197                    $liste_ressources[]=$f;
     198                }
     199    }
     200    // spip_log("*********************** DEBUT liste ressource","comarquage");
     201    // spip_log($liste_ressources,"comarquage");
     202    // spip_log("*********************** FIN liste ressource","comarquage");
     203    return $liste_ressources;
    197204}
    198205
    199206function & comarquage_transforme_fichier_xml($fichier_xml, $fichier_xsl = NULL, $parametres = NULL){
    200         static $_executable = 'xsltproc';
    201 
    202 
    203         $params = " --path "._DIR_CACHE._DIR_CACHE_COMARQUAGE_XML."/ ";
    204         if (is_array($parametres))
    205                 foreach ($parametres as $k => $v) {
    206                         $params .= '--stringparam '.escapeshellarg($k).' '.escapeshellarg($v).' ';
    207                 }
    208 //              spip_log("<br><br>\n\nPAR'AM : $params","comarquage");
    209 
    210 
    211         $fichier_erreur = tempnam('/tmp', 'xsltprocErrors_');
    212         $commande = $_executable . $params . ($fichier_xsl ? $fichier_xsl.' ' : '');
    213         $commande .= $fichier_xml;
    214         $commande .=  " 2> $fichier_erreur";
    215 
    216         // spip_log("commande XSLTPROC : ".$commande,"comarquage");
    217 
    218         exec($commande, $retour, $erreur_code);
    219 
    220         comarquage_error($commande);
    221 
    222         if (filesize($fichier_erreur)) {
    223                 lire_fichier($fichier_erreur,$message);
    224                 comarquage_error("la commande '$_executable $params' a retourné ($erreur_code) : $message");
    225         }
    226 
    227         unlink($fichier_erreur);
    228         return $erreur_code ? FALSE : $retour;
     207    static $_executable = 'xsltproc';
     208
     209
     210    $params = " --path "._DIR_CACHE._DIR_CACHE_COMARQUAGE_XML."/ ";
     211    if (is_array($parametres))
     212        foreach ($parametres as $k => $v) {
     213            $params .= '--stringparam '.escapeshellarg($k).' '.escapeshellarg($v).' ';
     214        }
     215//      spip_log("<br><br>\n\nPAR'AM : $params","comarquage");
     216
     217
     218    $fichier_erreur = tempnam(_DIR_TMP_XSLT_COMARQUAGE, 'xsltprocErrors_');
     219    $commande = $_executable . $params . ($fichier_xsl ? $fichier_xsl.' ' : '');
     220    $commande .= $fichier_xml;
     221    $commande .=  " 2> $fichier_erreur";
     222
     223    // spip_log("commande XSLTPROC : ".$commande,"comarquage");
     224
     225    exec($commande, $retour, $erreur_code);
     226
     227    comarquage_error($commande);
     228
     229    if (filesize($fichier_erreur)) {
     230        lire_fichier($fichier_erreur,$message);
     231        comarquage_error("la commande '$_executable $params' a retourné ($erreur_code) : $message");
     232    }
     233
     234    unlink($fichier_erreur);
     235    return $erreur_code ? FALSE : $retour;
    229236}
    230237
    231238// definir le nom du fichier de stockage de la page en cache
    232239function comarquage_prepare_parametres_cache(& $parametres,$url_base){
    233         spip_log("Paramètre avant comarquage_prepare_parametres_cache","comarquage");
    234         spip_log($parametres,"comarquage");
    235 
    236         $cache_id = '';
    237         if (isset($parametres['lettre'])) $cache_id .= 'l'.$parametres['lettre'];
    238         if (isset($parametres['motcle'])) $cache_id .= 'm'.md5($parametres['motcle']);
    239         $cache_id .= md5($url_base.$parametres['categorie']);
    240 
    241         $parametres['cache_full_path'] = sous_repertoire(_DIR_CACHE,_DIR_CACHE_COMARQUAGE_CACHE).
    242                 basename($parametres['xml'], '.xml').
    243                 ($cache_id ? '.'.$cache_id : '').'.cache';
    244 
    245                 spip_log("Paramètre APRES comarquage_prepare_parametres_cache","comarquage");
    246                 spip_log($parametres,"comarquage");
     240    spip_log("Paramètre avant comarquage_prepare_parametres_cache","comarquage");
     241    spip_log($parametres,"comarquage");
     242
     243    $cache_id = '';
     244    if (isset($parametres['lettre'])) $cache_id .= 'l'.$parametres['lettre'];
     245    if (isset($parametres['motcle'])) $cache_id .= 'm'.md5($parametres['motcle']);
     246    $cache_id .= md5($url_base.$parametres['categorie']);
     247
     248    $parametres['cache_full_path'] = sous_repertoire(_DIR_CACHE,_DIR_CACHE_COMARQUAGE_CACHE).
     249        basename($parametres['xml'], '.xml').
     250        ($cache_id ? '.'.$cache_id : '').'.cache';
     251
     252        spip_log("Paramètre APRES comarquage_prepare_parametres_cache","comarquage");
     253        spip_log($parametres,"comarquage");
    247254}
    248255
    249256// lire le fichier xml parse en cache
    250257function & comarquage_lire_cache($parametres) {
    251         $fichier = $parametres['cache_full_path'];
    252         if (file_exists($fichier)
    253                 && ($t = filemtime($fichier))
    254                 && (time()-$t < $GLOBALS['meta']['comarquage_local_timeout'])
    255                 && ($t > filemtime($parametres['xml_full_path']))
    256                 && ($t > filemtime(dirname($parametres['xsl_full_path'])))
    257                 ) {
    258 
    259                 $ma_page = "";
    260                 if (lire_fichier ($fichier, $ma_page))
    261                         return $ma_page;
    262         }
    263 
    264         return FALSE;
     258    $fichier = $parametres['cache_full_path'];
     259    if (file_exists($fichier)
     260        && ($t = filemtime($fichier))
     261        && (time()-$t < $GLOBALS['meta']['comarquage_local_timeout'])
     262        && ($t > filemtime($parametres['xml_full_path']))
     263        && ($t > filemtime(dirname($parametres['xsl_full_path'])))
     264        ) {
     265
     266        $ma_page = "";
     267        if (lire_fichier ($fichier, $ma_page))
     268            return $ma_page;
     269    }
     270
     271    return FALSE;
    265272}
    266273
    267274function & comarquage_lire_xml($parametres, &$ma_page) {
    268         $fichier = $parametres['xml_full_path'];
    269         // on ne recharge pas la page ici du moment qu'elle n'est pas trop vieille
    270         // la reactualisation des pages est réalisée preferentiellement par tache cron
    271         if (($ok = file_exists($parametres['xml_full_path'])) &&
    272                 time() - filemtime($parametres['xml_full_path']) < $GLOBALS['meta']['comarquage_local_timeout']) {
    273                 $mise_a_jour = 10;
    274         }
    275         else if (!$mise_a_jour = comarquage_recuperer_page_xml($parametres)) {
    276                 comarquage_error("erreur de telechargement du fichier $parametres[xml]; ".
    277                 ($ok ? "l'action continue avec le fichier présent dans le cache ".
    278                 "mais la connexion au serveur externe doit être retablie" :
    279                 "l'action ne peut pas être poursuivie car le fichier n'existe pas ".
    280                 "dans le cache"));
    281                 if ($ok==FALSE) return FALSE;
    282                 $mise_a_jour = 10;
    283         }
    284         if (lire_fichier ($fichier, $ma_page))
    285                 return $mise_a_jour;
    286         else
    287                 return FALSE;
     275    $fichier = $parametres['xml_full_path'];
     276    // on ne recharge pas la page ici du moment qu'elle n'est pas trop vieille
     277    // la reactualisation des pages est réalisée preferentiellement par tache cron
     278    if (($ok = file_exists($parametres['xml_full_path'])) &&
     279        time() - filemtime($parametres['xml_full_path']) < $GLOBALS['meta']['comarquage_local_timeout']) {
     280        $mise_a_jour = 10;
     281    }
     282    else if (!$mise_a_jour = comarquage_recuperer_page_xml($parametres)) {
     283        comarquage_error("erreur de telechargement du fichier $parametres[xml]; ".
     284        ($ok ? "l'action continue avec le fichier présent dans le cache ".
     285        "mais la connexion au serveur externe doit être retablie" :
     286        "l'action ne peut pas être poursuivie car le fichier n'existe pas ".
     287        "dans le cache"));
     288        if ($ok==FALSE) return FALSE;
     289        $mise_a_jour = 10;
     290    }
     291    if (lire_fichier ($fichier, $ma_page))
     292        return $mise_a_jour;
     293    else
     294        return FALSE;
    288295}
    289296
     
    293300function comarquage_recuperer_page_xml($parametres){
    294301
    295                 // En fonction de la catégorie (particulier / associations / professionnels) l'url cible n'est pas la même
    296                 switch ($parametres['categorie']) {
    297                 case "particuliers":
    298                         $url = "http://lecomarquage.service-public.fr/xml2v2/";
    299                 break;
    300 
    301                 case "associations":
    302                         $url = "http://lecomarquage.service-public.fr/xmlassov2/";
    303                 break;
    304 
    305                 case 'entreprises':
    306                         $url = "http://lecomarquage.service-public.fr/xmlpmev2/";
    307                 break;
    308 
    309                 default:
    310                         $url = "http://lecomarquage.service-public.fr/xml2v2/";
    311                 break;
    312                 }
    313         //$url = $GLOBALS['meta']['comarquage_xml_server'];
    314 
    315         $url = $url.$parametres['xml'];
    316         spip_log("URL du flux : $url","comarquage");
    317 
    318         include_spip('inc/distant');
    319         $ma_page = recuperer_page($url);
    320 
    321         if ($ma_page===FALSE || !strlen($ma_page)) return FALSE;
    322 
    323         /* Return 20 if the file has been downloaded OK. */
    324         ecrire_fichier($parametres['xml_full_path'],$ma_page);
    325 
    326         /*
    327         spip_log('************************** DEBUT paramètres recuperer_page_xml',"comarquage");
    328         spip_log($parametres,"comarquage");
    329         spip_log('************************** FIN paramètres recuperer_page_xml',"comarquage");
    330         */
    331 
    332         return 20;
     302        // En fonction de la catégorie (particulier / associations / professionnels) l'url cible n'est pas la même
     303        switch ($parametres['categorie']) {
     304        case "particuliers":
     305            $url = "http://lecomarquage.service-public.fr/xml2v2/";
     306        break;
     307
     308        case "associations":
     309            $url = "http://lecomarquage.service-public.fr/xmlassov2/";
     310        break;
     311
     312        case 'entreprises':
     313            $url = "http://lecomarquage.service-public.fr/xmlpmev2/";
     314        break;
     315
     316        default:
     317            $url = "http://lecomarquage.service-public.fr/xml2v2/";
     318        break;
     319        }
     320    //$url = $GLOBALS['meta']['comarquage_xml_server'];
     321
     322    $url = $url.$parametres['xml'];
     323    spip_log("URL du flux : $url","comarquage");
     324
     325    include_spip('inc/distant');
     326    $ma_page = recuperer_page($url);
     327
     328    if ($ma_page===FALSE || !strlen($ma_page)) return FALSE;
     329
     330    /* Return 20 if the file has been downloaded OK. */
     331    ecrire_fichier($parametres['xml_full_path'],$ma_page);
     332
     333    /*
     334    spip_log('************************** DEBUT paramètres recuperer_page_xml',"comarquage");
     335    spip_log($parametres,"comarquage");
     336    spip_log('************************** FIN paramètres recuperer_page_xml',"comarquage");
     337    */
     338
     339    return 20;
    333340}
    334341
     
    340347// verifier la disponibilite d'un processeur xsl
    341348function comarquage_processeur_disponible(){
    342         static $_available = NULL;
    343         static $_executable = 'xsltproc';
    344 
    345         // on ne verifie qu'une fois a chaque hit
    346         if ($_available === NULL){
    347                 foreach (explode(':', getenv('PATH')) as $sPath) {
    348                         //if (function_exists('is_executable'))
    349                         //      if (is_executable($sPath.'/'.$_executable))
    350                                         $_available = TRUE;
    351                 }
    352 
    353                 if ($_available !== TRUE){
    354                         comarquage_error("l'executable $_executable n'a pas ete ".
    355                         "trouvé dans le PATH ('".getenv('PATH')."')");
    356                         $_available = FALSE;
    357                 }
    358         }
    359         return $_available;
     349    static $_available = NULL;
     350    static $_executable = 'xsltproc';
     351
     352    // on ne verifie qu'une fois a chaque hit
     353    if ($_available === NULL){
     354        foreach (explode(':', getenv('PATH')) as $sPath) {
     355            //if (function_exists('is_executable'))
     356            //  if (is_executable($sPath.'/'.$_executable))
     357                    $_available = TRUE;
     358        }
     359
     360        if ($_available !== TRUE){
     361            comarquage_error("l'executable $_executable n'a pas ete ".
     362            "trouvé dans le PATH ('".getenv('PATH')."')");
     363            $_available = FALSE;
     364        }
     365    }
     366    return $_available;
    360367}
    361368
  • _plugins_/comarquage/trunk/paquet.xml

    r85738 r90359  
    22    prefix="comarquage"
    33    categorie="divers"
    4     version="0.40.2"
     4    version="0.40.3"
    55    etat="test"
    66    compatibilite="[3.0.0;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.