[gelöst] Speichern eines Benutzers: Vorherige Werte
Eingetragen von begs (87)
am 25.08.2011 - 11:42 Uhr in
am 25.08.2011 - 11:42 Uhr in
Hi und hallo,
ich brächte beim Speichern eines Benutzers die Werte, die der Benutzer vor dem Speichern in seinem Formular eingetragen hatte.
Also wenn er z.B. seine Mailadresse von test@web.de auf test1@web.de geändert hat, bräuchte ich sowohl den alten, als auch den neuen Wert.
Ich hatte da jetzt auf den "hook_user_presave(&$edit, $account, $category)" gehofft, aber leider stehen da die alten Werte nicht verlässlich drin.
Denn wenn ein Administrator die Benutzerdaten ändert, stehen ja in $account die Daten des Admins und nicht des Users drin...
Weiß hier jemand Rat?
- Anmelden oder Registrieren um Kommentare zu schreiben
Was mir jetzt auf anhieb
am 25.08.2011 - 12:30 Uhr
Was mir jetzt auf anhieb einfallen würde ist , du könntest sobald der user sein Formular editieren will es mit form_set_cache im cache speichern und mit $expire kannste ja festlegen wie lange die kopie vorhanden bleiben soll .
hi begsdie userid von dem
am 25.08.2011 - 12:47 Uhr
hi begs
die userid von dem user befindet sich vermutlich
in dem $edit array.
mit dem kannst du dann in der
hook_user_presave
auf die users tabelle eine abfrage machen
um die email zu bekommen.
so ungefähr könnte das aussehen
ich vermute mal das das so aussieht in der
$edit->uid;
also kannst du das in einer abfrage verwenden:
<?php
$res = db_query ( 'SELECT mail FROM {users} WHERE uid = :uid', array (':uid' => $edit->uid ) );
// ausgabe zum testen
//wenn du devel installiert hast
dsm($res->mail);
// ansonsten sowas
drupal_set_message($res->mail);
?>
is ohne gewähr habs nich getestet...
nur so zum richtungshinweis
viel erfolg
stef
1kubik schrieb hi begs die
am 25.08.2011 - 12:59 Uhr
hi begs
die userid von dem user befindet sich vermutlich
in dem $edit array.
mit dem kannst du dann in der
hook_user_presave
auf die users tabelle eine abfrage machen
um die email zu bekommen.
so ungefähr könnte das aussehen
ich vermute mal das das so aussieht in der
$edit->uid;
also kannst du das in einer abfrage verwenden:
<?php
$res = db_query ( 'SELECT mail FROM {users} WHERE uid = :uid', array (':uid' => $edit->uid ) );
// ausgabe zum testen
//wenn du devel installiert hast
dsm($res->mail);
// ansonsten sowas
drupal_set_message($res->mail);
?>
is ohne gewähr habs nich getestet...
nur so zum richtungshinweis
viel erfolg
stef
Das ist eine sehr gute Idee. Ich sehe gerade, dass "nur" $edit["name"], also der Benutzername, im $edit Array steht, aber darüber müsste ich eigentlich verlässlich die Daten bekommen.
Vielen Dank an Euch beide!
.. Zitat: Ich sehe gerade,
am 25.08.2011 - 13:00 Uhr
..
Ich sehe gerade, dass "nur" $edit->name, also der Benutzername, im $edit Array steht, aber darüber müsste ich eigentlich verlässlich die Daten bekommen.
ja genau, der user name wird unique, also einzigartig in der datenbank
angelegt
vg
stf