BBCode - added preg_replacers for local [url] without target="_blank"

This commit is contained in:
peter 2019-01-25 01:15:43 +01:00
parent 2b0610eaf5
commit ae806a593d
1 changed files with 10 additions and 1 deletions

View File

@ -1361,7 +1361,16 @@ class BBCode extends BaseObject
. '</a>';
}, $text);
$text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '<a href="$1" target="_blank">$1</a>', $text);
// We need no target="_blank" for local links
// convert links start with System::baseUrl() as local link
$escapedBaseUrl = str_replace('://', '\:\/\/', System::baseUrl());
$text = preg_replace("/\[url\]($escapedBaseUrl)([$URLSearchString]*)\[\/url\]/ism", '<a href="$1$2">$1$2</a>', $text);
$text = preg_replace("/\[url\=($escapedBaseUrl)([$URLSearchString]*)\](.*?)\[\/url\]/ism", '<a href="$1$2">$3</a>', $text);
// convert links that start with / as local link
$text = preg_replace("/\[url\](\/[$URLSearchString]*)\[\/url\]/ism", '<a href="'.System::baseUrl().'$1">$1</a>', $text);
$text = preg_replace("/\[url\=(\/[$URLSearchString]*)\](.*?)\[\/url\]/ism", '<a href="'.System::baseUrl().'$1">$2</a>', $text);
$text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '<a href="$1" target="_blank">$1</a>', $text);
$text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '<a href="$1" target="_blank">$2</a>', $text);
// Red compatibility, though the link can't be authenticated on Friendica