--- /dev/null
+<?php\r
+\r
+function liens_en_clair_callback($matches) {\r
+ if (preg_match(',^(mailto:|news:)(.*)$,', $lien = $matches[2], $matches2)) $lien = $matches2[2];\r
+ // si mailcrypt est actif, on decode le lien cache dans "title"\r
+ if (defined('_mailcrypt_AROBASE_JS') && preg_match(',title="([^"]+)'.preg_quote(_mailcrypt_AROBASE_JS).'([^"]+)",', $matches[0], $matches2)) \r
+ $lien = $matches2[1]._mailcrypt_AROBASE.$matches2[2];\r
+ // doit-on afficher le lien en clair ?\r
+ $ajouter_lien = \r
+ $lien!=$matches[3]\r
+ // ni les ancres, ni les blocs\r
+ && $lien[0]!='#'\r
+ && strpos($lien, 'javascript:')===false\r
+ // ni les liens internes, ni le glossaire SPIP...\r
+ && !preg_match(',(["\'])spip_(in|glossaire)\1,', $matches[0]);\r
+ if ($ajouter_lien) return $matches[0] . " [$lien]";\r
+ return $matches[0];\r
+}\r
+\r
+// filtre utilisable sur les balises SPIP\r
+function liens_en_clair($texte) {\r
+ if (strpos($texte, 'href')===false) return $texte;\r
+ // recherche de tous les liens : <a href="??">\r
+ $texte = preg_replace_callback(',<a.* href=(["\'])(.*)\1.*>(.*)</a>,Umsi', 'liens_en_clair_callback', $texte);\r
+ return $texte;\r
+}\r
+\r
+?>
\ No newline at end of file