Странный коммит в minishop2
Добрый день!
Не знаю кому написать и как быть с этой проблемкой, но суть такая, что при вводе в оформлении заказа в поле receiver русские символы, то minishop2 пытается сохранить в таком виде � � � � � �.
После долгих копаний наше обновление в функции валидации в файле core/components/minishop2/model/minishop2/msorderhandler.class.php с 211 строки.
Не знаю кому написать и как быть с этой проблемкой, но суть такая, что при вводе в оформлении заказа в поле 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+/', '/\-+/', '/\.+/'),
Кто то может подсказать как это обновление должно работать или это просто баг и ждать исправления? Комментарии: 3
Ваша проблема напоминает неверную кодировку базы данных (или конкретных таблиц). А коммит просто добавляет возможность использовать диактрические символы в имени покупателя.
Проверил этот момент, все таблицы utf8_general_ci
Портит русские символы вот эта конструкция в той функции:
if ($key != 'comment') {
$value = preg_replace('/\s+/', ' ', trim($value));
}
как будто маркер /u забыли
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.