[PLUGINS] ~maj des plugins
[lhc/web/www.git] / www / plugins / rss_article_3_0 / genie / rssarticle_copie.php
index f4dc256..5f5a1e8 100644 (file)
@@ -21,7 +21,8 @@ function genie_rssarticle_copie_dist($t){
   if (lire_config('rssarticle/import_statut')=="publie")       $import_statut="publie"; else  $import_statut="prop";     \r
   if (lire_config('rssarticle/mode')=="auto")       $mode_auto=true; else  $mode_auto=false;  \r
   if (lire_config('rssarticle/email_alerte')=="on") $email_alerte=true; else  $email_alerte=false;\r
-  if (lire_config('rssarticle/copie_logo')=="on")   $copie_logo=true; else  $copie_logo=false;        \r
+  if (lire_config('rssarticle/copie_logo')=="on")   $copie_logo=true; else  $copie_logo=false; \r
+  if (lire_config('rssarticle/html2spip')=="on")   $html2spip=true; else  $html2spip=false; \r
   $email_suivi = lire_config('rssarticle/email_suivi'); \r
   \r
   // autres valeurs\r
@@ -46,12 +47,16 @@ function genie_rssarticle_copie_dist($t){
        $s = sql_select("*", "spip_syndic_articles", "statut='publie' AND id_syndic='$id_syndic'","","maj DESC","10");  // par flot de 10 articles / site pour limiter la charge\r
        while ($a = sql_fetch($s)) {\r
                        $titre =  $a['titre'];\r
+                       $url =  $a['url'];\r
           $id_syndic_article = $a['id_syndic_article']; \r
                     \r
-          // article avec mm titre existe ? (test doublons)\r
-               if (!$row = sql_fetsel("id_article","spip_articles","titre=".sql_quote($titre))) {        \r
+          // article avec mm titre existe ? (test doublons sur l'url plutot que sr le titre)\r
+               if (!$row = sql_fetsel("id_article","spip_articles","url_site=".sql_quote($url))) {        \r
             \r
             $texte = $a['descriptif'];\r
+            //traitement pour syntaxe SPIP\r
+            if($html2spip)\r
+                  $texte = html2spip($texte);\r
             $lang  = $a['lang'];\r
             $url   = $a['url'];\r
             $tags =  $a['tags'];\r
@@ -187,11 +192,77 @@ function extraire_enclosures($tags) {
        return $s;\r
 }\r
 \r
-/*\r
-UPDATE `spip_syndic_articles` SET statut="publie";\r
-TRUNCATE TABLE `spip_articles`;\r
-DELETE FROM `spip_auteurs_liens` WHERE id_auteur > 1;\r
-DELETE FROM `spip_auteurs` WHERE id_auteur > 1; \r
-*/\r
+/**\r
+ * \r
+ * Nettoyer l'utf-8 et ses accents \r
+ *\r
+**/\r
+function clean_utf8($t) {\r
+       if (!preg_match('!\S!u', $t))\r
+               $t = preg_replace_callback(',&#x([0-9a-f]+);,i', 'utf8_do', utf8_encode(utf8_decode($t)));\r
+       return $t;\r
+}\r
+\r
+\r
+//passe le html en SPIP\r
+//repris de memo.php, merci\r
+\r
+function html2spip($lapage){\r
+       $lapage=clean_utf8($lapage);\r
+       \r
+       // remettre les double quotes casé par texte_backend\r
+       $lapage = str_replace('"','"',$lapage);\r
+       \r
+       // PRETRAITEMENTS\r
+       $lapage = str_replace("\n\r", "\r", $lapage); // echapper au greedyness de preg_replace\r
+       $lapage = str_replace("\n", "\r", $lapage);\r
+\r
+       // itals\r
+       $lapage = preg_replace(",<(i|em)( [^>\r]*)?".">(.+)</\\1>,Uims", "{\\3}", $lapage);\r
+       \r
+       // gras (pas de {{ pour eviter tout conflit avec {)\r
+       $lapage = preg_replace(",<(b|h[4-6])( [^>]*)?".">(.+)</\\1>,Uims", "@@b@@\\3@@/b@@", $lapage);\r
+       $lapage = preg_replace(",<strong( [^>]*)?".">(.+)</strong>,Uims", "@@b@@\\2@@/b@@", $lapage);\r
+       \r
+       // entites\r
+       include_spip('inc/charsets');\r
+       $lapage = html2unicode($lapage, true); //secure?\r
+               \r
+       // liens avec possibilités de non fermeture du tag\r
+       $lapage = preg_replace(",<a[ \t\n\r][^<>]*href=[^<>]*(http[^<>]*)[^<>]>(.*?)<,uims", "[\\2->\\1] <", $lapage);\r
+\r
+       // images (cf ressource)\r
+       $lapage = preg_replace(",<img[ \t\n\r][^<>]*src=[^<>]*(http[^<>'\"]*)[^<>]*>,uims","[img]\\1[//img]", $lapage);\r
+\r
+               \r
+       // intertitres\r
+       $lapage = preg_replace(",<(h[1-3])( [^>]*)?".">(.+)</\\1>,Uims", "\r{{{ \\3 }}}\r", $lapage);\r
+       // tableaux\r
+       $lapage = preg_replace(",<tr( [^>]*)?".">,Uims", "<br />\r", $lapage);\r
+       $lapage = preg_replace(",<t[hd]( [^>]*)?".">,Uims", " | ", $lapage);\r
+\r
+       // POST TRAITEMENT\r
+       $lapage = str_replace("\r", "\n", $lapage);\r
+\r
+       // SUPPRIME LES TAGS\r
+       if (eregi("<title.*>(.*)</title>", $lapage, $regs))\r
+       $titre = textebrut($regs[1]);\r
+       $lapage = textebrut($lapage);\r
+       \r
+       // Suite tableaux\r
+       $lapage = preg_replace(",\n[| ]+\n,", "", $lapage);\r
+       $lapage = preg_replace(",\n[|].+?[|].+?[|].+,", "\\0|\r", $lapage);\r
+       \r
+       // retablir les gras\r
+       $lapage = preg_replace(",@@b@@(.*)@@/b@@,Uims","{{\\1}}",$lapage);\r
+       \r
+       //retablir les images pour les lire avec le plugin ressource\r
+       $lapage = preg_replace('#\[img\](.*)\[\//img\]#Umis', "<$1>", $lapage);\r
+       \r
+       //nettoyer les "] qui dépassent parfois\r
+       $lapage = preg_replace(",\"\],uims", "]", $lapage);\r
+       \r
+       return $lapage;\r
+}\r
 \r
 ?>
\ No newline at end of file