[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / outils / liens_en_clair_fonctions.php
1 <?php
2
3 function liens_en_clair_callback($matches) {
4 if (preg_match(',^(mailto:|news:)(.*)$,', $lien = $matches[2], $matches2)) $lien = $matches2[2];
5 // si mailcrypt est actif, on decode le lien cache dans "title"
6 if (defined('_mailcrypt_AROBASE_JS') && preg_match(',title="([^"]+)'.preg_quote(_mailcrypt_AROBASE_JS).'([^"]+)",', $matches[0], $matches2))
7 $lien = $matches2[1]._mailcrypt_AROBASE.$matches2[2];
8 // doit-on afficher le lien en clair ?
9 $ajouter_lien =
10 $lien!=$matches[3]
11 // ni les ancres, ni les blocs
12 && $lien[0]!='#'
13 && strpos($lien, 'javascript:')===false
14 // ni les liens internes, ni le glossaire SPIP...
15 && !preg_match(',(["\'])spip_(in|glossaire)\1,', $matches[0]);
16 if ($ajouter_lien) return $matches[0] . " [$lien]";
17 return $matches[0];
18 }
19
20 // filtre utilisable sur les balises SPIP
21 function liens_en_clair($texte) {
22 if (strpos($texte, 'href')===false) return $texte;
23 // recherche de tous les liens : <a href="??">
24 $texte = preg_replace_callback(',<a.* href=(["\'])(.*)\1.*>(.*)</a>,Umsi', 'liens_en_clair_callback', $texte);
25 return $texte;
26 }
27
28 ?>