Запись строки с Emoji в MODx

Здравствуйте. Очередной вопрос ) Извините если дурацкий, я так себе программист.
Как в поле content записать строку с emoji смайликами? то есть если я строку чищу от этих смайликов, вот такой функцией:
public static function removeEmoji($text) {
        // Match Emoticons
        $regexEmoticons = '/[\x{1F600}-\x{1F64F}]/u';
        $clean_text = preg_replace($regexEmoticons, '', $text);

        // Match Miscellaneous Symbols and Pictographs
        $regexSymbols = '/[\x{1F300}-\x{1F5FF}]/u';
        $clean_text = preg_replace($regexSymbols, '', $clean_text);

        // Match Transport And Map Symbols
        $regexTransport = '/[\x{1F680}-\x{1F6FF}]/u';
        $clean_text = preg_replace($regexTransport, '', $clean_text);

        // Match Miscellaneous Symbols
        $regexMisc = '/[\x{2600}-\x{26FF}]/u';
        $clean_text = preg_replace($regexMisc, '', $clean_text);

        // Match Dingbats
        $regexDingbats = '/[\x{2700}-\x{27BF}]/u';
        $clean_text = preg_replace($regexDingbats, '', $clean_text);

        return $clean_text;
    }
то строка в content пишется.

Пока что вот такое code.iamcal.com/php/emoji/ решение нарыл, можно прикрутить. Но может что то проще есть?
Михаил
10 декабря 2016, 13:33
modx.pro
1
3 155
0

Комментарии: 7

Михаил
10 декабря 2016, 17:58
0
В общем, это решение code.iamcal.com/php/emoji/ заработало нормально. Смайлики эмоджи заменяются на html, дальше через стили оформляешь на сайта.
    Дмитрий Иванов
    10 декабря 2016, 20:46
    0
    Странно, а почему они вырезаются? ✌
      Дмитрий Иванов
      11 декабря 2016, 02:01
      0
      Хм, прикольно, emoji просто обрезают сообщения после сеья, при этом если тег открылся до них, то открывающий тег остается а закрывающего нет и ломается разметка. На этом сайте в частности)
        Николаевич
        23 апреля 2017, 16:28
        0
        Странно, что проблема в тикетах до сих пор осталась. У меня на сайте 10% всех комментариев были обрезанными из-за этих эмодзи
          Дмитрий Иванов
          23 апреля 2017, 16:40
          0
          Проблема на самом деле не в тикетах, а в кодировке базы данных, которая не поддерживает 4 и выше байт в юникоде. Я писал плагины, которые запрещают постить юникод больше 3-х байт.
            Николаевич
            23 апреля 2017, 17:46
            0
            ИМХО проще вырезать их в плагине
            switch ($modx->event->name) {
                case 'OnBeforeCommentSave':
                    $text = preg_replace('/[[:^print:]]/', '', $_POST['text']);
                	$modx->event->params['TicketComment']->set('text', $text);
                break;
            
                case 'OnBeforeDocFormSave':
                    $content = preg_replace('/[[:^print:]]/', '', $resource->content);
                	$resource->set('content', $content);
                break;
            }
              Дмитрий Иванов
              23 апреля 2017, 18:24
              0
              Заменять на пустоту может быть потенциально опасно
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      7