hook user_register
am 19.06.2011 - 21:57 Uhr in
Hallo,
ich möchte die Registrierung etwas modifizieren. Es soll der Benutzername in die profile_values der Datenbank eingetragen werden. Normalerweise gibt es dafür bestimmt eine Funktion ala hook irgendwas. Kann mich nicht mehr genau dran erinnern. Außerdem möchte ich, dass dieses Feld der Profile_values zwar angezeigt wird aber nicht bearbeiten werden kann. Hat da jemand einen Rat? Dies dient dazu, dass der Benutzer beim Registrieren seinen Vor- und Nachnamen als Benutzernamen angibt und dieser dann im Profil angezeigt wird.
- Anmelden oder Registrieren um Kommentare zu schreiben

Hab folgendes im der
am 19.06.2011 - 22:36 Uhr
Hab folgendes im der profiles.module im hook user case register eingetragen:
<?php$fid='45';
db_query("INSERT INTO {profile_values} (fid, uid, value) VALUES (%d, %d, '%s')", $fid, $user->uid, $user->name);
?>
Zeigt aber leider keinerlei Wirkung???
Zitat: Hab folgendes im der
am 19.06.2011 - 23:31 Uhr
Hab folgendes im der profiles.module im hook user case register eingetragen:
Schlechte Idee, ein Update und alles ist weg.
Versuch's doch mit hook_form_alter, damit kannst du das Formular modifizieren. Ein extra Feld dürftest du damit einbinden können (auf disabled gesetzt) und dann packst du noch eine eigene Submit-Funktion dazu, die den gewünschten Insert durchführt.
Danke für deine Antwort. Ich
am 21.06.2011 - 00:26 Uhr
Ich kann leider nur teilweise was damit anfangen. Ich weiss nicht genau wie ich das umsetzen kann und in welcher Datei. Normaler weise reicht ein insert in der Datenkank bei Registrierung. Das Feld Vor- und Nachname muss ich dann noch auf disable setzen. Aber ich weiss nicht wie das genau funktioniert. Ich habe da leider nur ein gewisses Grundverständniss. Kannst du es etwas präziser erklären?
Im Userprofil habe ich eine Kategorie Persönliche Daten erstelt. Dort soll auch der Benutzername erscheinen aber halt so dass er nicht editiert werden kann.
Also die Form API kann ich
am 21.06.2011 - 19:07 Uhr
Also die Form API kann ich dir hier leider nicht erklären. Schau dir mal das hier an: http://drupal.org/node/751826
Dann kennst du schonmal die Form API. Dann musst du ein eigenes Modul schreiben, welches hook_form_alter implementiert. Damit kannst du dann die Felder bearbeiten und ggf. auf Disabled setzen.
Außerdem kannst du damit eine eigene Submit-Funktion einbinden, die dann automatisch aufgerufen wird, wenn das Formular abgeschickt wird.
Viele Wege führen nach Rom.
am 22.06.2011 - 11:44 Uhr
Viele Wege führen nach Rom. Der lange interessantere Weg bleibt mir leider versperrt. Ich bin eher auf die "Quick and dirty" Methode angewiesen. Es gibt sicherlich noch eine andere schnellere Möglichkeit (wenn auch mit Nachteilen)
Die Änderungen in der profile.module kann ich protokollieren so dass ich die Änderungen bei einem Upadate übernehmen kann. Ich möchte vorerst nur den Benutzernamen in die profile_values der Datenbank eintragen. Wie kann ich das einfach und schnell am besten umsetzen?
Ich habe die oben stehende Anweisung in den insert Pfad der profile.module eingefügt. Das hat auch funktioniert. Jetzt muss ich es nur noch irgendwie hinbekommen, dass das Feld "Vor- und Nachname" des Profils nicht durch den Benutzer editiert werden kann. Kann ich dies irgendwie einfach erreichen?
Kann ich dir nicht sagen,
am 22.06.2011 - 16:41 Uhr
Kann ich dir nicht sagen, weil mir nur der Weg über hook_form_alter geläufig ist, weil alles andere unsauber und unsinnig ist.
In der Zeit, die du hier bereits drauf wartest, dass dir jemand einen Quick&Dirty-Weg erklärt, hättest du schon längst mal die paar wenigen Grundlagen durchgelesen und das ganze mit hook_form_alter lösen können.
Modul-Grundlagen hat man hier im Handbuch in 5 Stunden durchgearbeitet, dann kann man schonmal ein Modul schreiben. Dann noch 2 - 3 Stunden für Form API Basics. Noch ne Stunde, um hook_form_alter ordentlich zu verstehen und zu verwenden. Dann noch das Modul schreiben, fertig. Das hat man an einem Tag erledigt, wenn man sich mal etwas damit beschäftigen würde. Und das wäre dann sauber und trotzdem noch schnell genug, schließlich gibt's den Thread hier schon seit gut 3 Tagen.
Das Projekt ist ziemlich
am 25.06.2011 - 02:09 Uhr
Das Projekt ist ziemlich umfangreich und ich kann nur max 2 Stunden am Tag daran arbeiten. Ich habe den insert Pfad der profile.module modifiziert. Funktioniert wunderbar. Ist nicht 100% perfekt aber dafür funktioniert es schnell. Wie gesagt, falls ich arbeitslos werde oder die Projekte mir Zeit verschaffen, dann ist die andere Variante sicherlich zu empfehlen.