aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2008-03-24 00:16:13 +0000
committerNils Adermann <naderman@naderman.de>2008-03-24 00:16:13 +0000
commit50e1d938879db3385eb446eade2a3b7950b85fe3 (patch)
tree671454f2febc4714e71674584397034afe71cb7d /phpBB/includes
parent45673658a10cb8493801b96ceecab3acccda3e5d (diff)
downloadforums-50e1d938879db3385eb446eade2a3b7950b85fe3.tar
forums-50e1d938879db3385eb446eade2a3b7950b85fe3.tar.gz
forums-50e1d938879db3385eb446eade2a3b7950b85fe3.tar.bz2
forums-50e1d938879db3385eb446eade2a3b7950b85fe3.tar.xz
forums-50e1d938879db3385eb446eade2a3b7950b85fe3.zip
- [Fix] Do not detect the board URL as a link twice in posts (Bug #19215)
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@8462 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/functions_content.php19
1 files changed, 15 insertions, 4 deletions
diff --git a/phpBB/includes/functions_content.php b/phpBB/includes/functions_content.php
index 0d367f953f..9eab477a8a 100644
--- a/phpBB/includes/functions_content.php
+++ b/phpBB/includes/functions_content.php
@@ -492,6 +492,7 @@ function generate_text_for_edit($text, $uid, $flags)
*/
function make_clickable_callback($type, $whitespace, $url, $relative_url, $class)
{
+ $orig_url = $url . $relative_url;
$append = '';
$url = htmlspecialchars_decode($url);
$relative_url = htmlspecialchars_decode($relative_url);
@@ -558,29 +559,39 @@ function make_clickable_callback($type, $whitespace, $url, $relative_url, $class
break;
}
+ $short_url = (strlen($url) > 55) ? substr($url, 0, 39) . ' ... ' . substr($url, -10) : $url;
+
switch ($type)
{
case MAGIC_URL_LOCAL:
$tag = 'l';
$relative_url = preg_replace('/[&?]sid=[0-9a-f]{32}$/', '', preg_replace('/([&?])sid=[0-9a-f]{32}&/', '$1', $relative_url));
$url = $url . '/' . $relative_url;
- $text = ($relative_url) ? $relative_url : $url;
+ $text = $relative_url;
+
+ // this url goes to http://domain.tld/path/to/board/ which
+ // would result in an empty link if treated as local so
+ // don't touch it and let MAGIC_URL_FULL take care of it.
+ if (!$relative_url)
+ {
+ return $orig_url . '/'; // slash is taken away by relative url pattern
+ }
break;
case MAGIC_URL_FULL:
$tag = 'm';
- $text = (strlen($url) > 55) ? substr($url, 0, 39) . ' ... ' . substr($url, -10) : $url;
+ $text = $short_url;
break;
case MAGIC_URL_WWW:
$tag = 'w';
$url = 'http://' . $url;
- $text = (strlen($url) > 55) ? substr($url, 0, 39) . ' ... ' . substr($url, -10) : $url;
+ $text = $short_url;
break;
case MAGIC_URL_EMAIL:
$tag = 'e';
- $text = (strlen($url) > 55) ? substr($url, 0, 39) . ' ... ' . substr($url, -10) : $url;
+ $text = $short_url;
$url = 'mailto:' . $url;
break;
}