[Plugin] Auf Änderung der Benutzergruppe reagieren - Druckversion +- MyBB.de Forum (https://www.mybb.de/forum) +-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html) +--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html) +--- Thema: [Plugin] Auf Änderung der Benutzergruppe reagieren (/thread-20998.html) |
[Plugin] Auf Änderung der Benutzergruppe reagieren - Zwoetzen - 02.12.2008 Hi alle zusammen, ich falle direkt mit der Tür ins Haus: Wie kann ich auf das Ändern der Benutzergruppen reagieren bzw. welche Hooks muss ich dazu ansprechen? Hintergrund: In meinem Forum gibt es eine Benutzergruppe, für deren Mitglieder ich spezielle Daten (für externe Scripte) merken muss. Dazu habe ich versteckte Profilfelder angelegt, da diese Informationen teilweise von Admins/Mods änderbar sein sollen. Eine dieser Informationen ist eine fortlaufende Nummer, die quasi die Reihenfolge der Aufnahme in die Gruppe festhalten soll. Ich möchte nun, dass wenn ein User zu dieser Gruppe zugewiesen wird, automatisch diese Nummer eingetragen wird, und wenn die Gruppe verlassen wird, diese auch wieder gelöscht wird. Es geht mir nicht darum, wie diese Nummer gesetzt werden muss, sondern eher, bei welchen Hooks ich mich einklinken muss, um die Nummer entsprechend setzen zu können. Es ist ja möglich, sowohl übers ACP als auch übers UCP (Gruppenleiter) die Gruppe eines Users zu ändern, sodass ich eben alle Hooks erwischen muss. (Blick irgendwie in der usercp.php und in den Admin-Files nicht durch, oder ich seh den Wald vor lauter Bäumen nicht ^^) Danke für eure Antworten, MfG Zwoetzen RE: [Plugin] Auf Änderung der Benutzergruppe reagieren - XxAnimusxX - 03.12.2008 Der Hook, den du hierfür brauchst, heißt: "admin_user_users_edit_commit" Dieser Hook befindet sich in der Datei: "./admin/modules/user/users.php", Zeile 761 Hier kann man nun einen einfachen Vergleich ziehen: Die Variable $user beinhaltet sämtliche Informationen des Benutzers vor dem Speichern der Änderungen und $updated_user nach dem Speichern. D.h. hier kann man einen einfachen Vergleich zwischen den usergroups ziehen und dann weitere Einträge gemäß deines Scripts erstellen. Weitere Hooks sollten auch von Relevanz sein: "usercp_usergroups_change_displaygroup", usercp.php, Zeile 2410 "usercp_usergroups_leave_group", usercp.php, Zeile 2436 "usercp_usergroups_join_group", usercp.php, Zeile 2493 RE: [Plugin] Auf Änderung der Benutzergruppe reagieren - Zwoetzen - 03.12.2008 Vielen Dank für deine Antwort, hat mir schon sehr geholfen Habe es nun hinbekommen, dass beim ändern der Benutzergruppe im ACP die entsprechenden Werte gesetzt bzw. gelöscht werden. Zu den Hooks im UCP: Diese werden wohl anscheinend "nur" angesprochen, wenn der User selbst einer Gruppe beitritt bzw. verlässt. Da dies aber nicht erlaubt ist, bräuchte ich diese nicht auszuwerten, oder? (Ja, hab ich vergessen zu erwähnen ^^) Mir ist auch aufgefallen, dass die Gruppenleiter letztendlich in der managegroup.php die Gruppenzugehörigkeit ändern (wieso hab ich das nicht schon früher gesehen oO), da habe ich den Hook managegroup_do_manageusers_end (160) gefunden, der beim Löschen der User aus einer Gruppe aktiviert wird. Der Hook managegroup_do_joinrequests_end (105) ist eigentlich unwichtig, da der Join Request deaktiviert ist, dh die User können sich nicht bewerben, somit spielt diese Stelle eig. keine Rolle. Was mir aber fehlt, ist ein Hook beim Hinzufügen eines Users zu einer Gruppe: Im do_add Fall der action sehe ich keinen einzigen Hook, auf den ich zugreifen könnte oO (und einen allgemeinen Hook für die Datei am Anfang oder am Ende gibt es auch nicht). Sehe ich das da richtig, dass ich keine Möglichkeit habe, auf das Hinzufügen eines Users zu einer Gruppe durch einen Gruppenleiter reagieren kann? MfG Zwoetzen RE: [Plugin] Auf Änderung der Benutzergruppe reagieren - Manuel - 03.12.2008 Hallo Zwoetzen, Ja da hast du recht. Du müsstest selbst die Hooks hinzufügen, was ja nicht sehr viel Modifikation abverlangt. Vor allem für einen MyBB Kenner wie dich dürfte das kein Problem sein. Ich wünsche dir weiterhin viel Erfolg mit deinem Plugin! MfG Manuel RE: [Plugin] Auf Änderung der Benutzergruppe reagieren - Zwoetzen - 03.12.2008 Hmm hast recht, es ist wohl das beste, selbst einen entsprechenden Hook an die passende Stelle einzufügen als jetzt krampfhaft zu versuchen, irgendwie über die anderen Hooks dort ranzukommen ^^ Habe mir mal das Pluginsystem angeschaut: Ehrlich gesagt hätt ich mir das komplexer und komplizierter vorgestellt. Aber anscheinend reicht ein einfaches run_hook() und das dazugehörige add_hook() aus, um einen neuen Hook zu definieren... ^^ Markiere das Thema erstmal als Erledigt, ich denke, den Rest bekomm ich auch alleine zusammen Danke für deine Antwort (03.12.2008, 20:36)Manuel schrieb: Vor allem für einen MyBB Kenner wie dich dürfte das kein Problem sein.Danke für die Blumen |