[gelöst] Zusätzliche Daten dem $user-Objekt hinzufügen
Eingetragen von Scentyoo (60)
am 27.10.2010 - 20:46 Uhr in
am 27.10.2010 - 20:46 Uhr in
Hallo, ich würde gerne dem $user-Objekt zusätzliche Informationen hinzufügen, die IMMER geladen werden. Momentan lade ich die Infos in der Funktion meinmodul_nodeapi , jedoch wird die Funktion nicht immer aufgerufen. Gibt es eine Funktion in die ich das einbauen kann?
- Anmelden oder Registrieren um Kommentare zu schreiben
Moin, hook_init wäre eine
am 28.10.2010 - 08:26 Uhr
Moin,
hook_init wäre eine Möglichkeit.
Beste Grüße,
Niko
Kommune3 - Drupal Entwickler aus dem Ruhrgebiets
Das User-Objekt hat ein Feld
am 28.10.2010 - 08:41 Uhr
Das User-Objekt hat ein Feld 'data', welches als serialisiertes Objekt in der DB (user-Tabelle) abgelegt wird. Hier kann man eine beliebige Variable ablegen (Daten reinschreiben und User per user_save() speichern). Für umfangreichere Szenarien macht es aber mehr Sinn ein Modul zu schreiben, das eine eigene Tabelle mit den entsprechenden Daten pflegt.
Der korrekt Einsprungpunkt um die $user-Instanz zu manipulieren ist hook_user(). Ganz einfach.
Siehe auch:
1. Pro Drupal Development - Second Edition - Seite 118 ff.
2. Drupal: Working With Users
Suchmaschinenoptimierung (SEO) & Drupal
Danke für eure
am 28.10.2010 - 18:03 Uhr
Danke für eure Antworten!!
Ich habe beides ausprobiert. hook_init wird wirklich immer geladen und macht genau das, wonach ich gesucht habe. In diesem Zusammenhang ist auch noch die Funktion hook_boot zu nennen, die auch jedesmal geladen wird. hook_user wird nicht immer geladen, auch wenn man meinen könnte, dass dort die Informationen für das User-Objekt am Besten reingehören würden.
Hier der Code wie es funktioniert:
<?php
function gs_match_init() {
global $user;
$user->newdata = "testdata";
}
?>