Поле extended ломает профиль юзера

Доброго времени. Удивительную вещь заметил — стоит сохранить в любом расширенном поле имя отчество (пробовал только со своим) — мой профиль перестает загружаться. Причем это происходит, если сохранять программно или через админку.
Как-то так выглядит.

$user = $modx->getObject('modUser',['id'=>1])->Profile;
$ext = $user->get('extended');;
$ext['surname'] = 'Ант Владимирович';
print_r($ext);
$user->set('extended',$ext);
$user->save();
Ан Владимирович — все ок, Антон Владимиро тоже, а вот Антон Владимиров уже ломает профиль. И дело не в длине сохраняемой строки. Чисто принт-эром нашел, что все ломается где-то здесь, в _parseCustomData

github.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;
    }
Меня сильно попросили добавить кой-чего в старый сайт и вот такая беда. Я конечно выкручюсь, свою таблицу там создам или типа того, но что это в принципе может быть за напасть?
Антон Соловьёв
05 февраля 2017, 09:35
modx.pro
871
0

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

Алексей Ерохин
05 февраля 2017, 14:11
+1
substr против mb_substr(в новой версии), просто ломается UTF-8 последовательность, и из-за этого ломается JS в админке
    Антон Соловьёв
    05 февраля 2017, 14:31
    0
    Спасибо. Решать теперь как это лучше пофиксить — то ли просто substr на mb_substr заменить, то ли правда что user_attributes своими полями расширить, а extended забить… Ну, это уж риторичный вопрос.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2