Странный коммит в minishop2

Добрый день!

Не знаю кому написать и как быть с этой проблемкой, но суть такая, что при вводе в оформлении заказа в поле receiver русские символы, то minishop2 пытается сохранить в таком виде � � � � � �.

После долгих копаний наше обновление в функции валидации в файле core/components/minishop2/model/minishop2/msorderhandler.class.php с 211 строки.

// Transforms string from "nikolaj -  coster--Waldau jr." to "Nikolaj Coster-Waldau Jr."
$tmp = preg_replace(
    array('/[^-a-zа-яёґєіїўäëïöüçàéèîôû\s\.\'’ʼ`"]/iu', '/\s+/', '/\-+/', '/\.+/', '/[\'’ʼ`"]/iu', '/\'+/'),
    array('', ' ', '-', '.', '\'', '\''),
    $value
);
Нашел на гитхабе Pull requests от achterbahn , где ранее валидация была по такому правилу:
array('/[^-a-zа-яёЁ\s\.]/iu', '/\s+/', '/\-+/', '/\.+/'),
Кто то может подсказать как это обновление должно работать или это просто баг и ждать исправления?
Артем
07 ноября 2018, 10:40
modx.pro
709
0

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

Илья Уткин
07 ноября 2018, 10:49
0
Ваша проблема напоминает неверную кодировку базы данных (или конкретных таблиц). А коммит просто добавляет возможность использовать диактрические символы в имени покупателя.
    Артем
    07 ноября 2018, 10:53
    0
    Проверил этот момент, все таблицы utf8_general_ci
      Артем
      07 ноября 2018, 11:11
      0
      Портит русские символы вот эта конструкция в той функции:
      if ($key != 'comment') {
          $value = preg_replace('/\s+/', ' ', trim($value));
      }
      как будто маркер /u забыли
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3