mirror of
https://github.com/phpbb/phpbb.git
synced 2025-02-24 12:03:21 +01:00
fix an improper fix.
- generally, sorry, but direct url parsing after ] will no longer work... - try to eliminate the most common "bug" for placing urls within the [url=][/url] part (the text). This will trigger make_clickable and render the url invalid (doubled url), moreso if other text is involved too. This is still te case if the url is not written directly after the [url=] part. This is nearly the best we can get within 3.0.x - and every report about [url=], [url] and make_clickable and it's non-parsing or parsing will be closed with "will not fix", except it is a critical bug resulting in the non-functioning of the board. We may adjust this later to our own liking while we try to find different ways to face these problems. git-svn-id: file:///svn/phpbb/trunk@7681 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
79600289e7
commit
e6f46e65a7
@ -2613,6 +2613,7 @@ function make_clickable_callback($type, $whitespace, $url, $relative_url, $class
|
|||||||
// make sure no HTML entities were matched
|
// make sure no HTML entities were matched
|
||||||
$chars = array('<', '>', '"');
|
$chars = array('<', '>', '"');
|
||||||
$split = false;
|
$split = false;
|
||||||
|
|
||||||
foreach ($chars as $char)
|
foreach ($chars as $char)
|
||||||
{
|
{
|
||||||
$next_split = strpos($url, $char);
|
$next_split = strpos($url, $char);
|
||||||
@ -2668,6 +2669,7 @@ function make_clickable_callback($type, $whitespace, $url, $relative_url, $class
|
|||||||
{
|
{
|
||||||
$url = substr($url, 0, -1);
|
$url = substr($url, 0, -1);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($type)
|
switch ($type)
|
||||||
@ -2734,19 +2736,19 @@ function make_clickable($text, $server_url = false, $class = 'postlink')
|
|||||||
// Be sure to not let the matches cross over. ;)
|
// Be sure to not let the matches cross over. ;)
|
||||||
|
|
||||||
// relative urls for this board
|
// relative urls for this board
|
||||||
$magic_url_match[] = '#(^|[\n\t (>\]])(' . preg_quote($server_url, '#') . ')/(' . get_preg_expression('relative_url_inline') . ')#ie';
|
$magic_url_match[] = '#(^|[\n\t (>])(' . preg_quote($server_url, '#') . ')/(' . get_preg_expression('relative_url_inline') . ')#ie';
|
||||||
$magic_url_replace[] = "make_clickable_callback(MAGIC_URL_LOCAL, '\$1', '\$2', '\$3', '$local_class')";
|
$magic_url_replace[] = "make_clickable_callback(MAGIC_URL_LOCAL, '\$1', '\$2', '\$3', '$local_class')";
|
||||||
|
|
||||||
// matches a xxxx://aaaaa.bbb.cccc. ...
|
// matches a xxxx://aaaaa.bbb.cccc. ...
|
||||||
$magic_url_match[] = '#(^|[\n\t (>\]])(' . get_preg_expression('url_inline') . ')#ie';
|
$magic_url_match[] = '#(^|[\n\t (>])(' . get_preg_expression('url_inline') . ')#ie';
|
||||||
$magic_url_replace[] = "make_clickable_callback(MAGIC_URL_FULL, '\$1', '\$2', '', '$class')";
|
$magic_url_replace[] = "make_clickable_callback(MAGIC_URL_FULL, '\$1', '\$2', '', '$class')";
|
||||||
|
|
||||||
// matches a "www.xxxx.yyyy[/zzzz]" kinda lazy URL thing
|
// matches a "www.xxxx.yyyy[/zzzz]" kinda lazy URL thing
|
||||||
$magic_url_match[] = '#(^|[\n\t (>\]])(' . get_preg_expression('www_url_inline') . ')#ie';
|
$magic_url_match[] = '#(^|[\n\t (>])(' . get_preg_expression('www_url_inline') . ')#ie';
|
||||||
$magic_url_replace[] = "make_clickable_callback(MAGIC_URL_WWW, '\$1', '\$2', '', '$class')";
|
$magic_url_replace[] = "make_clickable_callback(MAGIC_URL_WWW, '\$1', '\$2', '', '$class')";
|
||||||
|
|
||||||
// matches an email@domain type address at the start of a line, or after a space or after what might be a BBCode.
|
// matches an email@domain type address at the start of a line, or after a space or after what might be a BBCode.
|
||||||
$magic_url_match[] = '/(^|[\n\t (>\]])(' . get_preg_expression('email') . ')/ie';
|
$magic_url_match[] = '/(^|[\n\t (>])(' . get_preg_expression('email') . ')/ie';
|
||||||
$magic_url_replace[] = "make_clickable_callback(MAGIC_URL_EMAIL, '\$1', '\$2', '', '')";
|
$magic_url_replace[] = "make_clickable_callback(MAGIC_URL_EMAIL, '\$1', '\$2', '', '')";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -905,7 +905,7 @@ class bbcode_firstpass extends bbcode
|
|||||||
$url = append_sid($url);
|
$url = append_sid($url);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ($var1) ? '[url=' . $this->bbcode_specialchars($url) . ':' . $this->bbcode_uid . ']' . $this->bbcode_specialchars($var2) . '[/url:' . $this->bbcode_uid . ']' : '[url:' . $this->bbcode_uid . ']' . $this->bbcode_specialchars($url) . '[/url:' . $this->bbcode_uid . ']';
|
return ($var1) ? '[url=' . $this->bbcode_specialchars($url) . ':' . $this->bbcode_uid . ']' . $var2 . '[/url:' . $this->bbcode_uid . ']' : '[url:' . $this->bbcode_uid . ']' . $this->bbcode_specialchars($url) . '[/url:' . $this->bbcode_uid . ']';
|
||||||
}
|
}
|
||||||
|
|
||||||
return '[url' . (($var1) ? '=' . $var1 : '') . ']' . $var2 . '[/url]';
|
return '[url' . (($var1) ? '=' . $var1 : '') . ']' . $var2 . '[/url]';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user