Русский язык в PDOtools WHERE
[[!pdoUsers?
&sortdir=`DESC`
&tpl=`user`
&where=`{"`modUserProfile`.`extended`:LIKE":"%\"callsign\":\"РУССКИЙ ЯЗЫК\"%"}`
]]строка в базе{"callsign":"\u041f\u0440\u0438\u0432\u0435\u0442"}Не выводит ничего. Как исправить? Комментарии: 6
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
тобишь доп поле callsign он записывает в базу прям как есть
вместо того чтобы перевести в русский и хранить в базе на понятном языке
Теперь образовалась проблема как сделать запрос LIKE с русским
или
как научить modx декодировать и записывать в базу уже в нормальном виде русский
Возможность кодирования UTF-8 в JSON без экранирования появилась только в PHP 5.4, когда MODX Revolution уже во всю работал. Естественно, никто не будет увеличивать минимальную версию PHP для MODX только ради этой функции.
Выходит, что никак.
Но можно хранить эти данные в modUserSetting в виде key => value или создать отдельную таблицу.
Сниппет convertWhere
Не тестировал. По идее должен работать.
НО есть особенность,
при вызове pdoUsers с параметром return sql то в тексте лайк автоматом становится обычный UTF8 понятный глазу (((
запрос типа
невозможен ибо происходит перекодировка налету до обращения к базе
Это наверное не реал осуществлять поиск русского текста в доп полях пользователя.
Хотя у вас опыта больше может и сможете помочь, а моих знаний не хватает.
Как то делают связанную таблицу но я не соображу как это делать, где бы была инструкция я бы с удовольствием повторил