Mise en route du suivi.
[aidenligne_francais_universite.git] / plugins / couteau_suisse / outils / liens_orphelins_fonctions.php
1 <?php
2 /*
3 Liens orphelins - Code & integration 2007 : Patrice Vanneufville
4 Toutes les infos sur : http://www.spip-contrib.net/?article2443
5 */
6
7 include_spip('outils/inc_cs_liens');
8
9 function liens_orphelins($texte){
10 // deja, on s'en va si pas de point...
11 if ($GLOBALS["liens_orphelins"]<0 || strpos($texte, '.')===false) return $texte;
12 // prudence 1 : on protege TOUTES les balises <a></a> pour eviter les doublons
13 if (strpos($texte, '<a')!==false)
14 $texte = preg_replace_callback(',<a\s*[^<]+</a>,Ums', 'cs_liens_echappe_callback', $texte);
15 // prudence 2 : on protege TOUS les raccourcis de liens Spip, au cas ou...
16 if (strpos($texte, '[')!==false)
17 $texte = preg_replace_callback(',\[([^][]*)->(>?)([^]]*)\],msS', 'cs_liens_echappe_callback', $texte);
18 // prudence 3 : on protege TOUTES les balises contenant des points, histoire de voir plus clair
19 if (strpos($texte, '<')!==false)
20 $texte = preg_replace_callback(',<[^>]+\.[^>]*>,Ums', 'cs_liens_echappe_callback', $texte);
21 // encore ici, on s'en va si pas de point...
22 if (strpos($texte, '.')===false) return echappe_retour($texte, 'LIENS');
23
24 // trouve et protege : protocole://qqchose
25 $texte = preg_replace_callback(_cs_liens_HTTP, 'cs_liens_raccourcis_callback', $texte);
26 // trouve et protege : www.lieu.qqchose ou ftp.lieu.qqchose
27 $texte = preg_replace_callback(_cs_liens_WWW, 'cs_liens_raccourcis_callback', $texte);
28
29 $autorises = _cs_liens_AUTORISE;
30 $autorisesfin = _cs_liens_AUTORISE_FIN;
31 // trouve : mailto:qqchose ou news:qqchose
32 if($GLOBALS["liens_orphelins"]>0) {
33 $texte = preg_replace_callback(_cs_liens_NEWS, 'cs_liens_raccourcis_callback', $texte);
34 $texte = preg_replace_callback(_cs_liens_MAILS, 'cs_liens_email_callback', $texte);
35 }
36
37 return echappe_retour($texte, 'LIENS');
38 }
39
40 ?>