User bearbeiten: brauche vom jeweilegen Konto den Namen und die Mail-Werte
Eingetragen von ash0815@drupal.org (137)
am 13.11.2010 - 20:07 Uhr in
am 13.11.2010 - 20:07 Uhr in
Hallo,
in der API und im Code konnte ich nichts brauchbares finden. Und zwar mache ich immer noch ein kleines Mini-Modul, das Problem ist, egal welches Konto ich bearbeite, es steht von dem momentanen angemeldeten Benutzer die Daten drin. Die Felder Name und Mail werden überschrieben und zum Bearbeiten deaktiviert...
Mein derzeitiger Code (der Code sieht vielleicht nicht konform aus)
<?php
if (user_access('disable username') && $form_id == 'user_profile_form' && $form['_account']['#value']->uid >= 2) {
$form['account']['name'] = array(
'#type' => 'textfield',
'#title' => t('Username'),
'#value' => $user->uid,
'#attributes' => array('disabled' => 'disabled'),
'#description' => t("You cannot edit your username!"),
);
}
if (user_access('disable user e-mail address') && $form_id == 'user_profile_form' && $form['_account']['#value']->uid >= 2) {
$form['account']['mail'] = array(
'#type' => 'textfield',
'#title' => t('E-mail address'),
'#value' => $user->mail,
'#attributes' => array('disabled' => 'disabled'),
'#description' => t("You cannot edit your e-mail address!"),
);
}
?>
Jedenfalls werden wie bereits erwähnt die Daten vom angemeldeten Benutzer ausgegeben, ich möchte aber die richtigen Daten vom jeweiligen Konto angezeigt bekommen, so wie es im Normalfall wäre. Ich habe schon andere Variablen getestet, aber es kommt dann gar nichts bei raus.
Wie kann man es so machen, dass die richtigen Daten erscheinen?
Vielen Dank.
- Anmelden oder Registrieren um Kommentare zu schreiben
Die globale Variable $user
am 14.11.2010 - 10:17 Uhr
Die globale Variable $user bezieht sich immer auf den aktuellen Benutzer der Session. Du mußt also erst mittels der Funktion user_load(###) den gewünschten User in eine Variable laden und danach kannst Du ihn referenzieren.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
am 14.11.2010 - 19:48 Uhr
OK, danke dir für die Info, ich bin halt kein Experte was das so betrifft, aber ich konnte doch noch was brauchbares finden
OK, $user betrifft den, der gerade eingeloggt ist, und $account betrifft vom jeweiligen Konto zugewiesen ist.
Sieht bei mir dann so aus (innerhalb von function):
$x = arg(1);
$account = user_load(array('uid' => $x));
$readusername = $account->name;
$readuserid = $account->uid;
$readusermailaddress = $account->mail;
Nur jetzt muss ich mein Mini-Mod so bauen, dass ID1 und/oder die Gruppe 'Administrator' oder wie auch immer, von der Einschränkung ausgenommen werden und die Felder die normalerweise für eine bestimmte Gruppe zugeordnet sind, davon ausgenommen werden. Momentan klappt es noch nicht so wie ich es gerne hätte. Ich denke, dass die erste Abfrage erst prüfen muss, ob ID 1 oder ähnlich eingeloggt ist und falls nein, dann die Einschränkung oder was auch immer, statt findet. Wird noch ein kleiner langer Weg...
Ansonsten wünsche ich noch einen schönen Sonntag :-)
Gruß Alex