1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-07 01:06:48 +02:00

Merge pull request #5802 from 3D-I/ticket/16279

[ticket/16279] Add permission for Emoji in topic title
This commit is contained in:
Marc Alexander
2020-01-02 09:59:25 +01:00
6 changed files with 63 additions and 12 deletions

View File

@@ -1184,21 +1184,24 @@ if ($submit || $preview || $refresh)
/**
* Replace Emojis and other 4bit UTF-8 chars not allowed by MySQL to UCR/NCR.
* Using their Numeric Character Reference's Hexadecimal notation.
* Check the permissions for posting Emojis first.
*/
$post_data['post_subject'] = utf8_encode_ucr($post_data['post_subject']);
/**
* This should never happen again.
* Leaving the fallback here just in case there will be the need of it.
*
* Check for out-of-bounds characters that are currently
* not supported by utf8_bin in MySQL
*/
if (preg_match_all('/[\x{10000}-\x{10FFFF}]/u', $post_data['post_subject'], $matches))
if ($auth->acl_get('u_emoji'))
{
$character_list = implode('<br>', $matches[0]);
$post_data['post_subject'] = utf8_encode_ucr($post_data['post_subject']);
}
else
{
/**
* Check for out-of-bounds characters that are currently
* not supported by utf8_bin in MySQL
*/
if (preg_match_all('/[\x{10000}-\x{10FFFF}]/u', $post_data['post_subject'], $matches))
{
$character_list = implode('<br>', $matches[0]);
$error[] = $user->lang('UNSUPPORTED_CHARACTERS_SUBJECT', $character_list);
$error[] = $user->lang('UNSUPPORTED_CHARACTERS_SUBJECT', $character_list);
}
}
$post_data['poll_last_vote'] = (isset($post_data['poll_last_vote'])) ? $post_data['poll_last_vote'] : 0;