source: spip-zone/_plugins_/spip2spip/spiptospip_fonctions.php @ 39444

Last change on this file since 39444 was 39444, checked in by erational@…, 9 years ago

import des logos d'articles

File size: 27.2 KB
Line 
1<?php
2
3//---------------------------------------
4// Fonctions
5//---------------------------------------
6
7// ajout bouton
8function spip2spip_ajouterBoutons($boutons_admin) {
9                // si on est admin
10                if ($GLOBALS['connect_statut'] == "0minirezo" && $GLOBALS["connect_toutes_rubriques"]) {
11                  // on voit le bouton dans la barre "naviguer"
12                  $boutons_admin['naviguer']->sousmenu['spip2spip']= 
13      new Bouton(_DIR_PLUGIN_SPIP2SPIP."/img_pack/icon.png", _T("spiptospip:titre"));
14                }
15                return $boutons_admin;
16}
17// FIXME migrer ds la nlle ecriture:
18//http://programmer.spip.org/ajouter_boutons
19
20
21//
22// verifie s'il s'agit du bon format de backend
23// a terme peut etre utile pour recuperer le numero de version
24function is_spip2spip_backend($str) { 
25        // Chercher un numero de version
26        if (preg_match('/(spip2spip)[[:space:]](([^>]*[[:space:]])*)version[[:space:]]*=[[:space:]]*[\'"]([-_a-zA-Z0-9\.]+)[\'"]/', $str, $regs)) 
27             return true;
28         return false;
29}
30
31//
32// parse le backend xml spip2spip
33// basée sur la fonction originale: ecrire/inc/syndic.php -> analyser_backend()
34function analyser_backend_spip2spip($rss){ 
35  include_spip("inc_texte.php"); # pour couper()
36        include_spip("inc_filtres.php"); # pour filtrer_entites()
37               
38        $xml_tags = array('surtitre','titre','soustitre','descriptif','chapo','texte','ps','auteur','link','evenements', 'lang','logo','keyword','licence','documents'); 
39       
40        $syndic_regexp = array(
41                                'item'           => ',<item[>[:space:]],i',
42                                'itemfin'        => '</item>',
43                               
44                                'surtitre'       => ',<surtitre[^>]*>(.*?)</surtitre[^>]*>,ims',
45                                'titre'          => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
46                                'soustitre'      => ',<soustitre[^>]*>(.*?)</soustitre[^>]*>,ims',
47                                'descriptif'     => ',<descriptif[^>]*>(.*?)</descriptif[^>]*>,ims',                           
48                                'chapo'          => ',<chapo[^>]*>(.*?)</chapo[^>]*>,ims',                             
49                                'texte'          => ',<texte[^>]*>(.*?)</texte[^>]*>,ims',                             
50                                'ps'             => ',<ps[^>]*>(.*?)</ps[^>]*>,ims',
51                                'auteur'         => ',<auteur[^>]*>(.*?)</auteur[^>]*>,ims',
52                                'link'           => ',<link[^>]*>(.*?)</link[^>]*>,ims',
53                                'evenements'     => ',<evenements[^>]*>(.*?)</evenements[^>]*>,ims',
54        'lang'           => ',<lang[^>]*>(.*?)</lang[^>]*>,ims',
55        'logo'           => ',<logo[^>]*>(.*?)</logo[^>]*>,ims',
56        'keyword'        => ',<keyword[^>]*>(.*?)</keyword[^>]*>,ims',
57        'licence'        => ',<licence[^>]*>(.*?)</licence[^>]*>,ims',
58        'documents'      => ',<documents[^>]*>(.*?)</documents[^>]*>,ims',
59               
60        );
61       
62        $xml_doc_tags = array('id','url','titre','desc');
63       
64        $document_regexp = array(               
65                        'document'       => ',<document[>[:space:]],i',
66                                'documentfin'    => '</document>',
67               
68                                'id'             => ',<id[^>]*>(.*?)</id[^>]*>,ims',
69        'url'            => ',<url[^>]*>(.*?)</url[^>]*>,ims',
70                                'titre'          => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
71                                'desc'           => ',<desc[^>]*>(.*?)</desc[^>]*>,ims',
72        );
73       
74        $xml_event_tags = array('idevent','datedeb','datefin','titre','desc','lieu','adresse','horaire','idsource');
75
76        $evenement_regexp = array(             
77                        'evenement'        => ',<evenement[>[:space:]],i',
78                                'evenementfin'     => '</evenement>',
79                                'idevent'          => ',<idevent[^>]*>(.*?)</idevent[^>]*>,ims',
80        'datedeb'          => ',<datedeb[^>]*>(.*?)</datedeb[^>]*>,ims',
81                                'datefin'          => ',<datefin[^>]*>(.*?)</datefin[^>]*>,ims',
82                                'titre'            => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
83                                'desc'             => ',<desc[^>]*>(.*?)</desc[^>]*>,ims',
84                                'lieu'             => ',<lieu[^>]*>(.*?)</lieu[^>]*>,ims',
85                                'adresse'          => ',<adresse[^>]*>(.*?)</adresse[^>]*>,ims',
86                                'horaire'          => ',<horaire[^>]*>(.*?)</horaire[^>]*>,ims',
87                                'idsource'         => ',<idsource[^>]*>(.*?)</idsource[^>]*>,ims',
88        );
89        // fichier backend correct ?
90        if (!is_spip2spip_backend($rss)) return _T('spiptospip:avis_echec_syndication_01');
91       
92        // Echapper les CDATA
93        $echappe_cdata = array();
94        if (preg_match_all(',<!\[CDATA\[(.*)]]>,Uims', $rss,
95        $regs, PREG_SET_ORDER)) {
96                foreach ($regs as $n => $reg) {
97                        $echappe_cdata[$n] = $reg[1];
98                        $rss = str_replace($reg[0], "@@@SPIP_CDATA$n@@@", $rss);
99                }
100        }
101       
102  // supprimer les commentaires
103        $rss = preg_replace(',<!--\s+.*\s-->,Ums', '', $rss);
104       
105        // version du flux
106        $version_flux = 0;
107        if (preg_match_all(',<spip2spip version="(.*?)">,Uims',$rss,$r, PREG_SET_ORDER)) 
108        foreach ($r as $regs) {
109           $version_flux  = (float) $regs[1];
110  }
111  spip_log("spip2spip - version flux: $version_flux");
112       
113        // analyse de chaque item
114        $items = array();
115        if (preg_match_all($syndic_regexp['item'],$rss,$r, PREG_SET_ORDER))
116        foreach ($r as $regs) {
117                $debut_item = strpos($rss,$regs[0]);
118                $fin_item = strpos($rss,
119                $syndic_regexp['itemfin'])+strlen($syndic_regexp['itemfin']);
120                $items[] = substr($rss,$debut_item,$fin_item-$debut_item);
121                $debut_texte = substr($rss, "0", $debut_item);
122                $fin_texte = substr($rss, $fin_item, strlen($rss));
123                $rss = $debut_texte.$fin_texte;
124        }
125
126        // Analyser chaque <item>...</item> du backend et le transformer en tableau
127        if (!count($items)) return _T('spiptospip:avis_echec_syndication_01');
128       
129        foreach ($items as $item) {
130         
131                $data = array();
132   
133                // Date
134                $la_date = "";
135                if (preg_match(",<date>([^<]*)</date>,Uims",$item,$match))              $la_date = $match[1];
136                if ($la_date)           $la_date = my_strtotime($la_date);
137                if ($la_date < time() - 365 * 24 * 3600 OR $la_date > time() + 48 * 3600)               $la_date = time();
138                $data['date'] = $la_date;
139               
140                // version du flux
141                $data['version_flux'] = $version_flux;
142                       
143                // Recuperer les autres tags du xml
144                foreach ($xml_tags as $xml_tag) {                 
145                  if (preg_match($syndic_regexp[$xml_tag],$item,$match)) $data[$xml_tag] = $match[1];
146                                                                              else $data[$xml_tag] = "";
147    }   
148   
149    // On parse le noeud documents
150    if ($data['documents'] != "") {       
151          $documents = array();
152          if (preg_match_all($document_regexp['document'],$data['documents'],$r2, PREG_SET_ORDER))
153                foreach ($r2 as $regs) {
154                        $debut_item = strpos($data['documents'],$regs[0]);
155                        $fin_item = strpos($data['documents'],
156                        $document_regexp['documentfin'])+strlen($document_regexp['documentfin']);
157                        $documents[] = substr($data['documents'],$debut_item,$fin_item-$debut_item);
158                        $debut_texte = substr($data['documents'], "0", $debut_item);
159                        $fin_texte = substr($data['documents'], $fin_item, strlen($data['documents']));
160                        $data['documents'] = $debut_texte.$fin_texte;
161          }
162         
163          $portfolio = array();
164          if (count($documents)) {         
165              foreach ($documents as $document) {                 
166                 $data_node = array();
167                 foreach ($xml_doc_tags as $xml_doc_tag) {
168                    if (preg_match($document_regexp[$xml_doc_tag],$document,$match)) $data_node[$xml_doc_tag] = $match[1]; 
169                                                                                                      else $data_node[$xml_doc_tag] = "";
170                                       } 
171                $portfolio[] = $data_node;                                                     
172              }             
173              $data['documents'] =  serialize($portfolio);
174          }       
175    }
176       
177                                                                 
178
179        // On parse le noeud evenement
180    if ($data['evenements'] != "") {         
181         
182          $evenements = array();
183          if (preg_match_all($evenement_regexp['evenement'],$data['evenements'],$r3, PREG_SET_ORDER))
184                foreach ($r3 as $regs) {
185                        $debut_item = strpos($data['evenements'],$regs[0]);
186                        $fin_item = strpos($data['evenements'],$evenement_regexp['evenementfin'])+strlen($evenement_regexp['evenementfin']);
187                        $evenements[] = substr($data['evenements'],$debut_item,$fin_item-$debut_item);
188                        $debut_texte = substr($data['evenements'], "0", $debut_item);
189                        $fin_texte = substr($data['evenements'], $fin_item, strlen($data['evenements']));
190                        $data['evenements'] = $debut_texte.$fin_texte;
191                               
192          }
193         
194          $agenda = array();
195          if (count($evenements)) {         
196              foreach ($evenements as $evenement) {                 
197                 $data_node = array();
198                 foreach ($xml_event_tags as $xml_event_tag) {
199                    if (preg_match($evenement_regexp[$xml_event_tag],$evenement,$match)) $data_node[$xml_event_tag] = $match[1]; 
200                                                                                                      else $data_node[$xml_event_tag] = "";
201                                       } 
202                $agenda[] = $data_node;                                                     
203              } 
204     
205              $data['evenements'] =  serialize($agenda); 
206          }       
207    }   
208       
209                // Nettoyer les donnees et remettre les CDATA en place
210                foreach ($data as $var => $val) {
211                        $data[$var] = filtrer_entites($data[$var]);
212                        foreach ($echappe_cdata as $n => $e)
213                                $data[$var] = str_replace("@@@SPIP_CDATA$n@@@",$e, $data[$var]);
214                        $data[$var] = trim(textebrut($data[$var]));
215                }
216
217                //$data['item'] = $item;  //utile pour spip2spip ?             
218                $articles[] = $data;   
219        }
220 
221  return $articles;
222}
223
224//
225// recuperer rubrique (normalement uniquement) lié à un mot
226function spip2spip_get_id_rubrique($mot) {   
227    $id_group_spip2spip = spip2spip_get_id_groupemot("- spip2spip -");
228    $result = sql_select("id_mot","spip_mots", array( 
229                                              "titre = ".sql_quote($mot),
230                                              "id_groupe = '$id_group_spip2spip'"));
231    while ($row = sql_fetch($result)) { 
232        $id_mot = (int) $row['id_mot'];
233        if ($row2 = sql_fetsel("id_rubrique","spip_mots_rubriques","id_mot='$id_mot'")) 
234               return $row2['id_rubrique'];
235               
236    }
237    return false;
238}
239
240//
241// recupère id d'un groupe de mots-clés
242function spip2spip_get_id_groupemot($titre) { 
243   if ($row = sql_fetsel("id_groupe","spip_groupes_mots","titre=".sql_quote($titre))) 
244               return $row['id_groupe'];
245   return false; 
246}
247
248//
249// recupère id d'un mot
250function spip2spip_get_id_mot($titre) { 
251   if ($row = sql_fetsel("id_mot","spip_mots","titre=".sql_quote($titre))) 
252               return $row['id_mot']; 
253   return false; 
254}
255
256//
257// recupère id du secteur
258function spip2spip_get_id_secteur($id_rubrique) { 
259   if ($row = sql_fetsel("id_parent","spip_rubriques","id_rubrique=$id_rubrique")) 
260               return $row['id_parent']; 
261   return 0; 
262}
263
264//
265// recupere id d'un auteur selon son nom sinon le creer
266function spip2spip_get_id_auteur($name) { 
267   if (trim($name)=="") 
268              return false;
269   if ($row = sql_fetsel("id_auteur","spip_auteurs","nom=".sql_quote($name))) 
270              return $row['id_auteur']; 
271
272    // auteur inconnu, on le cree ...
273    return sql_insertq('spip_auteurs',array('nom'=>$name,'statut'=>'1comite'));
274}
275
276//
277// restaure le formatage des extra
278function spip2spip_convert_extra($texte,$documents,$version_flux=1.6) {
279        $texte = spip2spip_convert_ln($texte,$version_flux); 
280        $texte = spip2spip_convert_img($texte,$documents);
281        return $texte;
282}
283
284//
285// restaure le formatage des img et doc avec le tableau fourni
286function spip2spip_convert_img($texte,$documents) {
287  $texte_avt_regex = $texte;
288  krsort($documents);
289        foreach($documents as $k=>$val) {       
290           $texte = preg_replace("/__IMG$k(.*?)__/i", "<img$val$1>",$texte);
291           // 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)
292           if ($texte_avt_regex != $texte) spip2spip_update_mode_document($val,'image'); 
293           
294           // autre mise a jour non image
295           $texte = preg_replace("/__DOC$k(.*?)__/i", "<doc$val$1>",$texte);
296           
297     $texte_avt_regex = $texte;   
298  }     
299 
300  //$texte = preg_replace("/__(IMG|DOC)(.*?)__/i", "",$texte); // nettoyage des codes qui resteraient eventuellement
301  $texte = preg_replace("/__(.*?)__/i", "",$texte); // expression plus large (pour prevoir la compatabilite future si ajout d'autres extras)
302        return $texte;
303}
304
305//
306// restaure le formatage des ln
307function spip2spip_convert_ln($texte,$version_flux=1.6) {
308  if ($version_flux<1.7)        $texte = str_replace("__LN__","\n\n",$texte);
309                  else    $texte = str_replace("__LN__","\n",$texte); 
310        return $texte;
311}
312
313//
314// change le mode (vignette/document/) du document
315function spip2spip_update_mode_document($id_document,$mode="vignette") { 
316   sql_updateq('spip_documents', array("mode"=>$mode), "id_document=$id_document");
317}
318
319//
320// function principale: spip2spip_syndique
321//
322// effectue la syndication d'un site donnee
323// - id_site
324// - mode: cron (silencieux avec spip_log)
325//         html (log bavard)
326function spip2spip_syndiquer($id_site, $mode='cron') {
327    include_spip("inc/distant"); 
328    include_spip("inc/syndic"); 
329    include_spip("inc/mail"); 
330    include_spip("inc/getdocument"); 
331    include_spip("inc/ajouter_documents");
332
333
334    $log_html = "";
335    $log_email = "";
336   
337    //------------------------------- 
338    // Recupere la config
339    //-------------------------------
340    // groupe mot cle "licence" installe ? (contrib: http://www.spip-contrib.net/Filtre-Licence )
341    if (spip2spip_get_id_groupemot("licence"))  $isLicenceInstalled = true; 
342                                          else  $isLicenceInstalled = false;
343                               
344    // si cfg dispo, on charge les valeurs
345    if (function_exists(lire_config))  {
346        if (lire_config('spip2spip/import_statut')=="publie") $import_statut = "publie";  else $import_statut = "prop";
347        if (lire_config('spip2spip/citer_source')=="on") $citer_source=true; else  $citer_source=false;
348        if (lire_config('spip2spip/email_alerte')=="on") $email_alerte=true; else  $email_alerte=false;
349        $email_suivi = lire_config('spip2spip/email_suivi'); 
350    } else { // sinon valeur par defaut
351        $import_statut = "prop";         // statut des articles importés: prop(proposé),publie(publié)     
352        $citer_source = true; 
353        $email_alerte = true;
354        $email_suivi = $GLOBALS['meta']['adresse_suivi']; // adresse de suivi editorial
355    }
356   
357    //-------------------------------
358    // selection du site
359    //-------------------------------   
360    if ($row_site = sql_fetsel("*","spip_spip2spip","id=$id_site")) {   
361      $id_site   = $row_site["id"];
362      $site_titre = $row_site["site_titre"];
363      $url_syndic   = $row_site["site_rss"];
364      $date_syndic  = $row_site["last_syndic"];
365     
366      $log_html .= "<h4>$site_titre (<a href='$url_syndic'>flux</a>)</h4>";
367      spip_log("spip2spip: syndication: ".$url_syndic);
368      //$date =  date('Y-m-d H:i:s',time()); // utileser date OU NOW() ???
369      sql_update("spip_spip2spip", array('last_syndic' => 'NOW()'), "id=$id_site");
370     
371      // Aller chercher les donnees du flux RSS et les analyser
372      $rss = recuperer_page($url_syndic, true);
373      if (!$rss) {
374        $log_html .= "<div style='color:red'>"._T('spiptospip:avis_echec_syndication_02')."</div>";
375      } else {
376        $articles = analyser_backend_spip2spip($rss);             
377        //----*************       
378        // Des articles dispo pour ce site ?
379        if (is_array($articles)) { 
380            foreach ($articles as $article) {
381              $log_html .= "<ul>\n";             
382             
383              if (isset($article['titre'])) {                               
384                $documents_current_article = array();
385                $current_titre = $article['titre'];
386                $version_flux = $article['version_flux'];
387                             
388                // Est que l'article n'a pas été déjà importé ?
389                $nb_reponses = sql_countsel("spip_articles","titre=".sql_quote($current_titre));                               
390                if ($nb_reponses>0) {                                   
391                   // article deja connu et present ds la base
392                   $log_html .= "<li>[<span style='color:#999'>"._T('spiptospip:imported_already')."</span>] $current_titre</li>\n";
393                   spip_log("spip2spip: deja importe: ".$current_titre);                   
394                } else {
395                   // nouvel article à importer
396                   $log_html .= "<li>[<span style='color:#090'>"._T('spiptospip:imported_new')."</span>] $current_titre<br />\n";
397                   
398                   // on cherche la rubrique destination
399                   $target = spip2spip_get_id_rubrique($article['keyword']);
400                   if (!$target) {  // pas de destination
401                      $log_html .= "<span style='color:#009'>"._T('spiptospip:no_target')." <strong>".$article['keyword']."</strong></span></li>\n";                   
402                   } else {   
403                      // tout est bon, on insert les donnnees !
404                     
405                      // etape 1 -  traitement des documents
406                      $_documents = $article['documents'];                   
407                      $documents_current_article = array();
408                      if ($_documents!="") {
409                        $_documents = unserialize($_documents);                 
410                        foreach($_documents as $_document) {                   
411                            $id_distant = $_document['id'];
412                            $source = $_document['url'];
413                            $titre = $_document['titre'];                       
414                            $desc = $_document['desc'];
415                                             
416                            // inspire de @ajouter_un_document() - inc/ajout_documents.php
417                            if ($a = recuperer_infos_distantes($source)) { 
418                           
419                                $type_image = $a['type_image'];
420
421                                                unset($a['type_image']);
422                                                unset($a['body']);
423                                                unset($a['mode']); //
424                         
425                                                $a['date'] = 'NOW()';
426                                                $a['distant'] = 'oui';
427                                                //$a['mode'] = 'document';
428                                                $a['fichier'] = set_spip_doc($source);
429                                                                                               
430                                                $a['titre'] = $titre;     // infos spip2spip, recuperer via le flux
431                                                $a['descriptif'] = $desc;
432                                               
433                                                $documents_current_article[$id_distant] = sql_insertq("spip_documents", $a);
434                                 
435                                        }                           
436                        }                       
437                      } 
438                     
439                     
440                      // etape 2 -  traitement de l'article                             
441                      $_surtitre = $article['surtitre'];
442                                $_titre = $article['titre'];
443                                $_soustitre = $article['soustitre'];
444                                $_descriptif = spip2spip_convert_extra($article['descriptif'],$documents_current_article,$version_flux);
445                                $_chapo = spip2spip_convert_extra($article['chapo'],$documents_current_article,$version_flux);
446                                $_texte = spip2spip_convert_extra($article['texte'],$documents_current_article,$version_flux);
447                                $_ps = spip2spip_convert_extra($article['ps'],$documents_current_article,$version_flux);
448                                $_date =  date('Y-m-d H:i:s',time()); // $article['date'];  // date de la syndication ou date de l'article ?
449                                $_lang = $article['lang'];
450                                $_logo = $article['logo'];
451                                $_id_rubrique = $target; 
452                      $_id_secteur = spip2spip_get_id_secteur($target);                                                 
453                                $_statut = $import_statut;
454                                $_id_auteur = $article['auteur'];
455                                $_link = $article['link'];
456                                $_licence = $article['licence'];                                       
457                               
458                                // on cite la source originale ds le champs ps et la licence
459                                if ($citer_source)
460                                      $_ps .= _T('spiptospip:origin_url')." [->".$_link."]";
461                               
462                      // licence ?               
463                      if ($_licence !="" && !isLicenceInstalled)                                       
464                            $_ps .= _T('spiptospip:article_license')." ".$_licence;
465                     
466                                                                               
467                                // ....dans la table articles                   
468                                $id_nouvel_article = sql_insertq("spip_articles",array(
469                                              'lang' => $_lang,
470                                              'surtitre' => $_surtitre,
471                                              'titre' => $_titre,
472                                              'soustitre' => $_soustitre,
473                                              'id_rubrique' => $_id_rubrique,
474                                              'id_secteur' => $_id_secteur,
475                                              'descriptif' => $_descriptif,
476                                              'chapo' => $_chapo,
477                                              'texte' => $_texte,
478                                              'ps' => $_ps,
479                                              'statut' => $_statut,
480                                              'accepter_forum' => 'non',
481                                              'date' => $_date));                                       
482                                        $log_html  .= "<a href='?exec=articles&amp;id_article=$id_nouvel_article' style='padding:5px;border:1px solid;background:#ddd;display: block;'>"._T('spiptospip:imported_view')."</a>";
483                      $log_email .= $article['titre'] ."\n"._T('spiptospip:imported_view').": ".$GLOBALS['meta']['adresse_site']."/ecrire/?exec=articles&id_article=$id_nouvel_article \n\n";
484                                                                               
485                      // ... dans la table auteurs
486                      if ($_id_auteur) {
487                                            $auteurs = explode(", ",$_id_auteur);
488                                            foreach($auteurs as $auteur) {
489                                                $id_auteur = spip2spip_get_id_auteur($auteur);
490                                                if ($id_auteur)         
491                                @sql_insertq("spip_auteurs_articles",array('id_auteur'=>$id_auteur,'id_article'=>$id_nouvel_article));
492                          }
493                      }
494                     
495                      // ....dans la table documents_article
496                      foreach($documents_current_article as $document_current_article) { 
497                          @sql_insertq('spip_documents_liens',array(
498                                      'id_document'=>$document_current_article, 'id_objet'=>$id_nouvel_article,
499                                      'objet' => 'article'));
500                      } 
501                     
502                      // ... si logo, tente de l'importer                     
503                      if ($_logo) {                                                     
504                            $logo_local = copie_locale($_logo);                         
505                            if ($logo_local) {                                 
506                                $logo_local_dest = "IMG/arton$id_nouvel_article.".substr($logo_local,-3);                                                       
507                                @rename( _DIR_RACINE.$logo_local, _DIR_RACINE.$logo_local_dest);
508                            }
509                      }
510                     
511                      // etape 3 - traitement des evenements (a finir de porter) FIXME
512                      $_evenements = $article['evenements'];
513                                          $_evenements = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $_evenements );
514                      if ($_evenements!="") {
515                       
516                        $_evenements=unserialize($_evenements);           
517                        foreach($_evenements as $_evenement) {                     
518                            $id_distant = $_evenement['idevent'];  // utile ? a supprimer ds backend aussi ?
519                            $datedeb = $_evenement['datedeb'];
520                            $datefin = $_evenement['datefin'];
521                            $lieu = $_evenement['lieu'];
522                            $adresse = $_evenement['adresse'];
523                            $horaire = $_evenement['horaire'];
524                            $titre = $_evenement['titre'];                       
525                            $desc = $_evenement['desc'];                         
526                            $idsource = $_evenement['idsource'];   // utile ?
527                                                     
528                            @sql_insertq('spip_evenements',array(
529                                                                            'id_article'=> $id_nouvel_article,
530                                                                            'date_debut'=> $datedeb,
531                                                                            'date_fin'=> $datefin,
532                                                                            'titre'=>$titre,
533                                                                            'descriptif'=>$desc,
534                                                                            'lieu'=>$lieu,
535                                                                            'adresse'=>$adresse,
536                                                                            'horaire'=>$horaire));
537                            $log_html .= "<div style='padding:2px 5px;border:1px solid #5DA7C5;background:#eee;display: block;'>"._T('spiptospip:event_ok')." : $datedeb  $lieu</div>";
538                                                                                               
539                                                                                               
540                        } 
541                      }
542                     
543                      // .... dans le groupe mot "licence" ?
544                      if ($_licence !="" && isLicenceInstalled) {                                       
545                          $id_mot = spip2spip_get_id_mot($_licence);
546                          if ($id_mot) 
547                                  @sql_insertq('spip_mots_articles',array('id_mot'=>$id_mot,'id_article'=>$id_nouvel_article));                     
548                     } 
549
550                   }
551                   
552                   $log_html .= "</li>\n";
553                }
554
555              } 
556              $log_html .= "</ul>";
557             
558
559            }
560        } else {
561          $log_html .= "<div style='color:purple'>"._T('spiptospip:aucun_article')."</div>";
562        }
563        // #analyse article
564        //----*************
565      }         
566   
567     
568    } // #selection du site
569   
570    // alerte email ?   
571    if ($email_alerte && $log_email !="") 
572                  envoyer_mail($email_suivi,"Syndication automatique SPIP2SPIP", $log_email);       
573             
574   
575    if ($mode=='html') return $log_html;   
576    return false;
577}
578
579//
580// ajout au cron
581function spip2spip_taches_generales_cron($taches) {
582  $taches['spip2spip_syndic'] = 60*5; 
583        return $taches;
584}
585
586
587?>
Note: See TracBrowser for help on using the repository browser.