diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index 968c9762cc..e22d493a0f 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -582,7 +582,37 @@ class acp_board continue; } - $config->set($config_name, $config_value); + // Array of emoji-enabled configurations + $config_name_ary = [ + 'sitename', + 'site_desc', + 'site_home_text', + 'board_index_text', + 'board_disable_msg', + ]; + + /** + * Event to manage the array of emoji-enabled configurations + * + * @event core.acp_board_config_emoji_enabled + * @var array config_name_ary Array of config names to process + * @since 3.3.3-RC1 + */ + $vars = ['config_name_ary']; + extract($phpbb_dispatcher->trigger_event('core.acp_board_config_emoji_enabled', compact($vars))); + + if (in_array($config_name, $config_name_ary)) + { + /** + * Replace Emojis and other 4bit UTF-8 chars not allowed by MySQL to UCR/NCR. + * Using their Numeric Character Reference's Hexadecimal notation. + */ + $config->set($config_name, utf8_encode_ucr($config_value)); + } + else + { + $config->set($config_name, $config_value); + } if ($config_name == 'allow_quick_reply' && isset($_POST['allow_quick_reply_enable'])) {