Programmgesteuertes Erstellen eines neuen Benutzers mit benutzerdefinierten Feldern

18

Ich möchte einen Benutzer mit einigen benutzerdefinierten Feldern erstellen. Ich habe über config> people> site information zusätzliche Felder erstellt> verwalte Felder und Felder wie Vorname, Nachname, Stadt usw. Ich möchte einen Benutzer mit diesen benutzerdefinierten Feldern erstellen.

Wie kann ich Benutzer programmgesteuert erstellen?

Pranav Gandhi
quelle

Antworten:

25

Mit der user_saveDrupal-Funktion können Sie wie folgt neue Benutzer erstellen:

$new_user = array(
  'name' => 'JohnDoe',
  'mail' => '[email protected]',
  'pass' => 'password123',
  'status' => 1,
  'field_custom_first_name' => array(LANGUAGE_NONE => array(array('value' => 'John'))), // This becomes $account->field_custom_first_name[LANGUAGE_NONE][0]['value']
  'field_custom_last_name' => array(LANGUAGE_NONE => array(array('value' => 'Doe'))),
  'access' => REQUEST_TIME,
  'roles' => array(), // No other roles than Authenticated
  //'roles' => array('10' => '10', '11' => '11'), // If you want to specify additional roles, the numbers are role_id's
);
user_save(NULL, $new_user);
Beebee
quelle
Ich bin mir nicht sicher, was accessfunktioniert. Ich habe dies aus den Kommentaren der user_save-Seite zu do kopiert und modifiziert access. Ich gehe davon aus, dass dies das letzte Zugriffsdatum ist. Wenn es sich also um einen neuen Benutzer handelt, sollte es vermutlich nicht festgelegt werden.
Beebee
Danke, es funktioniert gut für mich. und Entschuldigung für die späte Wiedergabe.
Pranav Gandhi
@GandhiPranav Vergessen Sie nicht, die Antworten auf Ihre Fragen zu akzeptieren, wenn diese Ihnen geholfen haben. Auf diese Weise erfahren zukünftige Besucher, dass eine bestimmte Lösung Ihr spezielles Problem gelöst hat, und der Antwortende wird für seine Bemühungen belohnt. Sie können eine Antwort akzeptieren, indem Sie auf das Häkchen unter dem Abstimmungsindikator klicken. Danke :)
Clive
Der Zugriff ist nur das letzte Zugriffsfeld (wie das "erstellte" Feld
Ergophobe 06.06.14
Dies funktioniert, um neue Benutzer zu erstellen, aber gibt es keine "bevorzugte" Entitätsmethode wie bei Knoten? Etwas mit entity_create_stub_entity ('user') oder entity_metadata_wrapper (..)? Ich frage, weil ich Mühe habe, es auf die eine Art und Weise zu tun .. :)
Texas-Bronius