Here is a very crude PHP snippet that can be used to add a list of users to a Drupal site.
The code can be added to a Drupal block with content type "PHP Code", which is then added to some page and made visible only to the site administrator (using e.g. the `roles' tab on the block configuration page).
<?php
$participants = "
Joe' Sbdy $ mail@dress.com
Joe B' Smith $ mail.ii@dress.com
";
foreach(preg_split("/(\r?\n)/", $participants) as $line){
$tokens = explode( '$', $line );
$new_email = trim( array_pop( $tokens ) );
$tokens = explode( "'", $tokens[0] );
$new_uname = trim( $tokens[0] );
if ( user_load_by_mail( $new_email ) == FALSE) {
$newUser = array(
'name' => $new_uname,
'pass' => user_password(),
'mail' => $new_email,
'status' => 1,
'access' => '0',
);
$account = user_save(null, $newUser);
$dmailrval = _user_mail_notify('register_admin_created', $account);
echo "Say hello to $new_uname <$new_email><br />";
} else {
echo "User $new_uname exists?<br />";
}
}
?>
In the example, the usernames and email addresses are organized as a string, with newlines separating users, and a $ on each line, separating the user's name from the email address.
There's no checking for username uniqueness; the script simply takes the person's name from the list, up to the character ' – which can be inserted in order to make unique names without having to include the full name – to generate the username.
The new users will be notification by email — so you have to configure notifications first [at admin/config/people/accounts, the "Welcome (account created by administrator)" tab].
Comments
Xavier Gómez (not verified)
Mon, 12/19/2011 - 03:09
Permalink
Thanks, help me a lot.
Thanks, help me a lot.
Greetings from barcelona
Add new comment