Changeset 91407 in spip-zone


Ignore:
Timestamp:
Aug 18, 2015, 4:19:28 PM (4 years ago)
Author:
teddy.spip@…
Message:
  • Ajout de quelques champs natifs d'un article : statut, date_redac, date_modif, virtuel, nom_site et url_site.
  • Dans le formulaire de configuration, on peut maintenant mettre le même statut que l'article importé. Si on désire avoir un article qui a un statut autre que publié, il faudra que le webmestre surcharge le squelette en conséquence.
  • Ajout d'une colone extra sur la page du site dans le back office où on va lister les thématiques. plus rapide pour s'y retrouver.
  • Up de y
Location:
_plugins_/spip2spip/trunk
Files:
2 added
9 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip2spip/trunk/backend-spip2spip-agenda.html

    r87801 r91407  
    1 [(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]<?xml 
     1[(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]<?xml
    22version="1.0"[ encoding="(#CHARSET)"]?>[
    33(#REM)
    44  Liste tous les articles récents liés aux thématiques du groupe de mots-clés - spip2spip - destinés à être recopiés
    5    
     5
    66  Vous pouvez modifier ce fichier selon vos besoins (exclure des rubriques, ...)
    77
     
    1010<!-- backend utilisant SPIP2SPIP   --><spip2spip version="1.8">
    1111        <title>[(#NOM_SITE_SPIP|texte_backend)]</title>
    12         <link>#URL_SITE_SPIP/</link>   
    13   <!-- thématiques proposées --><BOUCLE_thema(MOTS){type=- spip2spip -}>
    14   [<thema>(#TITRE|texte_backend)</thema>]</BOUCLE_thema>
    15        
    16   <!-- derniers articles à synchroniser --><BOUCLE_synchro_article(ARTICLES){type_mot=- spip2spip -}{age<7}>
    17                 <item>           
    18                   [<surtitre>(#SURTITRE*|liens_absolus|spip2spip_respecte_img|texte_backend)</surtitre>]
    19                   <titre>[(#TITRE*|liens_absolus|spip2spip_respecte_img|texte_backend)]</titre>
    20                   [<soustitre>(#SOUSTITRE*|liens_absolus|spip2spip_respecte_img|texte_backend)</soustitre>]
    21                   [<descriptif>(#DESCRIPTIF*|liens_absolus|spip2spip_respecte_ln|spip2spip_respecte_img|texte_backend)</descriptif>]
    22                   [<chapo>(#CHAPO*|liens_absolus|spip2spip_respecte_ln|spip2spip_respecte_img|texte_backend)</chapo>]
    23                   [<texte>(#TEXTE*|liens_absolus|spip2spip_respecte_ln|spip2spip_respecte_img|texte_backend)</texte>]
    24                   [<ps>(#PS*|liens_absolus|spip2spip_respecte_ln|texte_backend)</ps>]
    25                   <link>#URL_SITE_SPIP/#URL_ARTICLE</link>
    26                   <BOUCLE_trad_dispo(ARTICLES){traduction}{0,1}{exclus}> </BOUCLE_trad_dispo><BOUCLE_trad(ARTICLES){traduction}{origine_traduction}><trad>#URL_SITE_SPIP/#URL_ARTICLE</trad></BOUCLE_trad></B_trad_dispo>
    27                   <date>#DATE</date>         
    28       <B_datesevent><evenements>
    29                 <BOUCLE_datesevent(EVENEMENTS ?){par date}{id_article}{si #GET{evenement}|=={oui}}><evenement>                   
    30                     [<datedeb>(#DATE_DEBUT|texte_backend)</datedeb>]
    31                     [<datefin>(#DATE_FIN|texte_backend)</datefin>]
    32                     [<titre>(#TITRE|texte_backend)</titre>]
    33                     [<desc>(#DESCRIPTIF|spip2spip_respecte_ln|texte_backend)</desc>]
    34                     [<lieu>(#LIEU|texte_backend)</lieu>]
    35                     [<adresse>(#ADRESSE|spip2spip_respecte_ln|texte_backend)</adresse>]
    36                     [<horaire>(#HORAIRE|texte_backend)</horaire>]                   
    37                     [(#CONFIG{spip2spip/export_mot_evnt}|oui)
    38                         [(#GET{which_groupe}|find{-1}|oui)<INCLURE{fond=inclure/spip2spip_mot_article}{id_evenement}{type_objet=evt} />]
    39                         [(#GET{which_groupe}|find{-1}|non)<INCLURE{fond=inclure/spip2spip_mot_article_restreint}{id_evenement}{type_objet=evt} />]
    40                     ]                   
    41            </evenement></BOUCLE_datesevent>
    42                   </evenements></B_datesevent>
    43                   <B_doc><documents>
    44                 <BOUCLE_doc(DOCUMENTS){id_article}>
    45                  <document>
    46                      <id>#ID_DOCUMENT</id>
    47                      <url>#URL_SITE_SPIP/#URL_DOCUMENT</url>
    48                      [<titre>(#TITRE*|texte_backend)</titre>]
    49                      [<desc>(#DESCRIPTIF*|texte_backend)</desc>]
    50                  </document>
    51                 </BOUCLE_doc>
    52       </documents></B_doc>
    53            
    54      <B_auteurs><auteur><BOUCLE_auteurs(AUTEURS){id_article}{", "}>[(#NOM|texte_backend)]</BOUCLE_auteurs></auteur></B_auteurs>
    55                  <lang>#LANG</lang>
    56      [<logo>#URL_SITE_SPIP/(#LOGO_ARTICLE_NORMAL|extraire_attribut{src})</logo>]
    57                  [<logosurvol>#URL_SITE_SPIP/(#LOGO_ARTICLE_SURVOL|extraire_attribut{src})</logosurvol>]
    58      <BOUCLE_list_mot(MOTS){id_article}{type=- spip2spip -}{0,1}>[<keyword>(#TITRE|texte_backend)</keyword>]</BOUCLE_list_mot>
    59      [(#CONFIG{spip2spip/export_mot_article}|oui)
    60         [(#GET{which_groupe}|find{-1}|oui)<INCLURE{fond=inclure/spip2spip_mot_article}{id_article} />]
    61         [(#GET{which_groupe}|find{-1}|non)<INCLURE{fond=inclure/spip2spip_mot_article_restreint}{id_article} />]
    62      ]
    63      <B_licence><licence><BOUCLE_licence(MOTS){id_article}{type=licence}{0,1}>[(#TITRE|texte_backend)]</BOUCLE_licence></licence></B_licence>           
    64                 </item>
    65         </BOUCLE_synchro_article>
     12        <link>#URL_SITE_SPIP/</link>
     13        <!-- thématiques proposées --><BOUCLE_thema (MOTS){type=- spip2spip -}>
     14        [<thema>(#TITRE|texte_backend)</thema>]</BOUCLE_thema>
     15
     16        <!-- derniers articles à synchroniser --><BOUCLE_synchro_article (ARTICLES){type_mot=- spip2spip -}{age<7}>
     17        <item>
     18        [<surtitre>(#SURTITRE*|liens_absolus|spip2spip_respecte_img|texte_backend)</surtitre>]
     19        <titre>[(#TITRE*|liens_absolus|spip2spip_respecte_img|texte_backend)]</titre>
     20        [<soustitre>(#SOUSTITRE*|liens_absolus|spip2spip_respecte_img|texte_backend)</soustitre>]
     21        [<descriptif>(#DESCRIPTIF*|liens_absolus|spip2spip_respecte_ln|spip2spip_respecte_img|texte_backend)</descriptif>]
     22        [<chapo>(#CHAPO*|liens_absolus|spip2spip_respecte_ln|spip2spip_respecte_img|texte_backend)</chapo>]
     23        [<texte>(#TEXTE*|liens_absolus|spip2spip_respecte_ln|spip2spip_respecte_img|texte_backend)</texte>]
     24        [<ps>(#PS*|liens_absolus|spip2spip_respecte_ln|texte_backend)</ps>]
     25        <link>#URL_SITE_SPIP/#URL_ARTICLE</link>
     26        <BOUCLE_trad_dispo (ARTICLES){traduction}{0,1}{exclus}> </BOUCLE_trad_dispo><BOUCLE_trad (ARTICLES){traduction}{origine_traduction}><trad>#URL_SITE_SPIP/#URL_ARTICLE</trad></BOUCLE_trad></B_trad_dispo>
     27        [<virtuel>(#VIRTUEL*)</virtuel>]
     28        [<statut>(#STATUT*)</statut>]
     29        [<date>(#DATE*)</date>]
     30        [<date_redac>(#DATE_REDAC*)</date_redac>]
     31        [<date_modif>(#DATE_MODIF*)</date_modif>]
     32        <B_datesevent><evenements>
     33                <BOUCLE_datesevent (EVENEMENTS ?){par date}{id_article}{si #GET{evenement}|=={oui}}><evenement>
     34                        [<datedeb>(#DATE_DEBUT**|texte_backend)</datedeb>]
     35                        [<datefin>(#DATE_FIN**|texte_backend)</datefin>]
     36                        [<titre>(#TITRE|texte_backend)</titre>]
     37                        [<statut>(#STATUT|texte_backend)</statut>]
     38                        [<desc>(#DESCRIPTIF|spip2spip_respecte_ln|texte_backend)</desc>]
     39                        [<lieu>(#LIEU|texte_backend)</lieu>]
     40                        [<adresse>(#ADRESSE|spip2spip_respecte_ln|texte_backend)</adresse>]
     41                        [<horaire>(#HORAIRE|texte_backend)</horaire>]
     42                        [(#CONFIG{spip2spip/export_mot_evnt}|oui)
     43                                [(#GET{which_groupe}|find{-1}|oui)<INCLURE{fond=inclure/spip2spip_mot_article}{id_evenement}{type_objet=evt} />]
     44                                [(#GET{which_groupe}|find{-1}|non)<INCLURE{fond=inclure/spip2spip_mot_article_restreint}{id_evenement}{type_objet=evt} />]
     45                        ]
     46                </evenement></BOUCLE_datesevent>
     47        </evenements></B_datesevent>
     48        <B_doc><documents>
     49                <BOUCLE_doc (DOCUMENTS){id_article}><document>
     50                        <id>#ID_DOCUMENT</id>
     51                        <url>#URL_SITE_SPIP/#URL_DOCUMENT</url>
     52                        [<titre>(#TITRE*|texte_backend)</titre>]
     53                        [<desc>(#DESCRIPTIF*|texte_backend)</desc>]
     54                        [<credits>(#CREDITS*|texte_backend)</credits>]
     55                 </document>
     56                </BOUCLE_doc>
     57        </documents></B_doc>
     58        <B_auteurs><auteur><BOUCLE_auteurs (AUTEURS){id_article}{", "}>[(#NOM|texte_backend)]</BOUCLE_auteurs></auteur></B_auteurs>
     59        <lang>#LANG</lang>
     60        [<logo>#URL_SITE_SPIP/(#LOGO_ARTICLE_NORMAL|extraire_attribut{src})</logo>]
     61        [<logosurvol>#URL_SITE_SPIP/(#LOGO_ARTICLE_SURVOL|extraire_attribut{src})</logosurvol>]
     62        <BOUCLE_list_mot (MOTS){id_article}{type=- spip2spip -}{0,1}>[<keyword>(#TITRE|texte_backend)</keyword>]</BOUCLE_list_mot>
     63        [(#CONFIG{spip2spip/export_mot_article}|oui)
     64        [(#GET{which_groupe}|find{-1}|oui)<INCLURE{fond=inclure/spip2spip_mot_article}{id_article} />]
     65        [(#GET{which_groupe}|find{-1}|non)<INCLURE{fond=inclure/spip2spip_mot_article_restreint}{id_article} />]
     66        ]
     67        <B_licence><licence><BOUCLE_licence (MOTS){id_article}{type=licence}{0,1}>[(#TITRE|texte_backend)]</BOUCLE_licence></licence></B_licence>
     68        </item>
     69</BOUCLE_synchro_article>
    6670</spip2spip>
    6771[(#REM)Vous pouvez modifier ce fichier selon vos besoins (exclure des rubriques, ...)]
  • _plugins_/spip2spip/trunk/formulaires/configurer_spip2spip.html

    r82824 r91407  
    2222                    datas=#ARRAY{
    2323                    prop,<:sites:info_statut_site_3:>,
    24                     publie,<:sites:info_statut_site_2:>}})]
     24                    publie,<:sites:info_statut_site_2:>,
     25                    identique,<:spip2spip:info_statut_site:>}})]
    2526
    2627                    <!-- import cron -->
  • _plugins_/spip2spip/trunk/inc/spip2spip.php

    r87801 r91407  
    11<?php
    22/**
     3* Class and Function List:
     4* Function list:
     5* - spip2spip_syndiquer()
     6* - is_spip2spip_backend()
     7* - analyser_backend_spip2spip()
     8* - spip2spip_get_id_rubrique()
     9* - spip2spip_get_id_groupemot()
     10* - spip2spip_get_id_mot()
     11* - spip2spip_get_id_secteur()
     12* - spip2spip_get_id_auteur()
     13* - spip2spip_insert_mode_article()
     14* - spip2spip_set_thematique()
     15* - spip2spip_convert_extra()
     16* - spip2spip_convert_img()
     17* - spip2spip_convert_ln()
     18* - spip2spip_update_mode_document()
     19* Classes list:
     20*/
     21
     22/**
    323 * Plugin Spip2spip
    4  * 
     24 *
    525 * Licence GNU/GPL
    626 */
    727
    828if (!defined("_ECRIRE_INC_VERSION")) return;
    9 
    1029
    1130//---------------------------------------
     
    1736//         html (log bavard)
    1837//---------------------------------------
    19 function spip2spip_syndiquer($id_site, $mode = 'cron')
    20 {
     38function spip2spip_syndiquer($id_site, $mode = 'cron') {
    2139    include_spip("inc/distant");
    2240    include_spip("inc/syndic");
     
    3452    if (spip2spip_get_id_groupemot("licence")) {
    3553        $isLicenceInstalled = true;
    36     } else {
     54    }
     55    else {
    3756        $isLicenceInstalled = false;
    3857    }
     
    4160    if (lire_config('spip2spip/import_statut') == "publie") {
    4261        $import_statut = "publie";
    43     } else {
     62    }
     63    elseif (lire_config('spip2spip/import_statut') == "prop") {
    4464        $import_statut = "prop";
     65    }
     66    else {
     67        $import_statut = "identique";
    4568    }
    4669    if (lire_config('spip2spip/import_date_article') == "oui") {
    4770        $import_date_article = true;
    48     } else {
    49         $import_date_article = false; //Date de l'article
     71    }
     72    else {
     73        $import_date_article = false;
     74         //Date de l'article
     75
    5076    }
    5177    if (lire_config('spip2spip/citer_source')) {
    5278        $citer_source = true;
    53     } else {
     79    }
     80    else {
    5481        $citer_source = false;
    5582    }
    5683    if (lire_config('spip2spip/creer_thematique_article') == "oui") {
    5784        $creer_thematique_article = true;
    58     } else {
     85    }
     86    else {
    5987        $creer_thematique_article = false;
    6088    }
    6189    if (lire_config('spip2spip/email_alerte')) {
    6290        $email_alerte = true;
    63     } else {
     91    }
     92    else {
    6493        $email_alerte = false;
    6594    }
    6695    if (lire_config('spip2spip/email_suivi') != "") {
    6796        $email_suivi = lire_config('spip2spip/email_suivi');
    68     } else {
    69         $email_suivi = $GLOBALS['meta']['adresse_suivi']; // adresse de suivi editorial
     97    }
     98    else {
     99        $email_suivi = $GLOBALS['meta']['adresse_suivi'];
     100         // adresse de suivi editorial
     101
    70102    }
    71103    if (lire_config('spip2spip/import_mot_article')) {
    72104        $import_mot_article = true;
    73     } else {
     105    }
     106    else {
    74107        $import_mot_article = false;
    75108    }
    76109    if (lire_config('spip2spip/import_mot_evnt')) {
    77110        $import_mot_evt = true;
    78     } else {
    79         $import_mot_evt=false;
     111    }
     112    else {
     113        $import_mot_evt = false;
    80114    }
    81115    if (lire_config('spip2spip/import_mot_groupe_creer') == "oui") {
    82116        $import_mot_groupe_creer = true;
    83     } else {
     117    }
     118    else {
    84119        $import_mot_groupe_creer = false;
    85120    }
    86121    if (lire_config('spip2spip/import_mot_groupe')) {
    87         $id_import_mot_groupe = (int) lire_config('spip2spip/import_mot_groupe');
    88     } else {
    89         $id_import_mot_groupe = -1;
     122        $id_import_mot_groupe = (int)lire_config('spip2spip/import_mot_groupe');
     123    }
     124    else {
     125        $id_import_mot_groupe = - 1;
    90126    }
    91127
     
    93129    // selection du site
    94130    //-------------------------------
    95     if ($row_site = sql_fetsel("*", "spip_spip2spips", "id_spip2spip=".intval($id_site))) {
    96         $id_site   = $row_site["id_spip2spip"];
     131    if ($row_site = sql_fetsel("*", "spip_spip2spips", "id_spip2spip=" . intval($id_site))) {
     132        $id_site = $row_site["id_spip2spip"];
    97133        $site_titre = $row_site["site_titre"];
    98         $url_syndic   = $row_site["site_rss"];
    99         $date_syndic  = $row_site["maj"];
    100 
    101         spip_log("spip2spip: syndication: ".$url_syndic);
     134        $url_syndic = $row_site["site_rss"];
     135        $date_syndic = $row_site["maj"];
     136
     137        spip_log("spip2spip: syndication: " . $url_syndic);
     138
    102139        //$date =  date('Y-m-d H:i:s',time()); // utileser date OU NOW() ???
    103140        sql_update("spip_spip2spips", array('maj' => 'NOW()'), "id_spip2spip=$id_site");
     
    106143        $rss = recuperer_page($url_syndic, true);
    107144        if (!$rss) {
    108             $log_html .= "<div class='bloc_error'>"._T('spip2spip:avis_echec_syndication')."</div>";
    109         } else {
     145            $log_html.= "<div class='bloc_error'>" . _T('spip2spip:avis_echec_syndication') . "</div>";
     146        }
     147        else {
    110148            $articles = analyser_backend_spip2spip($rss);
     149
    111150            //----*************
    112151            // Des articles dispo pour ce site ?
    113152            if (is_array($articles)) {
     153
    114154                // on ouvre le ul avant l'énumération du ou des article(s)
    115                 $log_html .= "<ul class='liste-items'>\n";
     155                $log_html.= "<ul class='liste-items'>\n";
    116156                foreach ($articles as $article) {
    117                     $log_html .= "<li class='item'>"; // On ouvre les festivités
     157                    $log_html.= "<li class='item'>";
     158                     // On ouvre les festivités
    118159
    119160                    if (isset($article['link'])) {
     
    122163
    123164                        $current_titre = $article['titre'];
    124                         $current_link  = $article['link'];
     165                        $current_link = $article['link'];
     166
    125167                        // Est que l'article n'a pas été déjà importé ?
    126168                        $nb_reponses = sql_countsel("spip_articles", "s2s_url=" . sql_quote($current_link));
    127                         if ($nb_reponses>0) {
     169                        if ($nb_reponses > 0) {
     170
    128171                            // article deja connu et present ds la base
    129                             $article_importe = sql_fetsel(
    130                                 'id_article,titre',
    131                                 'spip_articles',
    132                                 's2s_url=' . sql_quote($current_link)
    133                             );
    134                             $log_html .= "<span class='bloc_info'>"
    135                             . _T('spip2spip:imported_already')
    136                             . "</span><a href='$current_link' rel='external' class='h3'>$current_titre</a><br/>\n"
    137                             . "<strong>"
    138                             . _T('spip2spip:label_thematique')
    139                             . ':</strong> '
    140                             . $article['keyword'] . "<br/>\n"
    141                             . "<a href="
    142                             . generer_url_ecrire('article', 'id_article=' . $article_importe['id_article'])
    143                             . ">"
    144                             . _T('spip2spip:imported_view')
    145                             . "</a>\n";
     172                            $article_importe = sql_fetsel('id_article,titre', 'spip_articles', 's2s_url=' . sql_quote($current_link));
     173                            $log_html.= "<span class='bloc_info'>" . _T('spip2spip:imported_already') . "</span><a href='$current_link' rel='external' class='h3'>$current_titre</a><br/>\n" . "<strong>" . _T('spip2spip:label_thematique') . ':</strong> ' . $article['keyword'] . "<br/>\n" . "<a href=" . generer_url_ecrire('article', 'id_article=' . $article_importe['id_article']) . ">" . _T('spip2spip:imported_view') . "</a>\n";
    146174                            spip_log("spip2spip: deja importe: " . $current_link);
    147                         } else {
     175                        }
     176                        else {
     177
    148178                            // nouvel article à importer
    149                             $log_html .= "<span class='bloc_success'>"
    150                             . _T('spip2spip:imported_new')
    151                             . "</span>\n"
    152                             . "<a href='$current_link' rel='external' class='h3'>$current_titre</a>\n";
     179                            $log_html.= "<span class='bloc_success'>" . _T('spip2spip:imported_new') . "</span>\n" . "<a href='$current_link' rel='external' class='h3'>$current_titre</a>\n";
     180
    153181                            // on cherche la rubrique destination
    154182                            $target = spip2spip_get_id_rubrique($article['keyword']);
    155183                            if (!$target) {
     184
    156185                                // Aucune rubrique associée au thème.
    157186                                if ($creer_thematique_article) {
    158187                                    $id_thematique = spip2spip_set_thematique($article['keyword']);
    159                                     $thematique_complement = " (<a href="
    160                                     . generer_url_ecrire('mot', 'id_mot=' . $id_thematique)
    161                                     . ">"
    162                                     . _T('spip2spip:voir_thematique')
    163                                     . "</a>)";
    164                                 } else {
     188                                    $thematique_complement = " (<a href=" . generer_url_ecrire('mot', 'id_mot=' . $id_thematique) . ">" . _T('spip2spip:voir_thematique') . "</a>)";
     189                                }
     190                                else {
    165191                                    $thematique_complement = '';
    166192                                }
    167193
    168                                 $log_html .= "<div class='bloc_notice'>"
    169                                 . _T('spip2spip:no_target')
    170                                 . " <strong>"
    171                                 . $article['keyword']
    172                                 . "</strong>"
    173                                 . $thematique_complement
    174                                 . "</div>\n";
    175                             } else {
     194                                $log_html.= "<div class='bloc_notice'>" . _T('spip2spip:no_target') . " <strong>" . $article['keyword'] . "</strong>" . $thematique_complement . "</div>\n";
     195                            }
     196                            else {
     197
    176198                                // On a une rubrique cible
    177199                                // On importe les données
     
    182204                                $_documents = $article['documents'];
    183205                                $documents_current_article = array();
    184                                 if ($_documents!="") {
    185                                     $_documents = preg_replace(
    186                                         '!s:(\d+):"(.*?)";!e',
    187                                         "'s:'.strlen('$2').':\"$2\";'",
    188                                         $_documents
    189                                     );
     206                                if ($_documents != "") {
     207                                    $_documents = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $_documents);
    190208                                    $_documents = unserialize($_documents);
    191209                                    foreach ($_documents as $_document) {
     
    193211                                        $source = $_document['url'];
    194212                                        $titre = stripslashes($_document['titre']);
    195                                         $desc =  stripslashes($_document['desc']);
     213                                        $desc = stripslashes($_document['desc']);
     214                                        $credits = stripslashes($_document['credits']);
    196215
    197216                                        // inspire de @ajouter_un_document() - inc/ajout_documents.php
     
    206225                                            $a['date'] = 'NOW()';
    207226                                            $a['distant'] = 'oui';
     227
    208228                                            //$a['mode'] = 'document';
    209229                                            $a['fichier'] = set_spip_doc($source);
    210230
    211                                             $a['titre'] = $titre;     // infos spip2spip, recuperer via le flux
     231                                            $a['titre'] = $titre;
     232                                             // infos spip2spip, recuperer via le flux
    212233                                            $a['descriptif'] = $desc;
     234                                            $a['credits'] = $credits;
    213235
    214236                                            $documents_current_article[$id_distant] = sql_insertq("spip_documents", $a);
    215 
    216237                                        }
    217238                                    }
    218                                 } // Fin de l'étape 1 de traitement des documents
     239                                }
     240                                 // Fin de l'étape 1 de traitement des documents
    219241
    220242                                // -----------------------------------
     
    224246                                $_titre = $article['titre'];
    225247                                $_soustitre = $article['soustitre'];
    226                                 $_descriptif = spip2spip_convert_extra(
    227                                     $article['descriptif'],
    228                                     $documents_current_article,
    229                                     $version_flux
    230                                 );
    231                                 $_chapo = spip2spip_convert_extra(
    232                                     $article['chapo'],
    233                                     $documents_current_article,
    234                                     $version_flux
    235                                 );
    236                                 $_texte = spip2spip_convert_extra(
    237                                     $article['texte'],
    238                                     $documents_current_article,
    239                                     $version_flux
    240                                 );
    241                                 $_ps = spip2spip_convert_extra(
    242                                     $article['ps'],
    243                                     $documents_current_article,
    244                                     $version_flux
    245                                 );
     248                                $_descriptif = spip2spip_convert_extra($article['descriptif'], $documents_current_article, $version_flux);
     249                                $_chapo = spip2spip_convert_extra($article['chapo'], $documents_current_article, $version_flux);
     250                                $_texte = spip2spip_convert_extra($article['texte'], $documents_current_article, $version_flux);
     251                                $_ps = spip2spip_convert_extra($article['ps'], $documents_current_article, $version_flux);
     252
    246253                                // ----------
    247254                                //date de la syndication ou date de l'article ?
    248255                                if ($import_date_article == true) {
    249                                     $_date =  $article['date']; // Date de l'article
    250                                 } else {
    251                                     $_date =  date('Y-m-d H:i:s', time()); //Date de syndication
    252                                 }
     256                                    $_date = $article['date'];
     257                                     // Date de l'article
     258                                }
     259                                else {
     260                                    $_date = date('Y-m-d H:i:s', time());
     261                                     //Date de syndication
     262
     263                                }
     264                                $_date_redac = $article['date_redac'];
     265                                $_date_modif = $article['date_modif'];
     266                                $_nom_site = $article['nom_site'];
     267                                $_url_site = $article['url_site'];
     268                                $_virtuel = $article['virtuel'];
    253269                                $_lang = $article['lang'];
    254270                                $_logo = $article['logo'];
     
    256272                                $_id_rubrique = $target;
    257273                                $_id_secteur = spip2spip_get_id_secteur($target);
    258                                 $_statut = $import_statut;
     274                                $_statut = ($import_statut == 'identique') ? $article['statut'] : $import_statut;
    259275                                $_id_auteur = $article['auteur'];
    260276                                $_link = $article['link'];
    261277                                $_trad = $article['trad'];
    262278                                $_licence = $article['licence'];
     279
    263280                                // ----------
    264281                                // on cite la source originale ds le champs ps et la licence
    265282                                if ($citer_source) {
    266                                     $_ps .= _T('spip2spip:origin_url')." [->".$_link."]";
    267                                 }
     283                                    $_ps.= _T('spip2spip:origin_url') . " [->" . $_link . "]";
     284                                }
     285
    268286                                // ----------
    269287                                // licence ?
    270                                 if ($_licence !="" && !isLicenceInstalled) {
    271                                     $_ps .= _T('spip2spip:article_license')." ".$_licence;
    272                                 }
     288                                if ($_licence != "" && !isLicenceInstalled) {
     289                                    $_ps.= _T('spip2spip:article_license') . " " . $_licence;
     290                                }
     291
    273292                                // ----------
    274293                                // ....dans la table articles
    275294                                // ----------
    276                                 $id_nouvel_article = sql_insertq(
    277                                     "spip_articles",
    278                                     array(
    279                                         'lang' => $_lang,
    280                                         'surtitre' => $_surtitre,
    281                                         'titre' => $_titre,
    282                                         'soustitre' => $_soustitre,
    283                                         'id_rubrique' => $_id_rubrique,
    284                                         'id_secteur' => $_id_secteur,
    285                                         'descriptif' => $_descriptif,
    286                                         'chapo' => $_chapo,
    287                                         'texte' => $_texte,
    288                                         'ps' => $_ps,
    289                                         'statut' => $_statut,
    290                                         'accepter_forum' => 'non',
    291                                         'date' => $_date,
    292                                         's2s_url' => $_link,
    293                                         's2s_url_trad' => $_trad,
    294                                     )
    295                                 );
    296                                 $log_html  .= "<br/>\n"
    297                                 . "<strong>"
    298                                 . _T('spip2spip:label_thematique')
    299                                 . ':</strong> '
    300                                 . $article['keyword']
    301                                 . "<br/>\n<a href='"
    302                                 . generer_url_ecrire('article', "id_article=$id_nouvel_article")
    303                                 . "'>"
    304                                 . _T('spip2spip:imported_view')
    305                                 . "</a>\n";
    306 
    307                                 $log_email .= $article['titre']
    308                                 . "\n"
    309                                 . _T('spip2spip:imported_view')
    310                                 . ": "
    311                                 . generer_url_ecrire('article', "id_article=$id_nouvel_article", true, false)
    312                                 . "\n\n";
     295                                $id_nouvel_article = sql_insertq("spip_articles", array(
     296                                    'lang' => $_lang,
     297                                    'surtitre' => $_surtitre,
     298                                    'titre' => $_titre,
     299                                    'soustitre' => $_soustitre,
     300                                    'id_rubrique' => $_id_rubrique,
     301                                    'id_secteur' => $_id_secteur,
     302                                    'descriptif' => $_descriptif,
     303                                    'chapo' => $_chapo,
     304                                    'virtuel' => $_virtuel,
     305                                    'texte' => $_texte,
     306                                    'ps' => $_ps,
     307                                    'statut' => $_statut,
     308                                    'nom_site' => $_nom_site,
     309                                    'url_site' => $_url_site,
     310                                    'accepter_forum' => 'non',
     311                                    'date' => $_date,
     312                                    'date_redac' => $_date_redac,
     313                                    'date_modif' => $_date_modif,
     314                                    's2s_url' => $_link,
     315                                    's2s_url_trad' => $_trad,
     316                                ));
     317                                $log_html.= "<br/>\n" . "<strong>" . _T('spip2spip:label_thematique') . ':</strong> ' . $article['keyword'] . "<br/>\n<a href='" . generer_url_ecrire('article', "id_article=$id_nouvel_article") . "'>" . _T('spip2spip:imported_view') . "</a>\n";
     318
     319                                $log_email.= $article['titre'] . "\n" . _T('spip2spip:imported_view') . ": " . generer_url_ecrire('article', "id_article=$id_nouvel_article", true, false) . "\n\n";
     320
    313321                                // ----------
    314322                                // gestion lien traduction
     
    316324                                if ($_trad) {
    317325                                    if ($_trad == $_link) {
    318                                     // il s'agit de l'article origine de traduc
    319                                         sql_updateq(
    320                                             'spip_articles',
    321                                             array("id_trad"=>$id_nouvel_article),
    322                                             "id_article=$id_nouvel_article"
    323                                         );   // maj article orig trad
    324                                         sql_updateq(
    325                                             'spip_articles',
    326                                             array("id_trad"=>$id_nouvel_article),
    327                                             "s2s_url_trad=".sql_quote($_link)
    328                                         ); // maj article trad (si deja importe ds une session precedente)
    329                                     } else {
     326
     327                                        // il s'agit de l'article origine de traduc
     328                                        sql_updateq('spip_articles', array("id_trad" => $id_nouvel_article), "id_article=$id_nouvel_article");
     329                                         // maj article orig trad
     330                                        sql_updateq('spip_articles', array("id_trad" => $id_nouvel_article), "s2s_url_trad=" . sql_quote($_link));
     331                                         // maj article trad (si deja importe ds une session precedente)
     332
     333                                    }
     334                                    else {
     335
    330336                                        // il s'agit d'un article traduit,
    331337                                        // on cherche si on a l'article origine de trad en local
    332                                         if ($row = sql_fetsel(
    333                                             "id_article",
    334                                             "spip_articles",
    335                                             "s2s_url=".sql_quote($_trad)
    336                                         )) {
    337                                             $id_article_trad = (int) $row['id_article'];
    338                                             sql_updateq(
    339                                                 'spip_articles',
    340                                                 array("id_trad"=>$id_article_trad),
    341                                                 "id_article=$id_nouvel_article"
    342                                             ); // maj article trad
    343                                             sql_updateq(
    344                                                 'spip_articles',
    345                                                 array("id_trad"=>$id_article_trad),
    346                                                 "id_article=$id_article_trad"
    347                                             );   // maj article orig trad (si deja importe ds une session precedente)
     338                                        if ($row = sql_fetsel("id_article", "spip_articles", "s2s_url=" . sql_quote($_trad))) {
     339                                            $id_article_trad = (int)$row['id_article'];
     340                                            sql_updateq('spip_articles', array("id_trad" => $id_article_trad), "id_article=$id_nouvel_article");
     341                                             // maj article trad
     342                                            sql_updateq('spip_articles', array("id_trad" => $id_article_trad), "id_article=$id_article_trad");
     343                                             // maj article orig trad (si deja importe ds une session precedente)
     344
    348345                                        }
    349346                                    }
    350347                                }
     348
    351349                                // ----------
    352350                                // ... dans la table auteurs
     
    357355                                        $id_auteur = spip2spip_get_id_auteur($auteur);
    358356                                        if ($id_auteur) {
    359                                             @sql_insertq(
    360                                                 "spip_auteurs_liens",
    361                                                 array(
    362                                                     'id_auteur'=>$id_auteur,
    363                                                     'objet'=>'article',
    364                                                     'vu'=>'non',
    365                                                     'id_objet'=>$id_nouvel_article
    366                                                 )
    367                                             );
     357                                            @sql_insertq("spip_auteurs_liens", array('id_auteur' => $id_auteur, 'objet' => 'article', 'vu' => 'non', 'id_objet' => $id_nouvel_article));
    368358                                        }
    369359                                    }
    370360                                }
     361
    371362                                // ----------
    372363                                // ... dans la table spip_documents_liens
    373364                                // ----------
    374365                                foreach ($documents_current_article as $document_current_article) {
    375                                     @sql_insertq(
    376                                         'spip_documents_liens',
    377                                         array(
    378                                             'id_document'=>$document_current_article,
    379                                             'id_objet'=>$id_nouvel_article,
    380                                             'objet' => 'article'
    381                                         )
    382                                     );
    383                                 }
     366                                    @sql_insertq('spip_documents_liens', array('id_document' => $document_current_article, 'id_objet' => $id_nouvel_article, 'objet' => 'article'));
     367                                }
     368
    384369                                // ----------
    385370                                // ... si logo, tente de l'importer
     
    388373                                    $logo_local = copie_locale($_logo);
    389374                                    if ($logo_local) {
    390                                         $logo_local_dest = _DIR_IMG
    391                                         . "arton$id_nouvel_article."
    392                                         . substr($logo_local, -3);
    393                                         @rename(
    394                                             _DIR_RACINE . $logo_local,
    395                                             _DIR_RACINE . $logo_local_dest
    396                                         );
     375                                        $logo_local_dest = _DIR_IMG . "arton$id_nouvel_article." . substr($logo_local, -3);
     376                                        @rename(_DIR_RACINE . $logo_local, _DIR_RACINE . $logo_local_dest);
    397377                                    }
    398378                                }
     379
    399380                                // ----------
    400381                                // ... si logo de survol, tente de l'importer
     
    403384                                    $logosurvol_local = copie_locale($_logosurvol);
    404385                                    if ($logosurvol_local) {
    405                                         $logosurvol_local_dest = _DIR_IMG
    406                                         . "artoff$id_nouvel_article."
    407                                         . substr($logosurvol_local, -3);
    408                                         @rename(
    409                                             _DIR_RACINE . $logosurvol_local,
    410                                             _DIR_RACINE . $logosurvol_local_dest
    411                                         );
     386                                        $logosurvol_local_dest = _DIR_IMG . "artoff$id_nouvel_article." . substr($logosurvol_local, -3);
     387                                        @rename(_DIR_RACINE . $logosurvol_local, _DIR_RACINE . $logosurvol_local_dest);
    412388                                    }
    413389                                }
     
    417393                                // -----------------------------------
    418394                                $_mots = $article['mots'];
    419                                 if ($_mots!="" && $import_mot_article) {
    420                                     $_mots = preg_replace(
    421                                         '!s:(\d+):"(.*?)";!e',
    422                                         "'s:'.strlen('$2').':\"$2\";'",
    423                                         $_mots
    424                                     );
     395                                if ($_mots != "" && $import_mot_article) {
     396                                    $_mots = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $_mots);
    425397                                    $_mots = unserialize($_mots);
    426398                                    foreach ($_mots as $_mot) {
    427399                                        $groupe = stripslashes($_mot['groupe']);
    428                                         $titre  = stripslashes($_mot['titre']);
    429                                         spip2spip_insert_mode_article(
    430                                             $id_nouvel_article,
    431                                             $titre,
    432                                             $groupe,
    433                                             $import_mot_groupe_creer,
    434                                             $id_import_mot_groupe,
    435                                             "article"
    436                                         );
     400                                        $titre = stripslashes($_mot['titre']);
     401                                        spip2spip_insert_mode_article($id_nouvel_article, $titre, $groupe, $import_mot_groupe_creer, $id_import_mot_groupe, "article");
    437402                                    }
    438403                                }
     
    442407                                // -----------------------------------
    443408                                $_evenements = $article['evenements'];
    444                                 if ($_evenements!="") {
    445                                     $_evenements = preg_replace(
    446                                         '!s:(\d+):"(.*?)";!e',
    447                                         "'s:'.strlen('$2').':\"$2\";'",
    448                                         $_evenements
    449                                     );
     409                                if ($_evenements != "") {
     410                                    $_evenements = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $_evenements);
    450411                                    $_evenements = unserialize(base64_decode($_evenements));
    451412                                    foreach ($_evenements as $_evenement) {
     
    453414                                        $datefin = $_evenement['datefin'];
    454415                                        $lieu = stripslashes($_evenement['lieu']);
    455                                         $adresse = spip2spip_convert_extra(
    456                                             stripslashes($_evenement['adresse']),
    457                                             $documents_current_article,
    458                                             $version_flux
    459                                         );
     416                                        $adresse = spip2spip_convert_extra(stripslashes($_evenement['adresse']), $documents_current_article, $version_flux);
    460417                                        $horaire = $_evenement['horaire'];
    461418                                        $titre = stripslashes($_evenement['titre']);
    462                                         $desc = spip2spip_convert_extra(
    463                                             stripslashes($_evenement['desc']),
    464                                             $documents_current_article,
    465                                             $version_flux
    466                                         );
     419                                        $statut = ($import_statut == "identique") ? $_evt_statut : $import_statut;
     420                                        $desc = spip2spip_convert_extra(stripslashes($_evenement['desc']), $documents_current_article, $version_flux);
    467421                                        $motevts = $_evenement['motevts'];
    468422
    469                                         $id_nouvel_evt = sql_insertq(
    470                                             'spip_evenements',
    471                                             array(
    472                                                 'id_article'=> $id_nouvel_article,
    473                                                 'date_debut'=> $datedeb,
    474                                                 'date_fin'=> $datefin,
    475                                                 'titre'=>$titre,
    476                                                 'descriptif'=>$desc,
    477                                                 'lieu'=>$lieu,
    478                                                 'adresse'=>$adresse,
    479                                                 'horaire'=>$horaire,
    480                                                 'statut'=>$import_statut
    481                                             )
    482                                         );
    483                                         $log_html .= "<div class='event_ok'>"
    484                                         . _T('spip2spip:event_ok')
    485                                         . " : $datedeb  $lieu</div>";
     423                                        $id_nouvel_evt = sql_insertq('spip_evenements', array(
     424                                            'id_article' => $id_nouvel_article,
     425                                            'date_debut' => $datedeb,
     426                                            'date_fin' => $datefin,
     427                                            'titre' => $titre,
     428                                            'descriptif' => $desc,
     429                                            'lieu' => $lieu,
     430                                            'adresse' => $adresse,
     431                                            'horaire' => $horaire,
     432                                            'statut' => $statut,
     433                                        ));
     434                                        $log_html.= "<div class='event_ok'>" . _T('spip2spip:event_ok') . " : $datedeb  $lieu</div>";
    486435
    487436                                        // mot cle ?
    488                                         if ($motevts!="" && $import_mot_evt) {
     437                                        if ($motevts != "" && $import_mot_evt) {
    489438                                            foreach ($motevts as $motevt) {
    490439                                                $groupe = stripslashes($motevt['groupe']);
    491                                                 $titre  = stripslashes($motevt['titre']);
    492                                                 spip2spip_insert_mode_article(
    493                                                     $id_nouvel_evt,
    494                                                     $titre,
    495                                                     $groupe,
    496                                                     $import_mot_groupe_creer,
    497                                                     $id_import_mot_groupe,
    498                                                     "evenement"
    499                                                 );
     440                                                $titre = stripslashes($motevt['titre']);
     441                                                spip2spip_insert_mode_article($id_nouvel_evt, $titre, $groupe, $import_mot_groupe_creer, $id_import_mot_groupe, "evenement");
    500442                                            }
    501443                                        }
     444
    502445                                        // #mot cle
     446
    503447                                    }
    504                                 } // Fin etape 4
     448                                }
     449                                 // Fin etape 4
    505450
    506451                                // ----------
    507452                                // .... dans le groupe mot "licence" ?
    508453                                // ----------
    509                                 if ($_licence !="" && isLicenceInstalled) {
     454                                if ($_licence != "" && isLicenceInstalled) {
    510455                                    $id_mot = spip2spip_get_id_mot($_licence);
    511456                                    if ($id_mot) {
    512                                         @sql_insertq(
    513                                             'spip_mots_articles',
    514                                             array('id_mot'=>$id_mot, 'id_article'=>$id_nouvel_article)
    515                                         );
     457                                        @sql_insertq('spip_mots_articles', array('id_mot' => $id_mot, 'id_article' => $id_nouvel_article));
    516458                                    }
    517459                                }
    518 
    519 
    520                             } // Fin du traitement de l'article vers sa rubrique cible.
    521                             $log_html .= "</li>\n"; // on n'oublie pas de fermer l'item de la liste
    522                         } // On a traité l'article à importer.
    523 
    524                     } else {
     460                            }
     461                             // Fin du traitement de l'article vers sa rubrique cible.
     462                            $log_html.= "</li>\n";
     463                             // on n'oublie pas de fermer l'item de la liste
     464
     465                        }
     466                         // On a traité l'article à importer.
     467
     468
     469                    }
     470                    else {
     471
    525472                        // pas de link dans l'article du flux.
     473
    526474                    }
    527                 } // Fin du traitement de chaque article.
     475                }
     476                 // Fin du traitement de chaque article.
    528477                // On ferme la liste.
    529                 $log_html .= "</ul>\n";
    530             } else {
     478                $log_html.= "</ul>\n";
     479            }
     480            else {
     481
    531482                // On n'a pas d'article dans le flux.
    532                 $log_html .= "<div class='bloc_notice'>"._T('spip2spip:aucun_article')."</div>";
     483                $log_html.= "<div class='bloc_notice'>" . _T('spip2spip:aucun_article') . "</div>";
    533484            }
    534 
    535         } // fin du traitement du flux rss (else)
    536 
    537     } // #selection du site
     485        }
     486         // fin du traitement du flux rss (else)
     487
     488
     489    }
     490     // #selection du site
    538491
    539492    // alerte email ?
    540     if ($email_alerte && $log_email !="") {
     493    if ($email_alerte && $log_email != "") {
    541494        $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
    542495        $envoyer_mail($email_suivi, _T('spip2spip:titre_mail'), $log_email);
    543496    }
    544497
    545 
    546     if ($mode=='html') {
     498    if ($mode == 'html') {
    547499        return $log_html;
    548500    }
    549501    return false;
    550502}
    551 
    552503
    553504// -----------------------
     
    559510// a terme peut etre utile pour recuperer le numero de version
    560511function is_spip2spip_backend($str) {
     512
    561513    // Chercher un numero de version
    562     if (preg_match('/(spip2spip)[[:space:]](([^>]*[[:space:]])*)version[[:space:]]*=[[:space:]]*[\'"]([-_a-zA-Z0-9\.]+)[\'"]/', $str, $regs))
    563          return true;
    564          return false;
     514    if (preg_match('/(spip2spip)[[:space:]](([^>]*[[:space:]])*)version[[:space:]]*=[[:space:]]*[\'"]([-_a-zA-Z0-9\.]+)[\'"]/', $str, $regs)) return true;
     515    return false;
    565516}
    566517
     
    568519// parse le backend xml spip2spip
    569520// basée sur la fonction originale: ecrire/inc/syndic.php -> analyser_backend()
    570 function analyser_backend_spip2spip($rss){
    571   include_spip("inc_texte.php"); # pour couper()
    572     include_spip("inc_filtres.php"); # pour filtrer_entites()
    573 
    574     $xml_tags = array('surtitre','titre','soustitre','descriptif','chapo','texte','ps','auteur','link','trad','date','evenements', 'lang','logo','logosurvol','keyword','mots','licence','documents');
     521function analyser_backend_spip2spip($rss) {
     522    include_spip("inc_texte.php"); // pour couper()
     523    include_spip("inc_filtres.php"); // pour filtrer_entites()
     524
     525    $xml_tags = array('surtitre', 'titre', 'soustitre', 'descriptif', 'chapo', 'texte', 'ps', 'auteur', 'link', 'trad', 'date', 'date_redac', 'date_modif', 'statut', 'nom_site', 'url_site', 'virtuel', 'evenements', 'lang', 'logo', 'logosurvol', 'keyword', 'mots', 'licence', 'documents');
    575526
    576527    $syndic_regexp = array(
    577                 'item'           => ',<item[>[:space:]],i',
    578                 'itemfin'        => '</item>',
    579 
    580                 'surtitre'       => ',<surtitre[^>]*>(.*?)</surtitre[^>]*>,ims',
    581                 'titre'          => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
    582                 'soustitre'      => ',<soustitre[^>]*>(.*?)</soustitre[^>]*>,ims',
    583                 'descriptif'     => ',<descriptif[^>]*>(.*?)</descriptif[^>]*>,ims',
    584                 'chapo'          => ',<chapo[^>]*>(.*?)</chapo[^>]*>,ims',
    585                 'texte'          => ',<texte[^>]*>(.*?)</texte[^>]*>,ims',
    586                 'ps'             => ',<ps[^>]*>(.*?)</ps[^>]*>,ims',
    587                 'auteur'         => ',<auteur[^>]*>(.*?)</auteur[^>]*>,ims',
    588                 'link'           => ',<link[^>]*>(.*?)</link[^>]*>,ims',
    589                 'trad'           => ',<trad[^>]*>(.*?)</trad[^>]*>,ims',
    590                 'date'           => ',<date[^>]*>(.*?)</date[^>]*>,ims',
    591                 'evenements'     => ',<evenements[^>]*>(.*?)</evenements[^>]*>,ims',
    592                 'lang'           => ',<lang[^>]*>(.*?)</lang[^>]*>,ims',
    593                 'logo'           => ',<logo[^>]*>(.*?)</logo[^>]*>,ims',
    594                 'logosurvol'     => ',<logosurvol[^>]*>(.*?)</logosurvol[^>]*>,ims',
    595                 'keyword'        => ',<keyword[^>]*>(.*?)</keyword[^>]*>,ims',
    596                 'mots'           => ',<mots[^>]*>(.*?)</mots[^>]*>,ims',
    597                 'licence'        => ',<licence[^>]*>(.*?)</licence[^>]*>,ims',
    598                 'documents'      => ',<documents[^>]*>(.*?)</documents[^>]*>,ims',
     528        'item' => ',<item[>[:space:]],i',
     529        'itemfin' => '</item>',
     530        'surtitre' => ',<surtitre[^>]*>(.*?)</surtitre[^>]*>,ims',
     531        'statut' => ',<statut[^>]*>(.*?)</statut[^>]*>,ims',
     532        'titre' => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
     533        'soustitre' => ',<soustitre[^>]*>(.*?)</soustitre[^>]*>,ims',
     534        'descriptif' => ',<descriptif[^>]*>(.*?)</descriptif[^>]*>,ims',
     535        'chapo' => ',<chapo[^>]*>(.*?)</chapo[^>]*>,ims',
     536        'texte' => ',<texte[^>]*>(.*?)</texte[^>]*>,ims',
     537        'ps' => ',<ps[^>]*>(.*?)</ps[^>]*>,ims',
     538        'auteur' => ',<auteur[^>]*>(.*?)</auteur[^>]*>,ims',
     539        'link' => ',<link[^>]*>(.*?)</link[^>]*>,ims',
     540        'trad' => ',<trad[^>]*>(.*?)</trad[^>]*>,ims',
     541        'date' => ',<date[^>]*>(.*?)</date[^>]*>,ims',
     542        'date_redac' => ',<date_redac[^>]*>(.*?)</date_redac[^>]*>,ims',
     543        'date_modif' => ',<date_modif[^>]*>(.*?)</date_modif[^>]*>,ims',
     544        'virtuel' => ',<virtuel[^>]*>(.*?)</virtuel[^>]*>,ims',
     545        'nom_site' => ',<nom_site[^>]*>(.*?)</nom_site[^>]*>,ims',
     546        'url_site' => ',<url_site[^>]*>(.*?)</url_site[^>]*>,ims',
     547        'evenements' => ',<evenements[^>]*>(.*?)</evenements[^>]*>,ims',
     548        'lang' => ',<lang[^>]*>(.*?)</lang[^>]*>,ims',
     549        'logo' => ',<logo[^>]*>(.*?)</logo[^>]*>,ims',
     550        'logosurvol' => ',<logosurvol[^>]*>(.*?)</logosurvol[^>]*>,ims',
     551        'keyword' => ',<keyword[^>]*>(.*?)</keyword[^>]*>,ims',
     552        'mots' => ',<mots[^>]*>(.*?)</mots[^>]*>,ims',
     553        'licence' => ',<licence[^>]*>(.*?)</licence[^>]*>,ims',
     554        'documents' => ',<documents[^>]*>(.*?)</documents[^>]*>,ims',
    599555    );
    600556
    601557    // documents
    602     $xml_doc_tags = array('id','url','titre','desc');
     558    $xml_doc_tags = array('id', 'url', 'titre', 'desc', 'credits');
    603559    $document_regexp = array(
    604             'document'      => ',<document[>[:space:]],i',
    605                 'documentfin'    => '</document>',
    606 
    607                 'id'             => ',<id[^>]*>(.*?)</id[^>]*>,ims',
    608         'url'            => ',<url[^>]*>(.*?)</url[^>]*>,ims',
    609                 'titre'          => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
    610                 'desc'           => ',<desc[^>]*>(.*?)</desc[^>]*>,ims',
     560        'document' => ',<document[>[:space:]],i',
     561        'documentfin' => '</document>',
     562        'id' => ',<id[^>]*>(.*?)</id[^>]*>,ims',
     563        'url' => ',<url[^>]*>(.*?)</url[^>]*>,ims',
     564        'titre' => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
     565        'desc' => ',<desc[^>]*>(.*?)</desc[^>]*>,ims',
     566        'credits' => ',<credits[^>]*>(.*?)</credits[^>]*>,ims',
    611567    );
    612568
    613569    // mots
    614     $xml_mot_tags = array('groupe','titre');
     570    $xml_mot_tags = array('groupe', 'titre');
    615571    $mot_regexp = array(
    616             'mot'       => ',<mot[>[:space:]],i',
    617                 'motfin'    => '</mot>',
    618 
    619                 'groupe'    => ',<groupe[^>]*>(.*?)</groupe[^>]*>,ims',
    620                 'titre'     => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
     572        'mot' => ',<mot[>[:space:]],i',
     573        'motfin' => '</mot>',
     574        'groupe' => ',<groupe[^>]*>(.*?)</groupe[^>]*>,ims',
     575        'titre' => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
    621576    );
    622577
    623578    // evenements
    624     $xml_event_tags = array('datedeb','datefin','titre','desc','lieu','adresse','horaire','motevts');
     579    $xml_event_tags = array('datedeb', 'datefin', 'titre', 'statut', 'desc', 'lieu', 'adresse', 'horaire', 'motevts');
     580
    625581    // on ne gere pas pour l'instant idevent/idsource qui permet de conserver la liaison des repetitions
    626582
    627583    $evenement_regexp = array(
    628             'evenement'        => ',<evenement[>[:space:]],i',
    629                 'evenementfin'     => '</evenement>',
    630         'datedeb'          => ',<datedeb[^>]*>(.*?)</datedeb[^>]*>,ims',
    631                 'datefin'          => ',<datefin[^>]*>(.*?)</datefin[^>]*>,ims',
    632                 'titre'            => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
    633                 'desc'             => ',<desc[^>]*>(.*?)</desc[^>]*>,ims',
    634                 'lieu'             => ',<lieu[^>]*>(.*?)</lieu[^>]*>,ims',
    635                 'adresse'          => ',<adresse[^>]*>(.*?)</adresse[^>]*>,ims',
    636                 'horaire'          => ',<horaire[^>]*>(.*?)</horaire[^>]*>,ims',
    637         'motevts'          => ',<motevts[^>]*>(.*?)</motevts[^>]*>,ims',
     584        'evenement' => ',<evenement[>[:space:]],i',
     585        'evenementfin' => '</evenement>',
     586        'datedeb' => ',<datedeb[^>]*>(.*?)</datedeb[^>]*>,ims',
     587        'datefin' => ',<datefin[^>]*>(.*?)</datefin[^>]*>,ims',
     588        'titre' => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
     589        'statut' => ',<statut[^>]*>(.*?)</statut[^>]*>,ims',
     590        'desc' => ',<desc[^>]*>(.*?)</desc[^>]*>,ims',
     591        'lieu' => ',<lieu[^>]*>(.*?)</lieu[^>]*>,ims',
     592        'adresse' => ',<adresse[^>]*>(.*?)</adresse[^>]*>,ims',
     593        'horaire' => ',<horaire[^>]*>(.*?)</horaire[^>]*>,ims',
     594        'motevts' => ',<motevts[^>]*>(.*?)</motevts[^>]*>,ims',
    638595    );
    639596
    640   $xml_motevt_tags = array('groupe','titre');
     597    $xml_motevt_tags = array('groupe', 'titre');
    641598    $motevt_regexp = array(
    642             'motevt'       => ',<motevt[>[:space:]],i',
    643                 'motevtfin'    => '</motevt>',
    644 
    645                 'groupe'    => ',<groupe[^>]*>(.*?)</groupe[^>]*>,ims',
    646                 'titre'     => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
     599        'motevt' => ',<motevt[>[:space:]],i',
     600        'motevtfin' => '</motevt>',
     601        'groupe' => ',<groupe[^>]*>(.*?)</groupe[^>]*>,ims',
     602        'titre' => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
    647603    );
    648604
     
    652608    // Echapper les CDATA
    653609    $echappe_cdata = array();
    654     if (preg_match_all(',<!\[CDATA\[(.*)]]>,Uims', $rss,
    655     $regs, PREG_SET_ORDER)) {
     610    if (preg_match_all(',<!\[CDATA\[(.*)]]>,Uims', $rss, $regs, PREG_SET_ORDER)) {
    656611        foreach ($regs as $n => $reg) {
    657612            $echappe_cdata[$n] = $reg[1];
     
    660615    }
    661616
    662   // supprimer les commentaires
     617    // supprimer les commentaires
    663618    $rss = preg_replace(',<!--\s+.*\s-->,Ums', '', $rss);
    664619
    665620    // multi (pas echappe)
    666     $rss = str_replace("&lt;multi&gt;",  "@@@MULTI@@@", $rss);
    667     $rss = str_replace("&lt;/multi&gt;",  "@@@MULTJ@@@", $rss);
     621    $rss = str_replace("&lt;multi&gt;", "@@@MULTI@@@", $rss);
     622    $rss = str_replace("&lt;/multi&gt;", "@@@MULTJ@@@", $rss);
    668623
    669624    // lien interne  <- (pas echappe)
    670     $rss = str_replace("&lt;-",  "@@@LIEN_INV@@@", $rss);
     625    $rss = str_replace("&lt;-", "@@@LIEN_INV@@@", $rss);
    671626
    672627    // version du flux
    673628    $version_flux = 0;
    674     if (preg_match_all(',<spip2spip version="(.*?)">,Uims',$rss,$r, PREG_SET_ORDER))
    675     foreach ($r as $regs) {
    676        $version_flux  = (float) $regs[1];
    677   }
    678   spip_log("spip2spip - version flux: $version_flux");
     629    if (preg_match_all(',<spip2spip version="(.*?)">,Uims', $rss, $r, PREG_SET_ORDER)) foreach ($r as $regs) {
     630        $version_flux = (float)$regs[1];
     631    }
     632    spip_log("spip2spip - version flux: $version_flux");
    679633
    680634    // analyse de chaque item
    681635    $items = array();
    682     if (preg_match_all($syndic_regexp['item'],$rss,$r, PREG_SET_ORDER))
    683     foreach ($r as $regs) {
    684         $debut_item = strpos($rss,$regs[0]);
    685         $fin_item = strpos($rss,
    686         $syndic_regexp['itemfin'])+strlen($syndic_regexp['itemfin']);
    687         $items[] = substr($rss,$debut_item,$fin_item-$debut_item);
     636    if (preg_match_all($syndic_regexp['item'], $rss, $r, PREG_SET_ORDER)) foreach ($r as $regs) {
     637        $debut_item = strpos($rss, $regs[0]);
     638        $fin_item = strpos($rss, $syndic_regexp['itemfin']) + strlen($syndic_regexp['itemfin']);
     639        $items[] = substr($rss, $debut_item, $fin_item - $debut_item);
    688640        $debut_texte = substr($rss, "0", $debut_item);
    689641        $fin_texte = substr($rss, $fin_item, strlen($rss));
    690         $rss = $debut_texte.$fin_texte;
     642        $rss = $debut_texte . $fin_texte;
    691643    }
    692644
     
    706658        $data['date'] = $la_date;
    707659        */
     660
    708661        // version du flux
    709662        $data['version_flux'] = $version_flux;
     
    711664        // Recuperer les autres tags du xml
    712665        foreach ($xml_tags as $xml_tag) {
    713           if (preg_match($syndic_regexp[$xml_tag],$item,$match)) $data[$xml_tag] = $match[1];
    714                                                               else $data[$xml_tag] = "";
    715     }
    716 
    717     // On parse le noeud documents
    718     if ($data['documents'] != "") {
    719           $documents = array();
    720           if (preg_match_all($document_regexp['document'],$data['documents'],$r2, PREG_SET_ORDER))
    721             foreach ($r2 as $regs) {
    722                 $debut_item = strpos($data['documents'],$regs[0]);
    723                 $fin_item = strpos($data['documents'],
    724                 $document_regexp['documentfin'])+strlen($document_regexp['documentfin']);
    725                 $documents[] = substr($data['documents'],$debut_item,$fin_item-$debut_item);
     666            if (preg_match($syndic_regexp[$xml_tag], $item, $match)) $data[$xml_tag] = $match[1];
     667            else $data[$xml_tag] = "";
     668        }
     669
     670        // On parse le noeud documents
     671        if ($data['documents'] != "") {
     672            $documents = array();
     673            if (preg_match_all($document_regexp['document'], $data['documents'], $r2, PREG_SET_ORDER)) foreach ($r2 as $regs) {
     674                $debut_item = strpos($data['documents'], $regs[0]);
     675                $fin_item = strpos($data['documents'], $document_regexp['documentfin']) + strlen($document_regexp['documentfin']);
     676                $documents[] = substr($data['documents'], $debut_item, $fin_item - $debut_item);
    726677                $debut_texte = substr($data['documents'], "0", $debut_item);
    727678                $fin_texte = substr($data['documents'], $fin_item, strlen($data['documents']));
    728                 $data['documents'] = $debut_texte.$fin_texte;
    729           }
    730 
    731           $portfolio = array();
    732           if (count($documents)) {
    733               foreach ($documents as $document) {
    734                  $data_node = array();
    735                  foreach ($xml_doc_tags as $xml_doc_tag) {
    736                     if (preg_match($document_regexp[$xml_doc_tag],$document,$match)) $data_node[$xml_doc_tag] = $match[1];
    737                                                                                       else $data_node[$xml_doc_tag] = "";
    738                        }
    739                 $portfolio[] = $data_node;
    740               }
    741               $data['documents'] =  serialize($portfolio);
    742           }
    743     } # noeud documents
    744 
    745 
    746       // On parse le noeud evenement
    747     if ($data['evenements'] != "") {
    748           $evenements = array();
    749           if (preg_match_all($evenement_regexp['evenement'],$data['evenements'],$r3, PREG_SET_ORDER))
    750             foreach ($r3 as $regs) {
    751                 $debut_item = strpos($data['evenements'],$regs[0]);
    752                 $fin_item = strpos($data['evenements'],$evenement_regexp['evenementfin'])+strlen($evenement_regexp['evenementfin']);
    753                 $evenements[] = substr($data['evenements'],$debut_item,$fin_item-$debut_item);
     679                $data['documents'] = $debut_texte . $fin_texte;
     680            }
     681
     682            $portfolio = array();
     683            if (count($documents)) {
     684                foreach ($documents as $document) {
     685                    $data_node = array();
     686                    foreach ($xml_doc_tags as $xml_doc_tag) {
     687                        if (preg_match($document_regexp[$xml_doc_tag], $document, $match)) $data_node[$xml_doc_tag] = $match[1];
     688                        else $data_node[$xml_doc_tag] = "";
     689                    }
     690                    $portfolio[] = $data_node;
     691                }
     692                $data['documents'] = serialize($portfolio);
     693            }
     694        } // noeud documents
     695
     696        // On parse le noeud evenement
     697        if ($data['evenements'] != "") {
     698            $evenements = array();
     699            if (preg_match_all($evenement_regexp['evenement'], $data['evenements'], $r3, PREG_SET_ORDER)) foreach ($r3 as $regs) {
     700                $debut_item = strpos($data['evenements'], $regs[0]);
     701                $fin_item = strpos($data['evenements'], $evenement_regexp['evenementfin']) + strlen($evenement_regexp['evenementfin']);
     702                $evenements[] = substr($data['evenements'], $debut_item, $fin_item - $debut_item);
    754703                $debut_texte = substr($data['evenements'], "0", $debut_item);
    755704                $fin_texte = substr($data['evenements'], $fin_item, strlen($data['evenements']));
    756                 $data['evenements'] = $debut_texte.$fin_texte;
    757           }
    758 
    759           $agenda = array();
    760           if (count($evenements)) {
    761               foreach ($evenements as $evenement) {
    762 
    763                  $data_node = array();
    764                  foreach ($xml_event_tags as $xml_event_tag) {
    765                     if (preg_match($evenement_regexp[$xml_event_tag],$evenement,$match)) $data_node[$xml_event_tag] = $match[1];
    766                                                                                       else $data_node[$xml_event_tag] = "";
    767                        }
    768 
    769                  // bug lieu et desc  (suite au p)
    770                  $data_node['lieu'] = strip_tags(html_entity_decode($data_node['lieu']));
    771                  $data_node['desc'] = strip_tags(html_entity_decode($data_node['desc']));
    772 
    773                        // On parse le noeud motevt (mot evenement) ?
    774                        if ($data_node['motevts'] != "") {
     705                $data['evenements'] = $debut_texte . $fin_texte;
     706            }
     707
     708            $agenda = array();
     709            if (count($evenements)) {
     710                foreach ($evenements as $evenement) {
     711
     712                    $data_node = array();
     713                    foreach ($xml_event_tags as $xml_event_tag) {
     714                        if (preg_match($evenement_regexp[$xml_event_tag], $evenement, $match)) $data_node[$xml_event_tag] = $match[1];
     715                        else $data_node[$xml_event_tag] = "";
     716                    }
     717
     718                    // bug lieu et desc  (suite au p)
     719                    $data_node['lieu'] = strip_tags(html_entity_decode($data_node['lieu']));
     720                    $data_node['desc'] = strip_tags(html_entity_decode($data_node['desc']));
     721
     722                    // On parse le noeud motevt (mot evenement) ?
     723                    if ($data_node['motevts'] != "") {
    775724                        $motevts = array();
    776                         if (preg_match_all($motevt_regexp['motevt'],$data_node['motevts'],$r2, PREG_SET_ORDER))
    777                         foreach ($r2 as $regs) {
    778                                 $debut_item = strpos($data_node['motevts'],$regs[0]);
    779                                 $fin_item = strpos($data_node['motevts'],
    780                                 $motevt_regexp['motevtfin'])+strlen($motevt_regexp['motevtfin']);
    781                                 $motevts[] = substr($data_node['motevts'],$debut_item,$fin_item-$debut_item);
    782                                 $debut_texte = substr($data_node['motevts'], "0", $debut_item);
    783                                 $fin_texte = substr($data_node['motevts'], $fin_item, strlen($data_node['motevts']));
    784                                 $data_node['motevts'] = $debut_texte.$fin_texte;
     725                        if (preg_match_all($motevt_regexp['motevt'], $data_node['motevts'], $r2, PREG_SET_ORDER)) foreach ($r2 as $regs) {
     726                            $debut_item = strpos($data_node['motevts'], $regs[0]);
     727                            $fin_item = strpos($data_node['motevts'], $motevt_regexp['motevtfin']) + strlen($motevt_regexp['motevtfin']);
     728                            $motevts[] = substr($data_node['motevts'], $debut_item, $fin_item - $debut_item);
     729                            $debut_texte = substr($data_node['motevts'], "0", $debut_item);
     730                            $fin_texte = substr($data_node['motevts'], $fin_item, strlen($data_node['motevts']));
     731                            $data_node['motevts'] = $debut_texte . $fin_texte;
    785732                        }
    786733
     
    788735                        if (count($motevts)) {
    789736                            foreach ($motevts as $motevt) {
    790                                $data_node_evt = array();
    791                                foreach ($xml_motevt_tags as $xml_motevt_tag) {
    792                                   if (preg_match($motevt_regexp[$xml_motevt_tag],$motevt,$match)) $data_node_evt[$xml_motevt_tag] = $match[1];
    793                                                                                               else $data_node_evt[$xml_motevt_tag] = "";
    794                                        }
    795                               $motcleevt[] = $data_node_evt;
     737                                $data_node_evt = array();
     738                                foreach ($xml_motevt_tags as $xml_motevt_tag) {
     739                                    if (preg_match($motevt_regexp[$xml_motevt_tag], $motevt, $match)) $data_node_evt[$xml_motevt_tag] = $match[1];
     740                                    else $data_node_evt[$xml_motevt_tag] = "";
     741                                }
     742                                $motcleevt[] = $data_node_evt;
    796743                            }
    797744                            $data_node['motevts'] = $motcleevt;
    798745                        }
    799                  }
    800                        // #noeud motevt
    801 
    802                 $agenda[] = $data_node;
    803               }
    804 
    805               $data['evenements'] =  base64_encode(serialize($agenda));  // astuce php.net
    806           }
    807     } #noeud evenements
    808 
    809     // On parse le noeud mots
    810     if ($data['mots'] != "") {
    811           $mots = array();
    812           if (preg_match_all($mot_regexp['mot'],$data['mots'],$r2, PREG_SET_ORDER))
    813             foreach ($r2 as $regs) {
    814                 $debut_item = strpos($data['mots'],$regs[0]);
    815                 $fin_item = strpos($data['mots'],
    816                 $mot_regexp['motfin'])+strlen($mot_regexp['motfin']);
    817                 $mots[] = substr($data['mots'],$debut_item,$fin_item-$debut_item);
     746                    }
     747
     748                    // #noeud motevt
     749
     750                    $agenda[] = $data_node;
     751                }
     752
     753                $data['evenements'] = base64_encode(serialize($agenda));
     754                 // astuce php.net
     755
     756            }
     757        } //noeud evenements
     758
     759        // On parse le noeud mots
     760        if ($data['mots'] != "") {
     761            $mots = array();
     762            if (preg_match_all($mot_regexp['mot'], $data['mots'], $r2, PREG_SET_ORDER)) foreach ($r2 as $regs) {
     763                $debut_item = strpos($data['mots'], $regs[0]);
     764                $fin_item = strpos($data['mots'], $mot_regexp['motfin']) + strlen($mot_regexp['motfin']);
     765                $mots[] = substr($data['mots'], $debut_item, $fin_item - $debut_item);
    818766                $debut_texte = substr($data['mots'], "0", $debut_item);
    819767                $fin_texte = substr($data['mots'], $fin_item, strlen($data['mots']));
    820                 $data['mots'] = $debut_texte.$fin_texte;
    821           }
    822 
    823           $motcle = array();
    824           if (count($mots)) {
    825               foreach ($mots as $mot) {
    826                  $data_node = array();
    827                  foreach ($xml_mot_tags as $xml_mot_tag) {
    828                     if (preg_match($mot_regexp[$xml_mot_tag],$mot,$match)) $data_node[$xml_mot_tag] = $match[1];
    829                                                                             else $data_node[$xml_mot_tag] = "";
    830                        }
    831                 $motcle[] = $data_node;
    832               }
    833               $data['mots'] =  serialize($motcle);
    834           }
    835     }   #noeud mots
    836 
     768                $data['mots'] = $debut_texte . $fin_texte;
     769            }
     770
     771            $motcle = array();
     772            if (count($mots)) {
     773                foreach ($mots as $mot) {
     774                    $data_node = array();
     775                    foreach ($xml_mot_tags as $xml_mot_tag) {
     776                        if (preg_match($mot_regexp[$xml_mot_tag], $mot, $match)) $data_node[$xml_mot_tag] = $match[1];
     777                        else $data_node[$xml_mot_tag] = "";
     778                    }
     779                    $motcle[] = $data_node;
     780                }
     781                $data['mots'] = serialize($motcle);
     782            }
     783        } //noeud mots
    837784
    838785        // Nettoyer les donnees et remettre les CDATA et multi en place
    839786        foreach ($data as $var => $val) {
    840787            $data[$var] = filtrer_entites($data[$var]);
    841             foreach ($echappe_cdata as $n => $e)
    842                 $data[$var] = str_replace("@@@SPIP_CDATA$n@@@",$e, $data[$var]);
    843         if (!defined("_SPIP2SPIP_IMPORT_HTML")) $data[$var] = trim(textebrut($data[$var]));  // protection import HTML
    844         $data[$var] = str_replace("@@@MULTI@@@", "<multi>", $data[$var]);
    845         $data[$var] = str_replace("@@@MULTJ@@@", "</multi>", $data[$var]);
    846         $data[$var] = str_replace("@@@LIEN_INV@@@", "<-", $data[$var]);
     788            foreach ($echappe_cdata as $n => $e) $data[$var] = str_replace("@@@SPIP_CDATA$n@@@", $e, $data[$var]);
     789            if (!defined("_SPIP2SPIP_IMPORT_HTML")) $data[$var] = trim(textebrut($data[$var]));
     790             // protection import HTML
     791            $data[$var] = str_replace("@@@MULTI@@@", "<multi>", $data[$var]);
     792            $data[$var] = str_replace("@@@MULTJ@@@", "</multi>", $data[$var]);
     793            $data[$var] = str_replace("@@@LIEN_INV@@@", "<-", $data[$var]);
    847794        }
    848795
     
    851798    }
    852799
    853   return $articles;
     800    return $articles;
    854801}
    855802
     
    862809function spip2spip_get_id_rubrique($mot) {
    863810    $id_group_spip2spip = spip2spip_get_id_groupemot("- spip2spip -");
    864     $result = sql_select("id_mot","spip_mots", array(
    865                                               "titre = ".sql_quote($mot),
    866                                               "id_groupe = '$id_group_spip2spip'"));
     811    $result = sql_select("id_mot", "spip_mots", array("titre = " . sql_quote($mot), "id_groupe = '$id_group_spip2spip'"));
    867812    while ($row = sql_fetch($result)) {
    868         $id_mot = (int) $row['id_mot'];
    869         if ($row2 = sql_fetsel("id_objet","spip_mots_liens","objet='rubrique' AND id_mot='$id_mot'"))
    870                return $row2['id_objet'];
    871 
     813        $id_mot = (int)$row['id_mot'];
     814        if ($row2 = sql_fetsel("id_objet", "spip_mots_liens", "objet='rubrique' AND id_mot='$id_mot'")) return $row2['id_objet'];
    872815    }
    873816    return false;
     
    877820// recupère id d'un groupe de mots-clés
    878821function spip2spip_get_id_groupemot($titre) {
    879    if ($row = sql_fetsel("id_groupe","spip_groupes_mots","titre=".sql_quote($titre)))
    880                return $row['id_groupe'];
    881    return false;
     822    if ($row = sql_fetsel("id_groupe", "spip_groupes_mots", "titre=" . sql_quote($titre))) return $row['id_groupe'];
     823    return false;
    882824}
    883825
     
    885827// recupère id d'un mot
    886828function spip2spip_get_id_mot($titre) {
    887    if ($row = sql_fetsel("id_mot","spip_mots","titre=".sql_quote($titre)))
    888                return $row['id_mot'];
    889    return false;
     829    if ($row = sql_fetsel("id_mot", "spip_mots", "titre=" . sql_quote($titre))) return $row['id_mot'];
     830    return false;
    890831}
    891832
     
    893834// recupère id du secteur
    894835function spip2spip_get_id_secteur($id_rubrique) {
    895    if ($row = sql_fetsel("id_secteur","spip_rubriques","id_rubrique=$id_rubrique"))
    896                return $row['id_secteur'];
    897    return 0;
     836    if ($row = sql_fetsel("id_secteur", "spip_rubriques", "id_rubrique=$id_rubrique")) return $row['id_secteur'];
     837    return 0;
    898838}
    899839
     
    901841// recupere id d'un auteur selon son nom sinon le creer
    902842function spip2spip_get_id_auteur($name) {
    903    if (trim($name)=="")
    904               return false;
    905    if ($row = sql_fetsel("id_auteur","spip_auteurs","nom=".sql_quote($name)))
    906               return $row['id_auteur'];
     843    if (trim($name) == "") return false;
     844    if ($row = sql_fetsel("id_auteur", "spip_auteurs", "nom=" . sql_quote($name))) return $row['id_auteur'];
    907845
    908846    // auteur inconnu, on le cree ...
    909     return sql_insertq('spip_auteurs',array('nom'=>$name,'statut'=>'1comite'));
     847    return sql_insertq('spip_auteurs', array('nom' => $name, 'statut' => '1comite'));
    910848}
    911849
    912850//
    913851// insert un mot-cle a un objet (article / evenement)
    914 function spip2spip_insert_mode_article($id_objet, $mot_titre, $groupe_titre, $mode_creer_groupe, $id_groupe=-1,$objet_lie="article") {
    915 
    916    if ($mode_creer_groupe) {
     852function spip2spip_insert_mode_article($id_objet, $mot_titre, $groupe_titre, $mode_creer_groupe, $id_groupe = - 1, $objet_lie = "article") {
     853
     854    if ($mode_creer_groupe) {
     855
    917856        // groupe existe ?
    918         if ($row = sql_fetsel("id_groupe","spip_groupes_mots","titre=".sql_quote($groupe_titre))) {
    919               $id_groupe = $row['id_groupe'];
    920         } else {
    921             $id_groupe = sql_insertq('spip_groupes_mots',array(
    922                                       'titre'=> $groupe_titre,
    923                                       'tables_liees'=> $objet_lie."s",
    924                                       'minirezo' => 'oui',
    925                                       'comite' => 'oui',
    926                                       'forum' => 'non'));
     857        if ($row = sql_fetsel("id_groupe", "spip_groupes_mots", "titre=" . sql_quote($groupe_titre))) {
     858            $id_groupe = $row['id_groupe'];
    927859        }
    928 
    929    }
    930 
    931    if ($id_groupe>0){
     860        else {
     861            $id_groupe = sql_insertq('spip_groupes_mots', array('titre' => $groupe_titre, 'tables_liees' => $objet_lie . "s", 'minirezo' => 'oui', 'comite' => 'oui', 'forum' => 'non'));
     862        }
     863    }
     864
     865    if ($id_groupe > 0) {
     866
    932867        // mot existe ?
    933         if ($row = sql_fetsel("id_mot","spip_mots","titre=".sql_quote($mot_titre)." AND id_groupe=".intval($id_groupe))) {
    934               $id_mot = $row['id_mot'];
    935         } else {
    936               if ($row = sql_fetsel("titre","spip_groupes_mots","id_groupe=".intval($id_groupe)))
    937                           $type = $row['titre'];
    938               $id_mot = sql_insertq('spip_mots',array(
    939                                       'titre'=> $mot_titre,
    940                                       'id_groupe'=> intval($id_groupe),
    941                                       'type' => $type));
     868        if ($row = sql_fetsel("id_mot", "spip_mots", "titre=" . sql_quote($mot_titre) . " AND id_groupe=" . intval($id_groupe))) {
     869            $id_mot = $row['id_mot'];
    942870        }
    943 
    944         sql_insertq("spip_mots_liens", array(
    945                                       'id_mot'   => intval($id_mot),
    946                                       'id_objet' => intval($id_objet),
    947                                       'objet' => $objet_lie
    948                                       ));
    949 
    950    } else {
    951       spip_log("spip2spip pas de groupe-clé import specifie");
    952    }
    953 
    954 }
     871        else {
     872            if ($row = sql_fetsel("titre", "spip_groupes_mots", "id_groupe=" . intval($id_groupe))) $type = $row['titre'];
     873            $id_mot = sql_insertq('spip_mots', array('titre' => $mot_titre, 'id_groupe' => intval($id_groupe), 'type' => $type));
     874        }
     875
     876        sql_insertq("spip_mots_liens", array('id_mot' => intval($id_mot), 'id_objet' => intval($id_objet), 'objet' => $objet_lie));
     877    }
     878    else {
     879        spip_log("spip2spip pas de groupe-clé import specifie");
     880    }
     881}
     882
    955883// insérer nouvelle thématique du flux
    956 function spip2spip_set_thematique($titre)
    957 {
     884function spip2spip_set_thematique($titre) {
    958885    $id_group_spip2spip = spip2spip_get_id_groupemot("- spip2spip -");
    959     $mot = sql_fetsel(
    960         'id_mot',
    961         'spip_mots',
    962         'id_groupe='
    963         . intval($id_group_spip2spip)
    964         . " AND titre="
    965         . sql_quote($titre));
     886    $mot = sql_fetsel('id_mot', 'spip_mots', 'id_groupe=' . intval($id_group_spip2spip) . " AND titre=" . sql_quote($titre));
    966887    if (!$mot) {
    967         $thematique_cree = sql_insertq(
    968             'spip_mots',
    969             array(
    970                 'titre' => $titre,
    971                 'id_groupe' => $id_group_spip2spip
    972             )
    973             );
     888        $thematique_cree = sql_insertq('spip_mots', array('titre' => $titre, 'id_groupe' => $id_group_spip2spip));
    974889        return $thematique_cree;
    975     } else {
     890    }
     891    else {
    976892        return $mot['id_mot'];
    977893    }
     
    982898// -----------------------
    983899
    984 
    985900//
    986901// restaure le formatage des extra
    987 function spip2spip_convert_extra($texte,$documents,$version_flux=1.6) {
    988     $texte = spip2spip_convert_ln($texte,$version_flux);
    989     $texte = spip2spip_convert_img($texte,$documents);
     902function spip2spip_convert_extra($texte, $documents, $version_flux = 1.6) {
     903    $texte = spip2spip_convert_ln($texte, $version_flux);
     904    $texte = spip2spip_convert_img($texte, $documents);
    990905    return $texte;
    991906}
     
    993908//
    994909// restaure le formatage des img et doc avec le tableau fourni
    995 function spip2spip_convert_img($texte,$documents) {
    996   $texte_avt_regex = $texte;
    997   krsort($documents);
    998     foreach($documents as $k=>$val) {
    999        $texte = preg_replace("/__IMG$k(.*?)__/i", "<img$val$1>",$texte);
    1000        // si le doc est employe en tant image, changer son mode pour qu'il sorte du portfolio (mode=document) et passe en image (mode=image)
    1001        if ($texte_avt_regex != $texte) spip2spip_update_mode_document($val,'image');
    1002 
    1003        // autre mise a jour non image
    1004        $texte = preg_replace("/__DOC$k(.*?)__/i", "<doc$val$1>",$texte);
    1005 
    1006      $texte_avt_regex = $texte;
    1007   }
    1008 
    1009   //$texte = preg_replace("/__(IMG|DOC)(.*?)__/i", "",$texte); // nettoyage des codes qui resteraient eventuellement
    1010   $texte = preg_replace("/__(.*?)__/i", "",$texte); // expression plus large (pour prevoir la compatabilite future si ajout d'autres extras)
     910function spip2spip_convert_img($texte, $documents) {
     911    $texte_avt_regex = $texte;
     912    krsort($documents);
     913    foreach ($documents as $k => $val) {
     914        $texte = preg_replace("/__IMG$k(.*?)__/i", "<img$val$1>", $texte);
     915
     916        // si le doc est employe en tant image, changer son mode pour qu'il sorte du portfolio (mode=document) et passe en image (mode=image)
     917        if ($texte_avt_regex != $texte) spip2spip_update_mode_document($val, 'image');
     918
     919        // autre mise a jour non image
     920        $texte = preg_replace("/__DOC$k(.*?)__/i", "<doc$val$1>", $texte);
     921
     922        $texte_avt_regex = $texte;
     923    }
     924
     925    //$texte = preg_replace("/__(IMG|DOC)(.*?)__/i", "",$texte); // nettoyage des codes qui resteraient eventuellement
     926    $texte = preg_replace("/__(.*?)__/i", "", $texte);
     927     // expression plus large (pour prevoir la compatabilite future si ajout d'autres extras)
    1011928    return $texte;
    1012929}
     
    1014931//
    1015932// restaure le formatage des ln
    1016 function spip2spip_convert_ln($texte,$version_flux=1.6) {
    1017   if ($version_flux<1.7)    $texte = str_replace("__LN__","\n\n",$texte);
    1018                   else    $texte = str_replace("__LN__","\n",$texte);
     933function spip2spip_convert_ln($texte, $version_flux = 1.6) {
     934    if ($version_flux < 1.7) $texte = str_replace("__LN__", "\n\n", $texte);
     935    else $texte = str_replace("__LN__", "\n", $texte);
    1019936    return $texte;
    1020937}
     
    1022939//
    1023940// change le mode (vignette/document/) du document
    1024 function spip2spip_update_mode_document($id_document,$mode="vignette") {
    1025    sql_updateq('spip_documents', array("mode"=>$mode), "id_document=$id_document");
    1026 }
    1027 
    1028 
    1029 
    1030 
     941function spip2spip_update_mode_document($id_document, $mode = "vignette") {
     942    sql_updateq('spip_documents', array("mode" => $mode), "id_document=$id_document");
     943}
    1031944?>
  • _plugins_/spip2spip/trunk/lang/spip2spip_fr.php

    r87021 r91407  
    4949  'erreur_obligatoire' => 'Champ obligatoire',
    5050  'erreur_flux_inconnu' => 'Impossible de charger ce flux',
     51  'event_ok' => 'Ajout d\'un &eacute;v&eacute;nement ',
    5152
    5253  // F
     
    6364  'icone_creer_spip2spip' => 'Ajouter un site spip2spip',
    6465  'icone_modifier_spip2spip' => 'Modifier ce site spip2spip',
     66  'info_statut_site' => 'Identique',
    6567  'intro_spip2spip' => 'Permet de recopier automatiquement des articles d\'un SPIP &agrave; l\'autre.',
    6668  'install_spip2spip' => 'Installation des tables de spip2spip',
     
    7678  'imported_new' => 'Nouvel article',
    7779  'imported_update' => 'Article mis &agrave; jour  ',
    78   'event_ok' => 'Ajout d\'un &eacute;v&eacute;nement ',
    7980  'imported_view' => 'Consulter l\'article import&eacute;',
    8081  'installed' => 'spip2spip est install&eacute;. cette page ne sert plus &agrave; rien</p>',
    8182  'info_aucun_spip2spip' => 'Aucun site actuellement enregistré',
    8283  'icone_creer_spip2spipicone_creer_spip2spip' => 'Ajouter un nouveau site Spip2spip',
     84  'info_une_rubrique' => 'Une rubrique associée',
     85  'info_nb_rubriques' => '@nb@ rubriques associées',
     86  'info_aucune_rubrique' => 'Aucune rubrique associée',
    8387
    8488  // L
  • _plugins_/spip2spip/trunk/paquet.xml

    r87801 r91407  
    22        prefix="spip2spip"
    33        categorie="edition"
    4         version="3.0.5"
     4        version="3.1.0"
    55        etat="stable"
    66        compatibilite="[3.0.5;3.1.*]"
  • _plugins_/spip2spip/trunk/prive/objets/contenu/spip2spip_fonctions.php

    r86068 r91407  
    11<?php
     2/**
     3* Function list:
     4* - spip2spip_syndiquer_manuel()
     5*/
     6
    27//  spip2spip
    38//
     
    611if (!defined("_ECRIRE_INC_VERSION")) return;
    712
    8 function spip2spip_syndiquer_manuel($id_spip2spip){
    9   include_spip("inc/spip2spip");
    10   $log = -1;
     13function spip2spip_syndiquer_manuel($id_spip2spip) {
     14    include_spip("inc/spip2spip");
     15    $log = - 1;
    1116
    12   // on syndique le site dont la date de syndication est la plus ancienne 
    13   if ($row = sql_fetsel("id_spip2spip","spip_spip2spips","id_spip2spip=".intval($id_spip2spip))) {
    14           spip_log("spip2spip - syndication site id=".$row["id_spip2spip"]);
    15           $log = spip2spip_syndiquer($row["id_spip2spip"],"html");
    16   }
    17   return $log;
     17    // on syndique le site dont la date de syndication est la plus ancienne
     18    if ($row = sql_fetsel("id_spip2spip", "spip_spip2spips", "id_spip2spip=" . intval($id_spip2spip))) {
     19        spip_log("spip2spip - syndication site id=" . $row["id_spip2spip"]);
     20        $log = spip2spip_syndiquer($row["id_spip2spip"], "html");
     21    }
     22    return $log;
    1823}
    19 
    2024?>
  • _plugins_/spip2spip/trunk/prive/themes/spip/style_prive_spip2spip.css

    r82824 r91407  
    3030    display:block;
    3131}
    32 
     32.spip2spip #page #conteneur #extra .box .menu-items .item {
     33}
     34.spip2spip #page #conteneur #extra .box .menu-items .item > p,
     35.spip2spip #page #conteneur #extra .box .menu-items .item > a,
     36.spip2spip #page #conteneur #extra .box .menu-items .item > em {
     37    padding: 0.6925em 0;
     38    margin: 0;
     39    display: block;
     40}
     41.spip2spip #page #conteneur #extra .box .menu-items .item > em {
     42    padding-top: 0;
     43    /* margin-top: -0.85em;*/
     44    font-size: 0.85em;
     45}
    3346.bloc_info, .bloc_notice, .bloc_error, .bloc_success {
    3447    padding: 0.25em 0.5em;
  • _plugins_/spip2spip/trunk/spip2spip_administrations.php

    r86067 r91407  
    22/**
    33 * Plugin Spip2spip
    4  * 
     4 *
    55 * Licence GNU/GPL
    66 */
     
    1414function spip2spip_upgrade($nom_meta_base_version, $version_cible) {
    1515        $maj = array();
    16  
    17   $maj['create'] = array(
    18            array('maj_tables', array('spip_spip2spips')),
    19      array('sql_alter','TABLE spip_articles ADD s2s_url VARCHAR(255) DEFAULT \'\' NOT NULL'),
    20            array('sql_alter','TABLE spip_articles ADD s2s_url_trad VARCHAR(255) DEFAULT \'\' NOT NULL'),
    21      array('spip2spip_create'),     
     16
     17        $maj['create'] = array(
     18                array('maj_tables', array('spip_spip2spips')),
     19                array('sql_alter','TABLE spip_articles ADD s2s_url VARCHAR(255) DEFAULT \'\' NOT NULL'),
     20                array('sql_alter','TABLE spip_articles ADD s2s_url_trad VARCHAR(255) DEFAULT \'\' NOT NULL'),
     21                array('spip2spip_create'),
    2222        );
    23  
    24   // pour la migration venant de SPIP 2 : renommer champs id et le nom de la table
    25   $maj['1.1'] = array(         
    26     array('sql_alter',"TABLE spip_spip2spip CHANGE `id` `id_spip2spip` BIGINT( 21 ) NOT NULL AUTO_INCREMENT"),
    27     array('sql_alter',"TABLE spip_spip2spip CHANGE `last_syndic` `maj` TIMESTAMP"),
    28     array('sql_alter',"TABLE spip_spip2spip RENAME spip_spip2spips"),       
    29         ); 
    30  
     23
     24        // pour la migration venant de SPIP 2 : renommer champs id et le nom de la table
     25        $maj['1.1'] = array(
     26                array('sql_alter',"TABLE spip_spip2spip CHANGE `id` `id_spip2spip` BIGINT( 21 ) NOT NULL AUTO_INCREMENT"),
     27                array('sql_alter',"TABLE spip_spip2spip CHANGE `last_syndic` `maj` TIMESTAMP"),
     28                array('sql_alter',"TABLE spip_spip2spip RENAME spip_spip2spips"),
     29        );
     30
    3131        include_spip('base/upgrade');
    3232        maj_plugin($nom_meta_base_version, $version_cible, $maj);
     
    3535
    3636// creation des mots-clés de travail "- spip2spip - "
    37 function  spip2spip_create() {
    38         sql_insertq("spip_groupes_mots", array(
    39                                          'titre' => '- spip2spip -' ,
    40                                          'descriptif' => _T('spip2spip:install_spip2spip_4'),
    41                                          'texte' =>  _T('spip2spip:install_spip2spip_5'),
    42                                          'unseul' => 'non',
    43                                          'obligatoire' => 'non',
    44                                          'tables_liees' => 'articles,rubriques',
    45                                          'minirezo' => 'oui',
    46                                          'comite' => 'oui' ,
    47                                          'forum' => 'non' ,
    48                                          'maj' => 'NOW()'));
     37function  spip2spip_create() {
     38        sql_insertq("spip_groupes_mots", array(
     39                'titre' => '- spip2spip -',
     40                'descriptif' => _T('spip2spip:install_spip2spip_4'),
     41                'texte' =>  _T('spip2spip:install_spip2spip_5'),
     42                'unseul' => 'non',
     43                'obligatoire' => 'non',
     44                'tables_liees' => 'articles,rubriques',
     45                'minirezo' => 'oui',
     46                'comite' => 'oui',
     47                'forum' => 'non',
     48                'maj' => 'NOW()'
     49        ));
    4950}
    5051
     
    5556
    5657        sql_drop_table("spip_spip2spips");
    57  
    58   # Nettoyer les colonnes en extra
    59   sql_alter("TABLE spip_articles DROP COLUMN s2s_url");
    60         sql_alter("TABLE spip_articles DROP COLUMN s2s_url_trad");     
     58
     59        # Nettoyer les colonnes en extra
     60        sql_alter("TABLE spip_articles DROP COLUMN s2s_url");
     61        sql_alter("TABLE spip_articles DROP COLUMN s2s_url_trad");
    6162
    6263
  • _plugins_/spip2spip/trunk/spip2spip_pipelines.php

    r86067 r91407  
    1212function spip2spip_taches_generales_cron($taches_generales)
    1313{
    14     //Recuperation de la configuration
    15     $conf = @unserialize($GLOBALS['meta']['spip2spip']);
    16     if (is_array($conf) and intval($conf['intervalle_cron']) > 1) {
    17         $taches_generales['spip2spip_syndic'] = 60 * intval($conf['intervalle_cron']);
    18     } else {
    19         $taches_generales['spip2spip_syndic'] = 60*5;  // tous les 5 min par defaut
    20     }
    21     return $taches_generales;
     14        //Recuperation de la configuration
     15        $conf = @unserialize($GLOBALS['meta']['spip2spip']);
     16        if (is_array($conf) and intval($conf['intervalle_cron']) > 1) {
     17                $taches_generales['spip2spip_syndic'] = 60 * intval($conf['intervalle_cron']);
     18        } else {
     19                $taches_generales['spip2spip_syndic'] = 60*5;  // tous les 5 min par defaut
     20        }
     21        return $taches_generales;
    2222}
    2323
     
    3030function spip2spip_header_prive($flux)
    3131{
     32        $page_exec = array('spip2spip', 'spip2spips');
    3233
    33     $page_exec = array('spip2spip', 'spip2spips');
     34        if (in_array(_request('exec'), $page_exec)) {
     35                $flux .= '<link rel="stylesheet" href="'
     36                . find_in_path('prive/themes/spip/style_prive_spip2spip.css')
     37                . '" type="text/css" media="all" />';
     38        }
    3439
    35     if (in_array(_request('exec'), $page_exec)) {
    36         $flux .= '<link rel="stylesheet" href="'
    37         . find_in_path('prive/themes/spip/style_prive_spip2spip.css')
    38         . '" type="text/css" media="all" />';
    39     }
    40 
    41     return $flux;
     40        return $flux;
    4241}
    4342
Note: See TracChangeset for help on using the changeset viewer.