diff options
author | millette <millette@controlyourself.ca> | 2008-11-13 13:28:34 -0500 |
---|---|---|
committer | millette <millette@controlyourself.ca> | 2008-11-13 13:28:34 -0500 |
commit | 0633d0404d5ca75dbb52e6dc6eb50d854bee77d3 (patch) | |
tree | caf676ebcf6c7637e6320990102ef1a090008f76 /lib | |
parent | f2506b0339d073294ce5e1a17c3ce9a661a983e9 (diff) |
trac31 added longurl title to anchors when applicable. Also removed * url prefix feature to prevent short urls.
darcs-hash:20081113182834-099f7-f55adc95eb8fb46f8cee1c176653c88f65e27ab6.gz
Diffstat (limited to 'lib')
-rw-r--r-- | lib/util.php | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/lib/util.php b/lib/util.php index ee1a149a7..bdc798314 100644 --- a/lib/util.php +++ b/lib/util.php @@ -744,14 +744,28 @@ function common_render_uri_thingy($matches) { $trailer = $final . $trailer; } } - return '<a href="' . $uri . '" class="extlink">' . $uri . '</a>' . $trailer; + if ($longurl = common_longurl($uri)) { + $longurl = htmlentities($longurl, ENT_QUOTES, 'UTF-8'); + $title = " title=$longurl"; + } + else $title = ''; + + return '<a href="' . $uri . '"' . $title . ' class="extlink">' . $uri . '</a>' . $trailer; +} + +function common_longurl($uri) { + $uri_e = urlencode($uri); + $longurl = unserialize(file_get_contents("http://api.longurl.org/v1/expand?format=php&url=$uri_e")); + if (empty($longurl['long_url']) || $uri === $longurl['long_url']) return false; + return $longurl['long_url']; } function common_shorten_links($text) { $r = htmlspecialchars($text); // \s = not a horizontal whitespace character (since PHP 5.2.4) - $r = preg_replace('@[^*]https?://[^)\]>\s]+@e', "common_shorten_link('\\0')", $r); -// $r = preg_replace('@https?://[^)\]>\s]+@e', "common_shorten_link('\\0')", $r); + // RYM this should prevent * preceded URLs from being processed but it its a char +// $r = preg_replace('@[^*](https?://[^)\]>\s]+)@e', "common_shorten_link('\\1')", $r); + $r = preg_replace('@https?://[^)\]>\s]+@e', "common_shorten_link('\\0')", $r); return $r; } |