Программная регистрация пользователя в 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);