Небольшая заметка о том как выполнить программную регистрацию пользователя в 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);