Регистрация user через процессоры (formit)
Привет,
Сталкнулся с такой проблемой. При регистрации пользователя из фронтенда, не записывается информация в кастомные поля modUserProfile из под ананимного профиля.
Подключаюсь к процессору так:
Сталкнулся с такой проблемой. При регистрации пользователя из фронтенда, не записывается информация в кастомные поля modUserProfile из под ананимного профиля.
Подключаюсь к процессору так:
<?php
require_once MODX_CORE_PATH.'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService('error', 'error.modError', '', '');
// Массив с данными пользователя
$tel = $hook->getValue('phone');
$chars = ['+','(',')','-']; // символы для удаления
$tel = str_replace($chars, '', $tel);
$dobo = $hook->getValue('birth_at');
list($d, $m, $Y) = explode(".", $dobo);
$pasDate = $hook->getValue('datePassport');
$pasDate = strtotime($pasDate);
function filtr($parametr,$date = '-'){
$filtr = str_replace($date, '', $parametr);
return $filtr;
}
$groups = [
'Users' => [
'usergroup' => '2', // id группы Users
'role' => '1' // id роли Member
]
];
$data = array(
'username'=>$tel,
'groups' => $groups,
'fullname'=>$hook->getValue('last')." ".$hook->getValue('first')." ".$hook->getValue('patronymic'),
'email'=>$hook->getValue('email'),
'mobilephone'=>$hook->getValue('phone'),
'dob' => $Y.'/'.$m.'/'.$d,
'ip' => $_SERVER['REMOTE_ADDR'],
// Прописка
'zip'=>$hook->getValue('zip'),
'state'=>$hook->getValue('region'),
'city'=>$hook->getValue('city'),
'street'=>$hook->getValue('street'),
'building'=>$hook->getValue('building'),
'apartment'=>$hook->getValue('apartment'),
// Паспорт
'pasSeriaNumber'=>filtr($hook->getValue('passport'),' '),
'pasDate'=>$pasDate,
'pasCod'=>filtr($hook->getValue('unitCod')),
'pasWho'=>$hook->getValue('passportLocal'),
'pasPlace'=>$hook->getValue('birthplace'),
'pdDate'=>time(),
'active' => true,
'passwordnotifymethod' => 'e'
);
// запуск процессора
$response = $modx->runProcessor('/security/user/create', $data);
// если есть ошибки выводим ошибки, если нет то пользователь зарегистрирован
if ($response->isError()) {
$modx->log(modX::LOG_LEVEL_ERROR, 'login error. Username: '.$username.', Message: '.$response->getMessage());
}
Подскажите светлые умы, что нужно сделать чтоб записывалось в кастомные поля? Комментарии: 2
А кастомные поля вы как создали? Просто добавили в БД?
Вы должны также сообщить о них самому Modx. Можете воспользоваться этим гайдом. Если не нужно отрисовывать поля в админке, то достаточно одного события OnMODXInit
Вы должны также сообщить о них самому Modx. Можете воспользоваться этим гайдом. Если не нужно отрисовывать поля в админке, то достаточно одного события OnMODXInit
Кастомные поля созданы с помощью компанента ExtraFields.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.