Changeset 101711 in spip-zone


Ignore:
Timestamp:
Jan 14, 2017, 10:58:03 AM (3 years ago)
Author:
marcimat@…
Message:

Tabulations, présentation… pas de changement fonctionnel.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/partageur/trunk/exec/partageur_import.php

    r101710 r101711  
    115115                                                $articles_importes = sql_select("id_article,titre","spip_articles","s2s_url=".sql_quote($current_link));
    116116                                                if ($articles_importes and sql_count($articles_importes)>0) {
    117                                                    // article deja connu et present ds la base
    118                                                    $log_html .= "[<span style='color:#999'>"._T('partageur:imported_already')."</span>]\n";
    119                                                    while ($r = sql_fetch($articles_importes)) {
    120                                                            $log_html .= "<a href='".generer_url_ecrire('article', "id_article=".$r['id_article'],'&')."'>".$r['titre']."</a><br />";
    121                                                    }
    122                                                    spip_log("partageur: deja importe: ".$current_link);
     117                                                        // article deja connu et present ds la base
     118                                                        $log_html .= "[<span style='color:#999'>"._T('partageur:imported_already')."</span>]\n";
     119                                                        while ($r = sql_fetch($articles_importes)) {
     120                                                                $log_html .= "<a href='".generer_url_ecrire('article', "id_article=".$r['id_article'],'&')."'>".$r['titre']."</a><br />";
     121                                                        }
     122                                                        spip_log("partageur: deja importe: ".$current_link);
    123123
    124124                                                } else {
    125                                                    // nouvel article à importer
    126                                                    $log_html .= "[<span style='color:#090'>"._T('partageur:imported_new')."</span>] <a href='$current_link'>$current_titre</a>\n";
    127 
    128                                                    // securite verifie sur rubrique destination existe
    129                                                    $target=$id_rubrique;
    130                                                    $is_rubrique_destination_valide = partageur_verifier_id_rubrique($id_rubrique);
    131                                                    if (!$is_rubrique_destination_valide) {  // pas de destination
    132                                                           $log_html .= _T('partageur:erreur_rubrique_invalide');
    133                                                    } else {
    134                                                           // tout est bon, on insert les donnnees !
    135 
    136                                                           // etape 1 -  traitement des documents
    137                                                           $_documents = $article['documents'];
    138                                                           $documents_current_article = array();
    139                                                           if ($_documents!="") {
    140                                                                 $_documents = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $_documents );
    141                                                                 $_documents = unserialize($_documents);
    142                                                                 foreach($_documents as $_document) {
    143                                                                         $id_distant = $_document['id'];
    144                                                                         $source = $_document['url'];
    145                                                                         $titre = stripslashes($_document['titre']);
    146                                                                         $desc =  stripslashes($_document['desc']);
    147                                                                         $fonction_renseigner='renseigner_source_distante';
    148                                                                         if (!function_exists($fonction_renseigner))
    149                                                                                 $fonction_renseigner='recuperer_infos_distantes';
    150 
    151                                                                         if ($a = $fonction_renseigner($source)) {
    152 
    153 
     125                                                        // nouvel article à importer
     126                                                        $log_html .= "[<span style='color:#090'>"._T('partageur:imported_new')."</span>] <a href='$current_link'>$current_titre</a>\n";
     127
     128                                                        // securite verifie sur rubrique destination existe
     129                                                        $target=$id_rubrique;
     130                                                        $is_rubrique_destination_valide = partageur_verifier_id_rubrique($id_rubrique);
     131                                                        if (!$is_rubrique_destination_valide) {  // pas de destination
     132                                                                $log_html .= _T('partageur:erreur_rubrique_invalide');
     133                                                        } else {
     134                                                                // tout est bon, on insert les donnnees !
     135
     136                                                                // etape 1 -  traitement des documents
     137                                                                $_documents = $article['documents'];
     138                                                                $documents_current_article = array();
     139
     140                                                                if ($_documents!="") {
     141                                                                        $_documents = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $_documents );
     142                                                                        $_documents = unserialize($_documents);
     143
     144                                                                        foreach($_documents as $_document) {
     145                                                                                $id_distant = $_document['id'];
     146                                                                                $source = $_document['url'];
     147                                                                                $titre = stripslashes($_document['titre']);
     148                                                                                $desc =  stripslashes($_document['desc']);
     149                                                                                $fonction_renseigner='renseigner_source_distante';
     150                                                                                if (!function_exists($fonction_renseigner)) {
     151                                                                                        $fonction_renseigner='recuperer_infos_distantes';
     152                                                                                }
     153
     154                                                                                if ($a = $fonction_renseigner($source)) {
    154155                                                                                        unset($a['mime_type']);
    155156                                                                                        unset($a['type_image']);
     
    163164                                                                                        $a['descriptif'] = $desc;
    164165                                                                                        $documents_current_article[$id_distant] = sql_insertq("spip_documents", $a);
    165 
    166166                                                                                }
     167                                                                        }
    167168                                                                }
    168                                                           }
    169 
    170 
    171                                                           // etape 2 -  traitement de l'article
    172                                                           $_surtitre = $article['surtitre'];
     169
     170
     171                                                                // etape 2 -  traitement de l'article
     172                                                                $_surtitre = $article['surtitre'];
    173173                                                                $_titre = $article['titre'];
    174174                                                                $_soustitre = $article['soustitre'];
     
    181181                                                                $_logo = $article['logo'];
    182182                                                                $_id_rubrique = $target;
    183                                                           $_id_secteur = partageur_get_id_secteur($target);
     183                                                                $_id_secteur = partageur_get_id_secteur($target);
    184184                                                                $_statut = $import_statut;
    185185                                                                $_id_auteur = $article['auteur'];
     
    189189
    190190                                                                // ....dans la table articles
    191                                                                 $id_nouvel_article = sql_insertq("spip_articles",array(
    192                                                                                                           'lang' => $_lang,
    193                                                                                                           'surtitre' => $_surtitre,
    194                                                                                                           'titre' => $_titre,
    195                                                                                                           'soustitre' => $_soustitre,
    196                                                                                                           'id_rubrique' => $_id_rubrique,
    197                                                                                                           'id_secteur' => $_id_secteur,
    198                                                                                                           'descriptif' => $_descriptif,
    199                                                                                                           'chapo' => $_chapo,
    200                                                                                                           'texte' => $_texte,
    201                                                                                                           'ps' => $_ps,
    202                                                                                                           'statut' => $_statut,
    203                                                                                                           'accepter_forum' => 'non',
    204                                                                                                           'date' => $_date,
    205                                                                                                           's2s_url' => $_link,
    206                                                                                                           's2s_url_trad' => $_trad,
    207                                                                                                           ));
    208                                                                         $log_html  .= "<a href='?exec=articles&amp;id_article=$id_nouvel_article' style='padding:5px;border-bottom:3px solid;background:#eee;display:block;'>"._T('spiptospip:imported_view')."</a>";
    209 
    210                                                           // gestion lien traduction
    211                                                          if  ($_trad) {
    212                                                                   if ($_trad == $_link) { // il s'agit de l'article origine de traduc
    213                                                                           sql_updateq('spip_articles', array("id_trad"=>$id_nouvel_article), "id_article=$id_nouvel_article");   // maj article orig trad
    214                                                                           sql_updateq('spip_articles', array("id_trad"=>$id_nouvel_article), "s2s_url_trad=".sql_quote($_link)); // maj article trad (si deja importe ds une session precedente)
    215                                                                   } else { // il s'agit d'un article traduit, on cherche si on a l'article origine de trad en local
    216                                                                           if ($row = sql_fetsel("id_article","spip_articles","s2s_url=".sql_quote($_trad))) {
    217                                                                                   $id_article_trad = (int) $row['id_article'];
    218                                                                                   sql_updateq('spip_articles', array("id_trad"=>$id_article_trad), "id_article=$id_nouvel_article"); // maj article trad
    219                                                                                   sql_updateq('spip_articles', array("id_trad"=>$id_article_trad), "id_article=$id_article_trad");   // maj article orig trad (si deja importe ds une session precedente)
    220                                                                           }
    221                                                                   }
    222                                                           }
    223 
    224                                                           // ... dans la table auteurs
    225                                                           if ($_id_auteur) {
     191                                                                $id_nouvel_article = sql_insertq(
     192                                                                        "spip_articles",
     193                                                                        array(
     194                                                                                'lang' => $_lang,
     195                                                                                'surtitre' => $_surtitre,
     196                                                                                'titre' => $_titre,
     197                                                                                'soustitre' => $_soustitre,
     198                                                                                'id_rubrique' => $_id_rubrique,
     199                                                                                'id_secteur' => $_id_secteur,
     200                                                                                'descriptif' => $_descriptif,
     201                                                                                'chapo' => $_chapo,
     202                                                                                'texte' => $_texte,
     203                                                                                'ps' => $_ps,
     204                                                                                'statut' => $_statut,
     205                                                                                'accepter_forum' => 'non',
     206                                                                                'date' => $_date,
     207                                                                                's2s_url' => $_link,
     208                                                                                's2s_url_trad' => $_trad,
     209                                                                        )
     210                                                                );
     211                                                                $log_html  .= "<a href='?exec=articles&amp;id_article=$id_nouvel_article' style='padding:5px;border-bottom:3px solid;background:#eee;display:block;'>"._T('spiptospip:imported_view')."</a>";
     212
     213                                                                // gestion lien traduction
     214                                                                if ($_trad) {
     215                                                                        if ($_trad == $_link) { // il s'agit de l'article origine de traduc
     216                                                                                sql_updateq('spip_articles', array("id_trad"=>$id_nouvel_article), "id_article=$id_nouvel_article");   // maj article orig trad
     217                                                                                sql_updateq('spip_articles', array("id_trad"=>$id_nouvel_article), "s2s_url_trad=".sql_quote($_link)); // maj article trad (si deja importe ds une session precedente)
     218                                                                        } else { // il s'agit d'un article traduit, on cherche si on a l'article origine de trad en local
     219                                                                                if ($row = sql_fetsel("id_article","spip_articles","s2s_url=".sql_quote($_trad))) {
     220                                                                                        $id_article_trad = (int) $row['id_article'];
     221                                                                                        sql_updateq('spip_articles', array("id_trad"=>$id_article_trad), "id_article=$id_nouvel_article"); // maj article trad
     222                                                                                        sql_updateq('spip_articles', array("id_trad"=>$id_article_trad), "id_article=$id_article_trad");   // maj article orig trad (si deja importe ds une session precedente)
     223                                                                                }
     224                                                                        }
     225                                                                }
     226
     227                                                                // ... dans la table auteurs
     228                                                                if ($_id_auteur) {
    226229                                                                                $auteurs = explode(", ",$_id_auteur);
    227230                                                                                foreach($auteurs as $auteur) {
    228231                                                                                        $id_auteur = partageur_get_id_auteur($auteur);
    229                                                                                         if ($id_auteur)
    230                                                                                 @sql_insertq("spip_auteurs_liens",array('id_auteur'=>$id_auteur,'objet'=>'article','vu'=>'non','id_objet'=>$id_nouvel_article));
    231                                                                   }
    232                                                           }
    233 
    234                                                           // ....dans la table documents_article
    235                                                           foreach($documents_current_article as $document_current_article) {
    236                                                                   @sql_insertq('spip_documents_liens',array(
    237                                                                                           'id_document'=>$document_current_article, 'id_objet'=>$id_nouvel_article,
    238                                                                                           'objet' => 'article'));
    239                                                           }
    240 
    241                                                           // ... si logo, tente de l'importer
    242                                                           if ($_logo) {
     232                                                                                        if ($id_auteur) {
     233                                                                                                @sql_insertq("spip_auteurs_liens",array('id_auteur'=>$id_auteur,'objet'=>'article','vu'=>'non','id_objet'=>$id_nouvel_article));
     234                                                                                        }
     235                                                                        }
     236                                                                }
     237
     238                                                                // ....dans la table documents_article
     239                                                                foreach($documents_current_article as $document_current_article) {
     240                                                                        @sql_insertq('spip_documents_liens',array(
     241                                                                                                'id_document'=>$document_current_article, 'id_objet'=>$id_nouvel_article,
     242                                                                                                'objet' => 'article'));
     243                                                                }
     244
     245                                                                // ... si logo, tente de l'importer
     246                                                                if ($_logo) {
    243247                                                                        $logo_local = copie_locale($_logo);
    244248                                                                        if ($logo_local) {
     
    246250                                                                                @rename( _DIR_RACINE.$logo_local, _DIR_RACINE.$logo_local_dest);
    247251                                                                        }
    248                                                           }
    249 
    250                                                           // etape 3 - traitement des mots de l'article
    251                                                           $_mots = $article['mots'];
    252                                                           if ($_mots!="" && $import_mot_article) {
    253                                                                 $_mots = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $_mots );
    254                                                                 $_mots = unserialize($_mots);
    255                                                                 foreach($_mots as $_mot) {
    256                                                                         $groupe = stripslashes($_mot['groupe']);
    257                                                                         $titre  = stripslashes($_mot['titre']);
    258                                                                         partageur_insert_mode_article($id_nouvel_article, $titre, $groupe, $import_mot_groupe_creer, $id_import_mot_groupe,"article");
    259252                                                                }
    260                                                           }
    261 
    262 
    263                                                           // etape 4 - traitement des evenements
    264                                                           $_evenements = $article['evenements'];
    265                                                           if ($_evenements!="") {
    266                                                                 $_evenements = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $_evenements );
    267                                                                 $_evenements = unserialize(base64_decode($_evenements));
    268                                                                 foreach($_evenements as $_evenement) {
    269                                                                         $datedeb = $_evenement['datedeb'];
    270                                                                         $datefin = $_evenement['datefin'];
    271                                                                         $lieu = stripslashes($_evenement['lieu']);
    272                                                                         $adresse = partageur_convert_extra(stripslashes($_evenement['adresse']),$documents_current_article,$version_flux);
    273                                                                         $horaire = $_evenement['horaire'];
    274                                                                         $titre = stripslashes($_evenement['titre']);
    275                                                                         $desc = partageur_convert_extra(stripslashes($_evenement['desc']),$documents_current_article,$version_flux);
    276                                                                         $motevts = $_evenement['motevts'];
    277 
    278                                                                         $id_nouvel_evt = sql_insertq('spip_evenements',array(
    279                                                                                                                         'id_article'=> $id_nouvel_article,
    280                                                                                                                         'date_debut'=> $datedeb,
    281                                                                                                                         'date_fin'=> $datefin,
    282                                                                                                                         'titre'=>$titre,
    283                                                                                                                         'descriptif'=>$desc,
    284                                                                                                                         'lieu'=>$lieu,
    285                                                                                                                         'adresse'=>$adresse,
    286                                                                                                                         'horaire'=>$horaire,
    287                                                                                                 'statut'=>$import_statut));
    288                                                                         $log_html .= "<div style='padding:2px 5px;border-bottom:1px solid #5DA7C5;background:#eee;display:block;'>"._T('partageur:event_ok')." : $datedeb  $lieu</div>";
    289 
    290                                                                         // mot cle ?
    291                                                                         if ($motevts!="" && $import_mot_evt) {
    292                                                                           foreach($motevts as $motevt) {
    293                                                                                 $groupe = stripslashes($motevt['groupe']);
    294                                                                                 $titre  = stripslashes($motevt['titre']);
    295                                                                                 partageur_insert_mode_article($id_nouvel_evt, $titre, $groupe, $import_mot_groupe_creer, $id_import_mot_groupe, "evenement");
    296                                                                           }
     253
     254                                                                // etape 3 - traitement des mots de l'article
     255                                                                $_mots = $article['mots'];
     256                                                                if ($_mots!="" && $import_mot_article) {
     257                                                                        $_mots = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $_mots );
     258                                                                        $_mots = unserialize($_mots);
     259                                                                        foreach($_mots as $_mot) {
     260                                                                                $groupe = stripslashes($_mot['groupe']);
     261                                                                                $titre  = stripslashes($_mot['titre']);
     262                                                                                partageur_insert_mode_article($id_nouvel_article, $titre, $groupe, $import_mot_groupe_creer, $id_import_mot_groupe,"article");
    297263                                                                        }
    298                                                                         // #mot cle
    299264                                                                }
    300                                                           } // # etape 4: evenements
    301 
    302 
    303                                                    }  // # insert article
     265
     266
     267                                                                // etape 4 - traitement des evenements
     268                                                                $_evenements = $article['evenements'];
     269                                                                if ($_evenements!="") {
     270                                                                        $_evenements = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $_evenements );
     271                                                                        $_evenements = unserialize(base64_decode($_evenements));
     272                                                                        foreach($_evenements as $_evenement) {
     273                                                                                $datedeb = $_evenement['datedeb'];
     274                                                                                $datefin = $_evenement['datefin'];
     275                                                                                $lieu = stripslashes($_evenement['lieu']);
     276                                                                                $adresse = partageur_convert_extra(stripslashes($_evenement['adresse']),$documents_current_article,$version_flux);
     277                                                                                $horaire = $_evenement['horaire'];
     278                                                                                $titre = stripslashes($_evenement['titre']);
     279                                                                                $desc = partageur_convert_extra(stripslashes($_evenement['desc']),$documents_current_article,$version_flux);
     280                                                                                $motevts = $_evenement['motevts'];
     281
     282                                                                                $id_nouvel_evt = sql_insertq('spip_evenements',array(
     283                                                                                                                                'id_article'=> $id_nouvel_article,
     284                                                                                                                                'date_debut'=> $datedeb,
     285                                                                                                                                'date_fin'=> $datefin,
     286                                                                                                                                'titre'=>$titre,
     287                                                                                                                                'descriptif'=>$desc,
     288                                                                                                                                'lieu'=>$lieu,
     289                                                                                                                                'adresse'=>$adresse,
     290                                                                                                                                'horaire'=>$horaire,
     291                                                                                                        'statut'=>$import_statut));
     292                                                                                $log_html .= "<div style='padding:2px 5px;border-bottom:1px solid #5DA7C5;background:#eee;display:block;'>"._T('partageur:event_ok')." : $datedeb  $lieu</div>";
     293
     294                                                                                // mot cle ?
     295                                                                                if ($motevts!="" && $import_mot_evt) {
     296                                                                                        foreach($motevts as $motevt) {
     297                                                                                                $groupe = stripslashes($motevt['groupe']);
     298                                                                                                $titre  = stripslashes($motevt['titre']);
     299                                                                                                partageur_insert_mode_article($id_nouvel_evt, $titre, $groupe, $import_mot_groupe_creer, $id_import_mot_groupe, "evenement");
     300                                                                                        }
     301                                                                                }
     302                                                                                // #mot cle
     303                                                                        }
     304                                                                } // # etape 4: evenements
     305
     306
     307                                                        } // # insert article
    304308
    305309
     
    339343function is_partageur_backend($str) {
    340344        // Chercher un numero de version
    341         if (preg_match('/(spip2spip)[[:space:]](([^>]*[[:space:]])*)version[[:space:]]*=[[:space:]]*[\'"]([-_a-zA-Z0-9\.]+)[\'"]/', $str, $regs))
    342                  return true;
    343                  return false;
     345        if (preg_match('/(spip2spip)[[:space:]](([^>]*[[:space:]])*)version[[:space:]]*=[[:space:]]*[\'"]([-_a-zA-Z0-9\.]+)[\'"]/', $str, $regs)) {
     346                return true;
     347        }
     348        return false;
    344349}
    345350
     
    354359
    355360        $syndic_regexp = array(
    356                                 'item'           => ',<item[>[:space:]],i',
    357                                 'itemfin'        => '</item>',
    358 
    359                                 'surtitre'       => ',<surtitre[^>]*>(.*?)</surtitre[^>]*>,ims',
    360                                 'titre'          => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
    361                                 'soustitre'      => ',<soustitre[^>]*>(.*?)</soustitre[^>]*>,ims',
    362                                 'descriptif'     => ',<descriptif[^>]*>(.*?)</descriptif[^>]*>,ims',
    363                                 'chapo'          => ',<chapo[^>]*>(.*?)</chapo[^>]*>,ims',
    364                                 'texte'          => ',<texte[^>]*>(.*?)</texte[^>]*>,ims',
    365                                 'ps'             => ',<ps[^>]*>(.*?)</ps[^>]*>,ims',
    366                                 'auteur'         => ',<auteur[^>]*>(.*?)</auteur[^>]*>,ims',
    367                                 'link'           => ',<link[^>]*>(.*?)</link[^>]*>,ims',
    368                                 'trad'           => ',<trad[^>]*>(.*?)</trad[^>]*>,ims',
    369                                 'evenements'     => ',<evenements[^>]*>(.*?)</evenements[^>]*>,ims',
     361                'item'           => ',<item[>[:space:]],i',
     362                'itemfin'        => '</item>',
     363
     364                'surtitre'       => ',<surtitre[^>]*>(.*?)</surtitre[^>]*>,ims',
     365                'titre'          => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
     366                'soustitre'      => ',<soustitre[^>]*>(.*?)</soustitre[^>]*>,ims',
     367                'descriptif'     => ',<descriptif[^>]*>(.*?)</descriptif[^>]*>,ims',
     368                'chapo'          => ',<chapo[^>]*>(.*?)</chapo[^>]*>,ims',
     369                'texte'          => ',<texte[^>]*>(.*?)</texte[^>]*>,ims',
     370                'ps'             => ',<ps[^>]*>(.*?)</ps[^>]*>,ims',
     371                'auteur'         => ',<auteur[^>]*>(.*?)</auteur[^>]*>,ims',
     372                'link'           => ',<link[^>]*>(.*?)</link[^>]*>,ims',
     373                'trad'           => ',<trad[^>]*>(.*?)</trad[^>]*>,ims',
     374                'evenements'     => ',<evenements[^>]*>(.*?)</evenements[^>]*>,ims',
    370375                'lang'           => ',<lang[^>]*>(.*?)</lang[^>]*>,ims',
    371376                'logo'           => ',<logo[^>]*>(.*?)</logo[^>]*>,ims',
     
    374379                'licence'        => ',<licence[^>]*>(.*?)</licence[^>]*>,ims',
    375380                'documents'      => ',<documents[^>]*>(.*?)</documents[^>]*>,ims',
    376 
    377381        );
    378382
     
    380384        $xml_doc_tags = array('id','url','titre','desc');
    381385        $document_regexp = array(
    382                         'document'       => ',<document[>[:space:]],i',
    383                                 'documentfin'    => '</document>',
    384 
    385                                 'id'             => ',<id[^>]*>(.*?)</id[^>]*>,ims',
     386                'document'       => ',<document[>[:space:]],i',
     387                'documentfin'    => '</document>',
     388
     389                'id'             => ',<id[^>]*>(.*?)</id[^>]*>,ims',
    386390                'url'            => ',<url[^>]*>(.*?)</url[^>]*>,ims',
    387                                 'titre'          => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
    388                                 'desc'           => ',<desc[^>]*>(.*?)</desc[^>]*>,ims',
     391                'titre'          => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
     392                'desc'           => ',<desc[^>]*>(.*?)</desc[^>]*>,ims',
    389393        );
    390394
     
    392396        $xml_mot_tags = array('groupe','titre');
    393397        $mot_regexp = array(
    394                         'mot'       => ',<mot[>[:space:]],i',
    395                                 'motfin'    => '</mot>',
    396 
    397                                 'groupe'    => ',<groupe[^>]*>(.*?)</groupe[^>]*>,ims',
    398                                 'titre'     => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
     398                'mot'       => ',<mot[>[:space:]],i',
     399                'motfin'    => '</mot>',
     400
     401                'groupe'    => ',<groupe[^>]*>(.*?)</groupe[^>]*>,ims',
     402                'titre'     => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
    399403        );
    400404
     
    404408
    405409        $evenement_regexp = array(
    406                         'evenement'        => ',<evenement[>[:space:]],i',
    407                                 'evenementfin'     => '</evenement>',
     410                'evenement'        => ',<evenement[>[:space:]],i',
     411                'evenementfin'     => '</evenement>',
    408412                'datedeb'          => ',<datedeb[^>]*>(.*?)</datedeb[^>]*>,ims',
    409                                 'datefin'          => ',<datefin[^>]*>(.*?)</datefin[^>]*>,ims',
    410                                 'titre'            => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
    411                                 'desc'             => ',<desc[^>]*>(.*?)</desc[^>]*>,ims',
    412                                 'lieu'             => ',<lieu[^>]*>(.*?)</lieu[^>]*>,ims',
    413                                 'adresse'          => ',<adresse[^>]*>(.*?)</adresse[^>]*>,ims',
    414                                 'horaire'          => ',<horaire[^>]*>(.*?)</horaire[^>]*>,ims',
     413                'datefin'          => ',<datefin[^>]*>(.*?)</datefin[^>]*>,ims',
     414                'titre'            => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
     415                'desc'             => ',<desc[^>]*>(.*?)</desc[^>]*>,ims',
     416                'lieu'             => ',<lieu[^>]*>(.*?)</lieu[^>]*>,ims',
     417                'adresse'          => ',<adresse[^>]*>(.*?)</adresse[^>]*>,ims',
     418                'horaire'          => ',<horaire[^>]*>(.*?)</horaire[^>]*>,ims',
    415419                'motevts'          => ',<motevts[^>]*>(.*?)</motevts[^>]*>,ims',
    416420        );
    417421
    418   $xml_motevt_tags = array('groupe','titre');
     422        $xml_motevt_tags = array('groupe','titre');
    419423        $motevt_regexp = array(
    420                         'motevt'       => ',<motevt[>[:space:]],i',
    421                                 'motevtfin'    => '</motevt>',
    422 
    423                                 'groupe'    => ',<groupe[^>]*>(.*?)</groupe[^>]*>,ims',
    424                                 'titre'     => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
     424                'motevt'       => ',<motevt[>[:space:]],i',
     425                'motevtfin'    => '</motevt>',
     426
     427                'groupe'    => ',<groupe[^>]*>(.*?)</groupe[^>]*>,ims',
     428                'titre'     => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
    425429        );
    426430
     
    438442        }
    439443
    440   // supprimer les commentaires
     444        // supprimer les commentaires
    441445        $rss = preg_replace(',<!--\s+.*\s-->,Ums', '', $rss);
    442446
     
    452456        if (preg_match_all(',<spip2spip version="(.*?)">,Uims',$rss,$r, PREG_SET_ORDER))
    453457        foreach ($r as $regs) {
    454            $version_flux  = (float) $regs[1];
    455   }
    456   spip_log("partageur - version flux: $version_flux");
     458                $version_flux  = (float) $regs[1];
     459        }
     460        spip_log("partageur - version flux: $version_flux");
    457461
    458462        // analyse de chaque item
     
    488492                // Recuperer les autres tags du xml
    489493                foreach ($xml_tags as $xml_tag) {
    490                   if (preg_match($syndic_regexp[$xml_tag],$item,$match)) $data[$xml_tag] = $match[1];
    491                                                                                                                           else $data[$xml_tag] = "";
     494                  if (preg_match($syndic_regexp[$xml_tag],$item,$match)) {
     495                          $data[$xml_tag] = $match[1];
     496                } else {
     497                        $data[$xml_tag] = "";
     498                }
    492499        }
    493500
    494501        // On parse le noeud documents
    495502        if ($data['documents'] != "") {
    496                   $documents = array();
    497                   if (preg_match_all($document_regexp['document'],$data['documents'],$r2, PREG_SET_ORDER))
    498                         foreach ($r2 as $regs) {
    499                                 $debut_item = strpos($data['documents'],$regs[0]);
    500                                 $fin_item = strpos($data['documents'],
    501                                 $document_regexp['documentfin'])+strlen($document_regexp['documentfin']);
    502                                 $documents[] = substr($data['documents'],$debut_item,$fin_item-$debut_item);
    503                                 $debut_texte = substr($data['documents'], "0", $debut_item);
    504                                 $fin_texte = substr($data['documents'], $fin_item, strlen($data['documents']));
    505                                 $data['documents'] = $debut_texte.$fin_texte;
     503                $documents = array();
     504                if (preg_match_all($document_regexp['document'],$data['documents'],$r2, PREG_SET_ORDER)) {
     505                        foreach ($r2 as $regs) {
     506                                $debut_item = strpos($data['documents'],$regs[0]);
     507                                $fin_item = strpos($data['documents'],
     508                                $document_regexp['documentfin'])+strlen($document_regexp['documentfin']);
     509                                $documents[] = substr($data['documents'],$debut_item,$fin_item-$debut_item);
     510                                $debut_texte = substr($data['documents'], "0", $debut_item);
     511                                $fin_texte = substr($data['documents'], $fin_item, strlen($data['documents']));
     512                                $data['documents'] = $debut_texte.$fin_texte;
     513                        }
     514                }
     515
     516                $portfolio = array();
     517                if (count($documents)) {
     518                        foreach ($documents as $document) {
     519                                $data_node = array();
     520                                foreach ($xml_doc_tags as $xml_doc_tag) {
     521                                        if (preg_match($document_regexp[$xml_doc_tag],$document,$match)) {
     522                                                $data_node[$xml_doc_tag] = $match[1];
     523                                        } else {
     524                                                $data_node[$xml_doc_tag] = "";
     525                                        }
     526                                 }
     527                        $portfolio[] = $data_node;
    506528                  }
    507 
    508                   $portfolio = array();
    509                   if (count($documents)) {
    510                           foreach ($documents as $document) {
    511                                  $data_node = array();
    512                                  foreach ($xml_doc_tags as $xml_doc_tag) {
    513                                         if (preg_match($document_regexp[$xml_doc_tag],$document,$match)) $data_node[$xml_doc_tag] = $match[1];
    514                                                                                                                                                                           else $data_node[$xml_doc_tag] = "";
    515                                            }
    516                                 $portfolio[] = $data_node;
    517                           }
    518                           $data['documents'] =  serialize($portfolio);
    519                   }
     529                  $data['documents'] =  serialize($portfolio);
     530                }
    520531        } # noeud documents
    521532
Note: See TracChangeset for help on using the changeset viewer.