Программная регистрация пользователя в Joomla 2.5 и выше
Небольшая заметка о том как выполнить программную регистрацию пользователя в CMS Joomla
Бывают случаи что нам необходимо написать свою прослойку для регистрации пользователя! Например мы хотим сделать AJAX регистрацию и отдавать определенные ответы при ошибках, стандартный компонент для этого не подойдет так как он работает немножко по другому, и лучше написать свой небольшой компонент в котором будет реализована регистрация чем править код CMS!
Возможно нужно сделать импорт пользователей из одной CMS в другую, или массовое создание определенных пользователей!
Итак регистрация выполняется очень просто буквально в четыре строки кода:
Для начала нам нужно создать массив с данными нового пользователя:
$userData = array( 'name' => 'Имя нового пользователя',
'username' => 'Логин нового пользователя',
'password' => 'Пароль',
'password2' => 'Пароль', //в этом поле должно быть подтверждение пароль
'email' => 'E-mail пользователя',
'groups' => array( 2 ) // в массиве через запятую перечисляют идентификаторы групп в которых состоит пользователь
);
Далее мы создаем объект класса JUser:
$user = new JUser;
Заносим данные:
$user->bind( $userData );
И сохраняем пользователя:
$user->save();
Метод $user->save(); вернет true если пользователь успешно зерегестрирован, и false в случае ошибки регистрации
Полный код нашего скрипта:
$user = new JUser;
$userData = array( 'name' => 'Вася Пупкин',
'username' => 'VasyaPupkin',
'password' => 'passord1234',
'password2' => 'passord1234',
'email' => 'vasyapupkin@inet-reklama.com',
'groups' => array( 2 )
);
$user->bind( $userData );
if ( $user->save() ) {
$new_user_id = $user->get('id');
}
else
{
JError::raiseWarning('', JText::_( $user->getError()));
return false;
}
Пользователя можно добавить в группу с помощь хелпера JUserHelper.
$userid = $user->get('id');
JUserHelper::addUserToGroup($userid, 2);