Программно создать пользователя
Здравствуйте, Иван!
Читаю Ваш сайт и смотрю видеоуроки с большой пользой для себя. Решил к Вам обратиться за консультацией. Я создаю программно пользователя на сайте drupal 7 и сразу же делаю логин. В базе пользователей вся информация появляется надлежащим образом. Видно, что пользователь создался и логин выполнился. НО! Не происходит перехода на следующую страницу, где написано Моя учетная запись и пр. Не исчезает форма входа. Если логинится с только что созданным логином с помощью стандартной формы – все работает. Я пытался на jqueryформу создать, подобную стандартной с ее actionи всем остальным. Но это не привело ни к каким положительным результатам.
Что я не делаю? Может быть Вы сможете посоветовать?
Здравствуйте, используйте модуль ajax_login или что-нибудь подобное. Подгрузите стандартную друпаловскую форму и через нее создавайте. Посмотрите на api.drupal.org функции, там наверняка должны быть функция user_save и хуки hook_user_insert.
Вот здесь как программно создать пользователя:
//This will generate a random password, you could set your own here $password = user_password(8); //set up the user fields $fields = array( 'name' => 'user_name', 'mail' => 'user_name@example.com', 'pass' => $password, 'status' => 1, 'init' => 'email address', 'roles' => array( DRUPAL_AUTHENTICATED_RID => 'authenticated user', ), ); //the first parameter is left blank so a new user is created $account = user_save('', $fields); // If you want to send the welcome email, use the following code // Manually set the password so it appears in the e-mail. $account->password = $fields['pass']; // Send the e-mail through the user module. drupal_mail('user', 'register_no_approval_required', $email, NULL, array('account' => $account), variable_get('site_mail', 'noreply@example..com'));