|
17 | 17 |
|
18 | 18 | use SMF\Cache\CacheApi; |
19 | 19 | use SMF\Db\DatabaseApi as Db; |
| 20 | +use SMF\Parsers\SmileyParser; |
20 | 21 |
|
21 | 22 | /** |
22 | 23 | * Creates the editor input box so that people can write messages to post. |
@@ -784,34 +785,38 @@ protected function buildSmileysToolbar(): void |
784 | 785 |
|
785 | 786 | Utils::$context['smileys'] = &self::$smileys_toolbar; |
786 | 787 |
|
787 | | - if (User::$me->smiley_set != 'none') { |
788 | | - // Cache for longer when customized smiley codes aren't enabled |
789 | | - $cache_time = empty(Config::$modSettings['smiley_enable']) ? 7200 : 480; |
| 788 | + if (empty(User::$me->smiley_set) || User::$me->smiley_set === 'none') { |
| 789 | + return; |
| 790 | + } |
790 | 791 |
|
791 | | - if (($temp = CacheApi::get('posting_smileys_' . User::$me->smiley_set, $cache_time)) == null) { |
792 | | - $request = Db::$db->query( |
793 | | - 'SELECT s.code, f.filename, s.description, s.smiley_row, s.hidden |
794 | | - FROM {db_prefix}smileys AS s |
795 | | - JOIN {db_prefix}smiley_files AS f ON (s.id_smiley = f.id_smiley) |
796 | | - WHERE s.hidden IN (0, 2) |
797 | | - AND f.smiley_set = {string:smiley_set}' . (empty(Config::$modSettings['smiley_enable']) ? ' |
798 | | - AND s.code IN ({array_string:default_codes})' : '') . ' |
799 | | - ORDER BY s.smiley_row, s.smiley_order', |
800 | | - [ |
801 | | - 'default_codes' => ['>:D', ':D', '::)', '>:(', ':))', ':)', ';)', ';D', ':(', ':o', '8)', ':P', '???', ':-[', ':-X', ':-*', ':\'(', ':-\\', '^-^', 'O0', 'C:-)', 'O:-)'], |
802 | | - 'smiley_set' => User::$me->smiley_set, |
803 | | - ], |
804 | | - ); |
| 792 | + // Cache for longer when customized smiley codes aren't enabled |
| 793 | + $cache_time = empty(Config::$modSettings['smiley_enable']) ? 7200 : 480; |
805 | 794 |
|
806 | | - while ($row = Db::$db->fetch_assoc($request)) { |
807 | | - self::$smileys_toolbar[] = $row; |
808 | | - } |
809 | | - Db::$db->free_result($request); |
810 | | - CacheApi::put('posting_smileys_' . User::$me->smiley_set, self::$smileys_toolbar, $cache_time); |
811 | | - } else { |
812 | | - self::$smileys_toolbar = $temp; |
813 | | - } |
| 795 | + if (($temp = CacheApi::get('posting_smileys_' . User::$me->smiley_set, $cache_time)) !== null && \is_array($temp)) { |
| 796 | + self::$smileys_toolbar = $temp; |
| 797 | + |
| 798 | + return; |
| 799 | + } |
| 800 | + |
| 801 | + $request = Db::$db->query( |
| 802 | + 'SELECT s.code, f.filename, s.description, s.smiley_row, s.hidden |
| 803 | + FROM {db_prefix}smileys AS s |
| 804 | + JOIN {db_prefix}smiley_files AS f ON (s.id_smiley = f.id_smiley) |
| 805 | + WHERE s.hidden IN (0, 2) |
| 806 | + AND f.smiley_set = {string:smiley_set}' . (empty(Config::$modSettings['smiley_enable']) ? ' |
| 807 | + AND s.code IN ({array_string:default_codes})' : '') . ' |
| 808 | + ORDER BY s.smiley_row, s.smiley_order', |
| 809 | + [ |
| 810 | + 'default_codes' => SmileyParser::$default_set, |
| 811 | + 'smiley_set' => User::$me->smiley_set, |
| 812 | + ], |
| 813 | + ); |
| 814 | + |
| 815 | + while ($row = Db::$db->fetch_assoc($request)) { |
| 816 | + self::$smileys_toolbar[] = $row; |
814 | 817 | } |
| 818 | + Db::$db->free_result($request); |
| 819 | + CacheApi::put('posting_smileys_' . User::$me->smiley_set, self::$smileys_toolbar, $cache_time); |
815 | 820 | } |
816 | 821 |
|
817 | 822 | /** |
|
0 commit comments