Febrero 27, 2013
kenneth
APIs
Drupal
Como se mostró en la entrada Como subir un archivo usando Form API en Drupal 7 es posible crear usuario en Drupal vía código. En esta entrada se explicara como crear un usuario Drupal pero usando el Entity API y a la misma vez definir unos o todos los valores del perfil creado con el módulo Profile2.
Para crear un usuario se usara el siguiente código,
<pre title="Crear usuario en Drupal">$account = entity_create('user', array());
$account->name = $mail;
$account->mail = $mail;
$account->password = user_password(8);
$account->status = 1;
$account->roles = array(
DRUPAL_AUTHENTICATED_RID => 'authenticated user',
);
entity_save('user', $account);
Ahora una vez creado nuestro nuevo usuario procederemos a crearle su perfil principal que hemos llamado main y relacionarlo al usuario creado,
<pre title="Crear perfil principal y relacionar el usuario Drupal">$profile = entity_create('profile2', array('type' => 'main'));
$profile->uid = $account->uid;
/*
Estos son unos ejemplos de unos atributos que
pudiera tener el perfil principal.
*/
$profile->field_first_name[LANGUAGE_NONE][0]['value'] = 'Juan';
$profile->field_last_name[LANGUAGE_NONE][0]['value'] = 'Perez';
$profile->save();
$account->profiles['main'] = $profile;
entity_save('user', $account);
Espero que les sea de mucha ayuda y lo logren implementar en sus módulos personalizados,
Saludos,