Дополнительные поля при регистрации через
        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.
                    Регистрация на сайте через 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;
                    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;
                Просто при регистрации буду использовать свой сниппет, а профилем пользоваться от Office :)
Всем спасибо)
                    Всем спасибо)
                Ну, можно и так.            
                    
                Василий, а подскажи, я могу при регистрации в office добавить например поле телефон, вроде как стандартное? Или скажи пожалуйста в какую сторону посмотреть. Спасибо!            
                    
                В сторону добавления input с name=«phone» в форму и разрешения его заполнять в параметре сниппета.            
                    
                Да поле я именно так и добавил, а вот параметра на разрешение не нашел, в officeAuth его вроде нет. Или я что то не понял. 
Сам сниппет я вызываю так
                    Сам сниппет я вызываю так
[[!officeAuth? loginResourceId=`33`  &tplLogin=`tpl.Office.auth.login_my_reg`]]            
                А, туплю.
При регистрации ничего нельзя, можно при редактировании профиля.
                    При регистрации ничего нельзя, можно при редактировании профиля.
                А, спасибо!!! Буду думать…            
                    
                Office сделан так, чтобы зарегистрироваться можно было очень быстро, а потом уже требовать всякие нужные данные — в редактировании профиля.            
                    
                Здравствуйте, Василий. А что делать если нужно добавить капчу или скрытое поле с проверкой на пустоту от спама ботов?            
                    
                Не нашел для себя ответа нормального потому просто оставлю это здесь:
1) Создаем поле вот такого типа
3) Ищем метод «formRegister», и в ней добавляем поле extended, должно получиться вот так:
                    1) Создаем поле вот такого типа
<input type="text" name="extended[organization_name]">2) Ищем файл \core\components\office\controllers\auth.class.php3) Ищем метод «formRegister», и в ней добавляем поле extended, должно получиться вот так:
return $this->_createUser(array(
            'username' => $username,
            'email' => $email,
            'mobilephone' => $mobilephone,
            'password' => $password,
            'fullname' => $fullname,
            'extended' => @json_encode($data['extended']) // вот об этой строке речь
        ));4) Дальше ищем метод в том же файле "_createUser" и правим переменную $parramsif (empty($data['extended'])) { // тоже будет не лишним, но добавлять не обязательно
       $data['extended'] = '[]';
}
$params = array(
            'username' => $data['username'],
            'fullname' => $data['fullname'],
            'mobilephone' => $data['mobilephone'],
            'email' => $data['email'],
            'extended' => $data['extended'], // добавляем эту строку
            'active' => !$this->modx->getOption('office_auth_activation'),
            'blocked' => false,
            'groups' => $this->config['groups'],
        );5) Проверяем и радуемся            
                P.S. Кто-то выше писал, что это невозможно, а оказалось что для счастья нужны лишь две строчки.            
                    
                Имейте в виду, что во время ближайшего обновления, эти строчки затрутся.            
                    
                Если я правильно понимаю, для этого нужно принудительно нажать на кнопку «обновить»            
                    
                ага            
                    
                Выходит тоже решение, просто не полноценное.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.