[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / outils / liens_orphelins.php
diff --git a/www/plugins/auto/couteau_suisse/couteau_suisse/outils/liens_orphelins.php b/www/plugins/auto/couteau_suisse/couteau_suisse/outils/liens_orphelins.php
new file mode 100644 (file)
index 0000000..13a94ff
--- /dev/null
@@ -0,0 +1,51 @@
+<?php\r
+\r
+/*\r
+ code & integration 2007 : Patrice Vanneufville\r
+ Toutes les infos sur : http://www.spip-contrib.net/?article2443\r
+*/\r
+include_spip('outils/inc_cs_liens');\r
+\r
+// liens_orphelins() est dans liens_orphelins_fonctions.php pour permettre les traitements\r
+function liens_orphelins_pipeline($texte){\r
+       if ($GLOBALS["liens_orphelins"]<0 || strpos($texte, '.')===false) return $texte;\r
+       return cs_echappe_balises('html|code|cadre|frame|script|acronym|cite', 'liens_orphelins', $texte);\r
+}\r
+\r
+function interro_liens_callback($matches) {\r
+ return cs_code_echappement(echappe_interro_amp($matches[0]), 'LIENS');\r
+}\r
+\r
+// Fonction de remplacement\r
+function interro_rempl($texte) {\r
+       // prudence 1 : on protege TOUTES les balises contenant des "?", "!" ou "-", histoire de voir plus clair\r
+       if (strpos($texte, '<')!==false) \r
+               $texte = preg_replace_callback(',(<[^>]+[?!-][^>]*>),Ums', 'cs_liens_echappe_callback', $texte);\r
+       // prudence 2 : on protege TOUS les liens de raccourcis de liens Spip, au cas ou...\r
+       if (strpos($texte, '[')!==false) \r
+               $texte = preg_replace_callback(',\[[^][]*->>?([^]]*)\],msS', 'cs_liens_echappe_callback', $texte);\r
+\r
+       // ici, on traite si on trouve des "?", "!" ou "--"\r
+       if (strpos($texte, '?')!==false || strpos($texte, '!')!==false || strpos($texte, '--')!==false) {\r
+               // trouve et protege : protocole://qqchose\r
+               $texte = preg_replace_callback(_cs_liens_HTTP, 'interro_liens_callback', $texte);\r
+               // trouve et protege : www.lieu.qqchose ou ftp.lieu.qqchose\r
+               $texte = preg_replace_callback(_cs_liens_WWW, 'interro_liens_callback', $texte);\r
+       }\r
+       return echappe_retour($texte, 'LIENS');\r
+}\r
\r
+// Fonctions de pipeline\r
+function interro_pre_typo($texte) {\r
+       if ($GLOBALS["liens_interrogation"] \r
+                       && (strpos($texte, '?')!==false || strpos($texte, '!')!==false || strpos($texte, '--')!==false))\r
+               // appeler interro_rempl() une fois que certaines balises ont ete protegees\r
+               return cs_echappe_balises('', 'interro_rempl', $texte);\r
+       return $texte;\r
+}\r
+\r
+function interro_post_propre($texte) {\r
+       return retour_interro_amp($texte);\r
+}\r
+\r
+?>
\ No newline at end of file