Поле extended ломает профиль юзера
Доброго времени. Удивительную вещь заметил — стоит сохранить в любом расширенном поле имя отчество (пробовал только со своим) — мой профиль перестает загружаться. Причем это происходит, если сохранять программно или через админку.
Как-то так выглядит.
github.com/modxcms/revolution/blob/2.x/manager/controllers/default/security/user/update.class.php#L119
но вот тока версия у меня 2.3.3 и код иначе выглядит.
Как-то так выглядит.
$user = $modx->getObject('modUser',['id'=>1])->Profile;
$ext = $user->get('extended');;
$ext['surname'] = 'Ант Владимирович';
print_r($ext);
$user->set('extended',$ext);
$user->save();
Ан Владимирович — все ок, Антон Владимиро тоже, а вот Антон Владимиров уже ломает профиль. И дело не в длине сохраняемой строки. Чисто принт-эром нашел, что все ломается где-то здесь, в _parseCustomDatagithub.com/modxcms/revolution/blob/2.x/manager/controllers/default/security/user/update.class.php#L119
но вот тока версия у меня 2.3.3 и код иначе выглядит.
private function _parseCustomData(array $remoteData = array(),$path = '') {
$fields = array();
foreach ($remoteData as $key => $value) {
$field = array(
'name' => $key,
'id' => (!empty($path) ? $path.'.' : '').$key,
);
if (is_array($value)) {
$field['iconCls'] = 'icon-folder';
$field['text'] = $key;
$field['leaf'] = false;
$field['children'] = $this->_parseCustomData($value,$key);
} else {
$v = $value;
if (strlen($v) > 30) { $v = substr($v,0,30).'...'; }
$field['iconCls'] = 'icon-terminal';
$field['text'] = $key.' - <i>'.$v.'</i>';
$field['leaf'] = true;
$field['value'] = $value;
}
$fields[] = $field;
}
return $fields;
}
Меня сильно попросили добавить кой-чего в старый сайт и вот такая беда. Я конечно выкручюсь, свою таблицу там создам или типа того, но что это в принципе может быть за напасть? Комментарии: 2
substr против mb_substr(в новой версии), просто ломается UTF-8 последовательность, и из-за этого ломается JS в админке
Спасибо. Решать теперь как это лучше пофиксить — то ли просто substr на mb_substr заменить, то ли правда что user_attributes своими полями расширить, а extended забить… Ну, это уж риторичный вопрос.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.