[SPIP] ~maj v2.1.25-->2.1.26
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / 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 // trouve : mailto:qqchose ou news:qqchose
29 if($GLOBALS['liens_orphelins']>0) {
30 $texte = preg_replace_callback(_cs_liens_NEWS, 'cs_liens_raccourcis_callback', $texte);
31 $texte = preg_replace_callback(_cs_liens_MAILS, 'cs_liens_email_callback', $texte);
32 }
33 return echappe_retour($texte, 'LIENS');
34 }
35
36 ?>