]> git.mxchange.org Git - friendica.git/blobdiff - src/Content/Text/BBCode.php
Merge pull request #8657 from MrPetovan/bug/8653-catch-template-engine-errors
[friendica.git] / src / Content / Text / BBCode.php
index 61b71743cbaaa46ff047614150497e851c3f401f..67dbe3b19aa05a3e347f0d9cb6c170a5e4e46425 100644 (file)
@@ -1724,7 +1724,15 @@ class BBCode
 
                // Replace non graphical smilies for external posts
                if (!$nosmile && !$for_plaintext) {
-                       $text = Smilies::replace($text);
+                       $text = Smilies::replace($text);                        
+               }
+
+               if (!$for_plaintext && DI::config()->get('system', 'big_emojis') && ($simple_html != self::DIASPORA)) {
+                       $conv = html_entity_decode(str_replace([' ', "\n", "\r"], '', $text));
+                       // Emojis are always 4 byte Unicode characters
+                       if (!empty($conv) && (strlen($conv) / mb_strlen($conv) == 4)) {
+                               $text = '<span style="font-size: xx-large; line-height: initial;">' . $text . '</span>';
+                       }
                }
 
                if (!$for_plaintext) {
@@ -1801,12 +1809,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