[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / outils / liens_orphelins.php
1 <?php
2
3 /*
4 code & integration 2007 : Patrice Vanneufville
5 Toutes les infos sur : http://www.spip-contrib.net/?article2443
6 */
7 include_spip('outils/inc_cs_liens');
8
9 // liens_orphelins() est dans liens_orphelins_fonctions.php pour permettre les traitements
10 function liens_orphelins_pipeline($texte){
11 if ($GLOBALS["liens_orphelins"]<0 || strpos($texte, '.')===false) return $texte;
12 return cs_echappe_balises('html|code|cadre|frame|script|acronym|cite', 'liens_orphelins', $texte);
13 }
14
15 function interro_liens_callback($matches) {
16 return cs_code_echappement(echappe_interro_amp($matches[0]), 'LIENS');
17 }
18
19 // Fonction de remplacement
20 function interro_rempl($texte) {
21 // prudence 1 : on protege TOUTES les balises contenant des "?", "!" ou "-", histoire de voir plus clair
22 if (strpos($texte, '<')!==false)
23 $texte = preg_replace_callback(',(<[^>]+[?!-][^>]*>),Ums', 'cs_liens_echappe_callback', $texte);
24 // prudence 2 : on protege TOUS les liens de raccourcis de liens Spip, au cas ou...
25 if (strpos($texte, '[')!==false)
26 $texte = preg_replace_callback(',\[[^][]*->>?([^]]*)\],msS', 'cs_liens_echappe_callback', $texte);
27
28 // ici, on traite si on trouve des "?", "!" ou "--"
29 if (strpos($texte, '?')!==false || strpos($texte, '!')!==false || strpos($texte, '--')!==false) {
30 // trouve et protege : protocole://qqchose
31 $texte = preg_replace_callback(_cs_liens_HTTP, 'interro_liens_callback', $texte);
32 // trouve et protege : www.lieu.qqchose ou ftp.lieu.qqchose
33 $texte = preg_replace_callback(_cs_liens_WWW, 'interro_liens_callback', $texte);
34 }
35 return echappe_retour($texte, 'LIENS');
36 }
37
38 // Fonctions de pipeline
39 function interro_pre_typo($texte) {
40 if ($GLOBALS["liens_interrogation"]
41 && (strpos($texte, '?')!==false || strpos($texte, '!')!==false || strpos($texte, '--')!==false))
42 // appeler interro_rempl() une fois que certaines balises ont ete protegees
43 return cs_echappe_balises('', 'interro_rempl', $texte);
44 return $texte;
45 }
46
47 function interro_post_propre($texte) {
48 return retour_interro_amp($texte);
49 }
50
51 ?>