]> git.mxchange.org Git - friendica.git/blobdiff - src/Content/Text/BBCode.php
issue 8642: Make hashtags more compatible
[friendica.git] / src / Content / Text / BBCode.php
index 84930cccc01fccbe178e3ad4961ae55bed3c8c25..98c1552930d702c504067218b8c822282d350965 100644 (file)
@@ -1801,12 +1801,16 @@ class BBCode
                 * - #[url=<anything>]<term>[/url]
                 * - [url=<anything>]#<term>[/url]
                 */
-               $text = preg_replace_callback("/(?:#\[url\=[^\[\]]*\]|\[url\=[^\[\]]*\]#)(.*?)\[\/url\]/ism", function($matches) {
-                       return '#<a href="'
-                               . DI::baseUrl() . '/search?tag=' . rawurlencode($matches[1])
-                               . '" class="tag" rel="tag" title="' . XML::escape($matches[1]) . '">'
-                               . XML::escape($matches[1])
-                               . '</a>';
+               $text = preg_replace_callback("/(?:#\[url\=[^\[\]]*\]|\[url\=[^\[\]]*\]#)(.*?)\[\/url\]/ism", function($matches) use ($simple_html) {
+                       if ($simple_html == BBCode::ACTIVITYPUB) {
+                               return '<a href="' . DI::baseUrl() . '/search?tag=' . rawurlencode($matches[1])
+                                       . '" data-tag="' . XML::escape($matches[1]) . '" rel="tag ugc">#'
+                                       . XML::escape($matches[1]) . '</a>';
+                       } else {
+                               return '#<a href="' . DI::baseUrl() . '/search?tag=' . rawurlencode($matches[1])
+                                       . '" class="tag" rel="tag" title="' . XML::escape($matches[1]) . '">'
+                                       . XML::escape($matches[1]) . '</a>';
+                       }
                }, $text);
 
                // We need no target="_blank" rel="noopener noreferrer" for local links
@@ -2035,7 +2039,7 @@ class BBCode
 
                // Convert it to HTML - don't try oembed
                if ($for_diaspora) {
-                       $text = self::convert($text, false, 3);
+                       $text = self::convert($text, false, self::DIASPORA);
 
                        // Add all tags that maybe were removed
                        if (preg_match_all("/#\[url\=([$url_search_string]*)\](.*?)\[\/url\]/ism", $original_text, $tags)) {
@@ -2049,7 +2053,7 @@ class BBCode
                                $text = $text . " " . $tagline;
                        }
                } else {
-                       $text = self::convert($text, false, 4);
+                       $text = self::convert($text, false, self::CONNECTORS);
                }
 
                // If a link is followed by a quote then there should be a newline before it