Регистрирую пользователей через PhpMyAdmin. Встал вопрос что писать в gid. gid в таблице jos_users должен ли быть уникальным? И надо gid прописывать в других таблицах?
optiqus, гид - это группа пользователя, юзверь, менеджер, админ, суперадмин. Если мне не изменяет папять, то 18 - обычные юзвери, 25 - суперадмин, 23 - менеджер, 19 - авторы
Есть ещё вопрос. Добавил в таблицу jos_users через SQL-запрос несколько пользователей. Но в админке отображается только один из пользователей, почему? У всех пользователей уникальный ID, ник, имя, е-мейл. Одинаковый пароль, gid, дата регистрации и дата последнего входа. Пробовал импорт SQL файла в разных кодировках, мало ли... у меня больше нет идей.
Создание юзера - это создание по одной записи в каждой из таблиц jos_acl_*. Проще всего посмотреть код компонента регистрации и чего он там и куда вставляет.
Что бы качественно создать нового юзера нужно всего лишь желание Код (PHP): //тут, я думаю, все понятно ) $user = clone(JFactory::getUser()); $authorize =& JFactory::getACL(); $usersConfig = &JComponentHelper::getParams( 'com_users' ); //получаем дефолтную группу при регистрации $newUsertype = $usersConfig->get( 'new_usertype' ); if (!$newUsertype) { $newUsertype = 'Registered'; } //проверяем, все ли в порядке if (!$user->bind( JRequest::get('post'), 'usertype' )) { JError::raiseError( 500, $user->getError()); } //заполняем объект $user->set('id', 0); // ид = 0, т.к. в БД стоит инкремент $user->set('usertype', $newUsertype); //уставливаем тип пользователя $user->set('gid', $authorize->get_group_id( '', $newUsertype, 'ARO' )); // группу $date =& JFactory::getDate(); $user->set('registerDate', $date->toMySQL()); // дату $useractivation = $usersConfig->get( 'useractivation' ); //если у Вас в настройках стоит активация юзеров админом, то нужно заблокировать новую запись if ($useractivation == '1') { jimport('joomla.user.helper'); $user->set('activation', JUtility::getHash( JUserHelper::genRandomPassword()) ); $user->set('block', '1'); } //сохраняем все это дело if ( !$user->save() ) { JError::raiseWarning('', JText::_( $user->getError())); } по-хорошему - это все нужно завернуть в функцию и на все екзепшены поставить ретурн фалс.
Спасибо Dead Krolik'у, он направил в каких таблицах искать. Я нашёл три таблицы базе данных, в которые импортировал .SQL-файлы содержащие данные пользователей. Это были таблицы: jos_users, jos_core_acl_aro и jos_core_acl_groups_aro_map. В админке пользователи корректно отображаются, все логинятся.