]> git.mxchange.org Git - friendica.git/blobdiff - src/Content/Smilies.php
Merge pull request #7575 from nupplaphil/bug/friendica-7299
[friendica.git] / src / Content / Smilies.php
index 902395997835cd3becc5decb37d10ee6162d5271..2bf232d090464bcfb3f52ce01736e495978ef798 100644 (file)
@@ -213,8 +213,8 @@ class Smilies
                        return $text;
                }
 
-               $text = preg_replace_callback('/<pre>(.*?)<\/pre>/ism'  , 'self::encode', $text);
-               $text = preg_replace_callback('/<code>(.*?)<\/code>/ism', 'self::encode', $text);
+               $text = preg_replace_callback('/<(pre)>(.*?)<\/pre>/ism', 'self::encode', $text);
+               $text = preg_replace_callback('/<(code)>(.*?)<\/code>/ism', 'self::encode', $text);
 
                if ($no_images) {
                        $cleaned = ['texts' => [], 'icons' => []];
@@ -231,8 +231,8 @@ class Smilies
                $text = preg_replace_callback('/&lt;(3+)/', 'self::pregHeart', $text);
                $text = self::strOrigReplace($smilies['texts'], $smilies['icons'], $text);
 
-               $text = preg_replace_callback('/<pre>(.*?)<\/pre>/ism', 'self::decode', $text);
-               $text = preg_replace_callback('/<code>(.*?)<\/code>/ism', 'self::decode', $text);
+               $text = preg_replace_callback('/<(code)>(.*?)<\/code>/ism', 'self::decode', $text);
+               $text = preg_replace_callback('/<(pre)>(.*?)<\/pre>/ism', 'self::decode', $text);
 
                return $text;
        }
@@ -244,7 +244,7 @@ class Smilies
         */
        private static function encode($m)
        {
-               return(str_replace($m[1], Strings::base64UrlEncode($m[1]), $m[0]));
+               return '<' . $m[1] . '>' . Strings::base64UrlEncode($m[2]) . '</' . $m[1] . '>';
        }
 
        /**
@@ -255,7 +255,7 @@ class Smilies
         */
        private static function decode($m)
        {
-               return(str_replace($m[1], Strings::base64UrlDecode($m[1]), $m[0]));
+               return '<' . $m[1] . '>' . Strings::base64UrlDecode($m[2]) . '</' . $m[1] . '>';
        }
 
 
@@ -267,17 +267,18 @@ class Smilies
         * @return string HTML Output
         *
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
-        * @todo  : Rework because it doesn't work correctly
         */
        private static function pregHeart($x)
        {
                if (strlen($x[1]) == 1) {
                        return $x[0];
                }
+
                $t = '';
                for ($cnt = 0; $cnt < strlen($x[1]); $cnt ++) {
-                       $t .= '<img class="smiley" src="' . System::baseUrl() . '/images/smiley-heart.gif" alt="&lt;3" />';
+                       $t .= '';
                }
+
                $r =  str_replace($x[0], $t, $x[0]);
                return $r;
        }