Frage

Ich muss jedes Mal eine Rastanfrage stellen, wenn sich ein neuer Benutzer anmeldet.

Die REST -Anfrage gibt einige Daten zurück, die ich für das Drupal -Benutzerkonto speichern muss, und können irgendwo als Inhalt präsentieren können.

Was ist der beste/sauberste Weg, um das zu tun?

War es hilfreich?

Lösung

Sie können es in einem einfachen tun Benutzerdefiniertes Modul, Achten Sie darauf, zuerst zuerst Verstehen Sie das Drupal Hooks -System Da ist dies die Basis für (fast) alles Drupal.

In Ihrem Modul können Sie implementieren hook_user_presave() angerufen werden, bevor ein Benutzerkonto gespeichert wird. Es wird sowohl für die Erstellung als auch für das Update eingereicht, sodass Sie Ihren Code mit einer Bedingung bewachen müssen, um einen neuen Benutzer zu erkennen. Nach dem Restanruf gibt es eine Möglichkeit, die zurückgegebenen Daten zu speichern. Am einfachsten ist die Verwendung des Datenattributs des Benutzerkontos. Es ist ein einfaches PHP -Array, das in einer Datenbankspalten serialisiert wird. Es ist nicht sehr gut, und weise und nicht sehr flexibel (Sie können die gespeicherten Daten abfragen), aber es ist einfach.

function MODULE_user_presave(&$edit, $account, $category) {
  // Accoding to user_save's documentation, this is a new user if
  // $account->is_new is set to TRUE or if $account->uid is not set
  if ($category == 'account' && (!empty($account->is_new) || !isset($account->uid)))) {
    $edit['data']['MODULE'] = MODULE_get_data_from_rest($account);
  }
}

Andere Tipps

Eine Kernfunktion in Drupal 7 ist verfügbar, die eine bestimmte Aktion auslösen kann, wenn ein Benutzer erstellt wird usw. Sie müssen nicht codieren, um dies zu erreichen:

  • Aktivieren Sie das Modul Löst aus
  • Gehe zu Aufbau >> Aktionen und erstellen Sie eine Aktion, die auf der Dropdown -Liste verfügbar ist
  • Gehe zu Struktur >> Löst aus, Klick auf das Benutzer Registerkarte und zuweisen die Aktion, zu der Sie eine Weile zurück erstellt wurden Auslöser: Nach dem Erstellen eines neuen Benutzerkontos

Das Regeln oder Arbeitsablauf Module können das sein, wonach Sie suchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit drupal.stackexchange
scroll top