]> git.mxchange.org Git - friendica.git/commitdiff
Prevent alt text of emoji image tags to be converted to smilies in BBCode::convert
authorHypolite Petovan <hypolite@mrpetovan.com>
Thu, 31 Dec 2020 03:23:58 +0000 (22:23 -0500)
committerHypolite Petovan <hypolite@mrpetovan.com>
Thu, 31 Dec 2020 03:23:58 +0000 (22:23 -0500)
src/Content/Text/BBCode.php

index ea818d7f31c2511fd36d8f5f393d9f122bf137c9..25812db61c0ea2472df52c029a0ae21cf20fe065 100644 (file)
@@ -1393,6 +1393,16 @@ class BBCode
                                        $text = self::convertAttachment($text, $simple_html, $try_oembed);
                                }
 
+                               $nosmile = strpos($text, '[nosmile]') !== false;
+                               $text = str_replace('[nosmile]', '', $text);
+
+                               // Replace non graphical smilies for external posts
+                               if (!$nosmile && !$for_plaintext) {
+                                       $text = self::performWithEscapedTags($text, ['img'], function ($text) {
+                                               return Smilies::replace($text);
+                                       });
+                               }
+
                                // leave open the posibility of [map=something]
                                // this is replaced in Item::prepareBody() which has knowledge of the item location
                                if (strpos($text, '[/map]') !== false) {
@@ -1506,11 +1516,6 @@ class BBCode
                                        });
                                }
 
-                               // This is actually executed in Item::prepareBody()
-
-                               $nosmile = strpos($text, '[nosmile]') !== false;
-                               $text = str_replace('[nosmile]', '', $text);
-
                                // Check for font change text
                                $text = preg_replace("/\[font=(.*?)\](.*?)\[\/font\]/sm", "<span style=\"font-family: $1;\">$2</span>", $text);
 
@@ -1683,13 +1688,6 @@ class BBCode
                                        $text = preg_replace("/\[event\-id\](.*?)\[\/event\-id\]/ism", '', $text);
                                }
 
-                               // Replace non graphical smilies for external posts
-                               if (!$nosmile && !$for_plaintext) {
-                                       $text = self::performWithEscapedTags($text, ['img'], function ($text) {
-                                               return 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