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?

Antworten:


25

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

$new_user = array(
  'name' => 'JohnDoe',
  'mail' => 'john.doe@email.com',
  '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);

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.