diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index da98a7ff87..13d4e1b055 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -678,7 +678,7 @@ class BBCode $return = ''; if ($simplehtml == 7) { - $return = self::convertUrlForMastodon($data["url"]); + $return = self::convertUrlForOStatus($data["url"]); } elseif (($simplehtml != 4) && ($simplehtml != 0)) { $return = sprintf('%s
', $data["url"], $data["title"]); } else { @@ -790,7 +790,7 @@ class BBCode * @param array $match Array with the matching values * @return string reformatted link including HTML codes */ - private static function convertUrlForMastodonCallback($match) + private static function convertUrlForOStatusCallback($match) { $url = $match[1]; @@ -803,72 +803,23 @@ class BBCode return $match[0]; } - return self::convertUrlForMastodon($url); + return self::convertUrlForOStatus($url); } /** - * @brief Converts [url] BBCodes in a format that looks fine on Mastodon and GNU Social. + * @brief Converts [url] BBCodes in a format that looks fine on OStatus systems. * @param string $url URL that is about to be reformatted * @return string reformatted link including HTML codes */ - private static function convertUrlForMastodon($url) + private static function convertUrlForOStatus($url) { $parts = parse_url($url); $scheme = $parts['scheme'] . '://'; $styled_url = str_replace($scheme, '', $url); - $html = '' . - ''; - if (strlen($styled_url) > 30) { - $html .= '%s' . - ''; - - $ellipsis = substr($styled_url, 0, 30); - $rest = substr($styled_url, 30); - return sprintf($html, $url, $scheme, $ellipsis, $rest); - } else { - $html .= '%s'; - return sprintf($html, $url, $scheme, $styled_url); + $styled_url = substr($styled_url, 0, 30) . "…"; } - } - - /** - * @brief Shortens [url] BBCodes in a format that looks less ugly than the full address. (callback function) - * @param array $match Array with the matching values - * @return string reformatted link including HTML codes - */ - private static function shortenVisibleUrlCallback($match) - { - $url = $match[1]; - - if (isset($match[2]) && ($match[1] != $match[2])) { - return $match[0]; - } - - $parts = parse_url($url); - if (!isset($parts['scheme'])) { - return $match[0]; - } - - return self::shortenVisibleUrl($url); - } - - /** - * @brief Shortens [url] BBCodes in a format that looks less ugly than the full address. - * @param string $url URL that is about to be reformatted - * @return string reformatted link including HTML codes - */ - private static function shortenVisibleUrl($url) - { - $parts = parse_url($url); - $scheme = $parts['scheme'] . '://'; - $styled_url = str_replace($scheme, '', $url); - -// Currently deactivated, due to preview problems inside of Diaspora -// if (strlen($styled_url) > 30) { -// $styled_url = substr($styled_url, 0, 30) . "…"; -// } $html = '%s'; @@ -1501,11 +1452,8 @@ class BBCode $autolink_regex = "/([^\]\='".'"'."]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism"; $text = preg_replace($autolink_regex, '$1[url]$2[/url]', $text); if ($simple_html == 7) { - $text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism", 'self::convertUrlForMastodonCallback', $text); - $text = preg_replace_callback("/\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[\/url\]/ism", 'self::convertUrlForMastodonCallback', $text); - } else { - $text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism", 'self::shortenVisibleUrlCallback', $text); - $text = preg_replace_callback("/\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[\/url\]/ism", 'self::shortenVisibleUrlCallback', $text); + $text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism", 'self::convertUrlForOStatusCallback', $text); + $text = preg_replace_callback("/\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[\/url\]/ism", 'self::convertUrlForOStatusCallback', $text); } } else { $text = preg_replace("(\[url\]([$URLSearchString]*)\[\/url\])ism", " $1 ", $text);