Дополнительные поля при регистрации через
Office — Универсальный личный кабинет, вопрос в том как в нем добавить дополнительные поля при регистрации которые отображались бы в последствии в профиле
Знаю что можно делать таким способом
Понимаю что могу добавить туда доп поля, но как это сделать чтобы записывалось в базу если вызывается процессор auth/create, который в свою очередь работает только с
require MODX_CORE_PATH. 'model/modx/processors/security/user/create.class.php';
Мне получается в $response надо добавить свой элемент верно? Если в чем то не прав, объясните принцип работы.
Заранее благодарен.
Знаю что можно делать таким способом
$userID = $modx->user->get('id');
$user = $modx->getObject('modUser', $userID);
$profile = $user->getOne('Profile');
$extended = $profile->get('extended');
if($extended['myDocuments']==''){
$extended['myDocuments'] = $newResource['id'];
}else{
$extended['myDocuments'] = $extended['myDocuments'].','.$newResource['id'];
};
$profile->set('extended', $extended);
$profile->save();Вопрос в том что просматривая /core/components/office/controllers/auth.class.php нашел только это $response = $this->office->runProcessor('auth/create', array(
'username' => $username,
'fullname' => $fullname,
'email' => $email,
'active' => false,
'blocked' => false,
'groups' => $this->config['groups'],
));в функции protected function _createUser($email, $username = '', $password = '', $fullname = '')Понимаю что могу добавить туда доп поля, но как это сделать чтобы записывалось в базу если вызывается процессор auth/create, который в свою очередь работает только с
require MODX_CORE_PATH. 'model/modx/processors/security/user/create.class.php';
Мне получается в $response надо добавить свой элемент верно? Если в чем то не прав, объясните принцип работы.
Заранее благодарен.
Комментарии: 19
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Регистрация на сайте через Office максимально быстрая — нужен только email.
Разве что плагином на сохранение юзера.
UDP: Вот тут officeAuth
case 'OnUserSave':
if (!empty($user) && !empty($mode) && $mode == 'new') {
if (!$user->get('remote_key')) {
$user->set('remote_key', $user->get('id'));
$user->save();
}
}
break;
Всем спасибо)
Сам сниппет я вызываю так
При регистрации ничего нельзя, можно при редактировании профиля.
1) Создаем поле вот такого типа
2) Ищем файл \core\components\office\controllers\auth.class.php
3) Ищем метод «formRegister», и в ней добавляем поле extended, должно получиться вот так:
4) Дальше ищем метод в том же файле "_createUser" и правим переменную $parrams
5) Проверяем и радуемся