Daten bei der Registrierung über externe Seite laden
am 23.05.2015 - 16:21 Uhr in
Hallo,
ich habe für ein Clan Forum ein Modul für zusätzliche Validierungsregeln bei der Registrierung geschrieben. Dieses Modul nimmt den Anmeldename und schaut über json_decode(file_get_contents($url)), ob der Name im Spiel vergeben ist und ob der Spieler in dem Clan ist. Die Anfrage liefert unter anderem auch die AccountID zurück. Diese ID würde ich gerne während der Registrierung dem User mitgeben, so dass es in ein Feld des neu erstellten Accounts geschrieben wird.
Ich habe schon probiert in der Funktion mymodule_register_user_presave einfach den Wert in $edit['accountid'] reinzuschreiben, aber das Feld wird nicht gefüllt.
Wie kann man bei der Registrierung Werte mitgeben, die dann in den Useraccount geschrieben werden?
- Anmelden oder Registrieren um Kommentare zu schreiben
Der Hook den Du benötigst
am 25.05.2015 - 22:40 Uhr
Der Hook den Du benötigst heißt hook_user_presave() und wenn Du eine zusätzliche Validierung benötigst dann musst Du auch noch hook_form_alter() implementieren.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Vielen Dank. Das hat
am 05.06.2015 - 14:27 Uhr
Vielen Dank. Das hat geholfen. War genau der Hook den ich brauchte. I
function mymodule_user_presave(&$edit, $account, $category) {
if ($category == 'register') {
$url = variable_get('mymodule_url');
$account_id = $account->field_accountid->und->LANGUAGE_NONE->value;
// Load additional informations from url
try {
$api_response = json_decode(file_get_contents($url), true);
$edit['field_global_rating']['und'][0]['value'] = $api_response['data'][$account_id]['global_rating'];
} catch (Exception $e) {
watchdog('mymodule', 'Could not load account_id from url', NULL, WATCHDOG_WARNING, $link = NULL);
}
}