[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / outils / liens_orphelins_fonctions.php
diff --git a/www/plugins/auto/couteau_suisse/couteau_suisse/outils/liens_orphelins_fonctions.php b/www/plugins/auto/couteau_suisse/couteau_suisse/outils/liens_orphelins_fonctions.php
new file mode 100644 (file)
index 0000000..2a8a518
--- /dev/null
@@ -0,0 +1,36 @@
+<?php\r
+/*\r
+ Liens orphelins - Code & integration 2007 : Patrice Vanneufville\r
+ Toutes les infos sur : http://www.spip-contrib.net/?article2443\r
+*/\r
+\r
+include_spip('outils/inc_cs_liens');\r
+\r
+function liens_orphelins($texte){\r
+       // deja, on s'en va si pas de point...\r
+       if ($GLOBALS["liens_orphelins"]<0 || strpos($texte, '.')===false) return $texte;\r
+       // prudence 1 : on protege TOUTES les balises <a></a> pour eviter les doublons\r
+       if (strpos($texte, '<a')!==false) \r
+               $texte = preg_replace_callback(',<a\s*[^<]+</a>,Ums', 'cs_liens_echappe_callback', $texte);\r
+       // prudence 2 : on protege TOUS les raccourcis de liens Spip, au cas ou...\r
+       if (strpos($texte, '[')!==false) \r
+               $texte = preg_replace_callback(',\[([^][]*)->(>?)([^]]*)\],msS', 'cs_liens_echappe_callback', $texte);\r
+       // prudence 3 : on protege TOUTES les balises contenant des points, histoire de voir plus clair\r
+       if (strpos($texte, '<')!==false) \r
+               $texte = preg_replace_callback(',<[^>]+\.[^>]*>,Ums', 'cs_liens_echappe_callback', $texte);\r
+       // encore ici, on s'en va si pas de point...\r
+       if (strpos($texte, '.')===false) return echappe_retour($texte, 'LIENS');\r
+\r
+       // trouve et protege : protocole://qqchose\r
+       $texte = preg_replace_callback(_cs_liens_HTTP, 'cs_liens_raccourcis_callback', $texte);\r
+       // trouve et protege : www.lieu.qqchose ou ftp.lieu.qqchose\r
+       $texte = preg_replace_callback(_cs_liens_WWW, 'cs_liens_raccourcis_callback', $texte);\r
+       // trouve : mailto:qqchose ou news:qqchose\r
+       if($GLOBALS['liens_orphelins']>0) {\r
+          $texte = preg_replace_callback(_cs_liens_NEWS, 'cs_liens_raccourcis_callback', $texte);\r
+          $texte = preg_replace_callback(_cs_liens_MAILS, 'cs_liens_email_callback', $texte);\r
+       }\r
+       return echappe_retour($texte, 'LIENS');\r
+}\r
+\r
+?>
\ No newline at end of file