Restriktionen für "PN" ? - 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: Restriktionen für "PN" ? (/thread-6996.html) |
Restriktionen für "PN" ? - linwinman - 06.09.2007 Hallo ins Forum, gibt es ein Plugin oder eine Alternative, das/die es ermöglicht, das Versenden von PNs an bestimmte Benutzergruppen auszuschließen – z. B. an "Admins/Mods" ("Support im Forum ... nicht per PN ... " )? Es soll ausgeschlossen werden, dass z. B. von Benutzer(-gruppe) "Mitglieder" an Benutzergruppe "Admins/Mods" PNs geschrieben werden können. Andererseits soll der PN-Versand innerhalb einer Benutzergruppe möglich sein, dass z. B. von "Mitglieder" an "Mitglieder". Im Benutzer-Profil kann ich nur einstellen, ob PNs empfangen werden. Damit werden jedoch (bei "nein") alle Benutzer(-gruppen) für PNs ausgeschlossen (z. B. "Mod" an "Admin" = nein). In der Benutzer(-gruppen-)verwaltung kann ich nur generell das Senden von PN (ja/nein) einstellen. Ich habe diese Plugins getestet: "Additional User Settings v1.0.1" - lässt nur zu, dass einzelne Benutzer generell keine PNs schreiben dürfen. "Restricted private messages 1.0.2" - lässt nur zu, dass alle Benutzer ab min. "X Beiträge" PNs schreiben dürfen. "Keine PNs an sich selbst 1.0.0" - selbsterklärend Habe ich irgendetwas bei der Suche und Auswahl der Möglichkeiten übersehen? Dann würde ich mich über einen Link freuen! Oder hat jemand hierzu eine Idee oder Lösung? Kann ich irgendwie irgendetwas anpassen? Ich bitte um Hilfe. Danke für die Antwort(en) und... RE: Restriktionen für "PN" ? - Michael - 07.09.2007 Ein solches Plugin ist mir leider nicht bekannt, sollte sich aber mit Grundkenntnissen in PHP/MySQL relativ einfach realisieren lassen. Vor dem Versand müssen ja nur die Benutzergruppen von Sender und Empfänger verglichen und ggf. eine Fehlermeldung ausgegeben werden. RE: Restriktionen für "PN" ? - linwinman - 11.09.2007 Noch einmal Hallo ins Forum, Michael schrieb:Ein solches Plugin ist mir leider nicht bekannt, sollte sich aber mit Grundkenntnissen in PHP/MySQL relativ einfach realisieren lassen. Vor dem Versand müssen ja nur die Benutzergruppen von Sender und Empfänger verglichen und ggf. eine Fehlermeldung ausgegeben werden.Schade - leider fehlen mir genau diese Grundkenntnisse in PHP/MySQL. Kann mir jemand bitte einen Ansatz für eine Lösung geben? Ich bitte noch einmal um Hilfe und danke für die Antwort(en). RE: Restriktionen für "PN" ? - linwinman - 15.09.2007 Ich bin nun einen (ersten, kleinen) Schritt weiter: mein Ansatz ist es, zunächst mit PHP-Code: $query = "SELECT username, usergroup FROM mybb_users WHERE usergroup = 2"; Doch nun stehe ich vor der nächsten Hürde. Wie schaffe ich nun einen Vergleich, ob Sender und Empfänger der selben Gruppe zugeordnet sind, um das "OK" für das Senden zu geben?
Oder bin ich absolut auf dem Holzweg? Ich danke für jede kleine Hilfestellung. RE: Restriktionen für "PN" ? - Mak - 15.09.2007 Du kannst die Benutzergruppe des aktuellen Benutzers (also für deinen Fall die des Senders) einfach mit $mybb->user['usergroup'] abfragen. Den Wert vergleichst du dann einfach mit dem Ergbenis aus deinem Query. RE: Restriktionen für "PN" ? - linwinman - 23.09.2007 Hallo ins Forum, ...und wieder einen Schritt weiter. Nachdem ich zunächst einmal die in Beitrag #1 aufgeführte Prüfung mit Erfolg erstellt habe (s. Anhang - "query_01.php" und "query_01.JPG"), habe ich daraus folgend den Code als "Plugin" in eine Datei "nopmtoadmin.php" eingebunden: PHP-Code: <?php DIe Variable > "fromuser" => $mybb->user['username'], < habe ich in der Datei "private.php" im array "$pm" ergänzt: PHP-Code: $pm = array( Die Datei "nopmtoadmin.php" wird vom/im "Plugin-Manager" fehlerfrei erkannt und kann aktiviert werden. Allerdings fehlt mir der Abschluss; das Ergebnis ist, dass der Aufruf "error" nicht richtig bzw. gar nicht abgehandelt wird. Das Senden von "Grp. 2" an "Grp. 3" oder an "Grp. 4" wird nicht unterbunden. Was ist bzw. was mache ich falsch? Muss evtl. die Datei "private.php" oder die Datei ".../inc/datahandlers/pm.php" angepasst werden? Oder ist der Ansatz in dieser Art nicht zu realisieren? Das Thema "Wie ist ein Plugin aufgebaut?" habe ich gelesen, jedoch aufgrund unzureichender php-/MySQL-Kenntnisse nur teilweise verstanden; deshalb bitte ich noch einmal um Hilfe. Schon jetzt vielen Dank und... RE: Restriktionen für "PN" ? - Michael - 23.09.2007 Ich meine, dass die Funktionen mysql_query() usw. nicht funktionieren. Stattdessen musst du die Funktionen des MyBB verwenden, also $db->query() bzw. $db->fetch_array(). Denke daran $db in die Globals in der Funktion aufzunehmen. RE: Restriktionen für "PN" ? - linwinman - 24.09.2007 Vielen Dank für die Tipps. Die Funktionen $db->query() und $db->fetch_array() habe ich ersetzt und die Variable $db zu "global" hinzugefügt. Die akt. Version der "nopmtoadmin.php" PHP-Code: <?php Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /.../inc/db_mysql.php on line 230
>>> Hierbei ergeben var_dump($res_xxx) = "bool(false)" bzw. echo $query_xxx = "Resource id #45 / #46" >>> Die Datei "db_mysql.php" enthält für/zur Zeile 230 den Block PHP-Code: /** und den 2. Hinweis: Warning: Cannot modify header information - headers already sent by (output started at /.../inc/db_mysql.php:230) in /.../inc/functions.php on line 78
Dazu die Zeile 78: PHP-Code: header("Content-type: text/html; charset={$lang->settings['charset']}"); Somit sind meine Fragen: - was muss/kann ich (im ersten Schritt) an den Abfragen ändern bzw. was ist an den Abfragen (immer noch) falsch? - was muss/kann ich (im zweiten Schritt) in der Datei ".../inc/functions.php" ändern? RE: Restriktionen für "PN" ? - Michael - 24.09.2007 Es ist ein Fehler in den Queries vorhanden. Woher nimmst du das Array $pm? Ggf. musst du $pm auch bei den Globals hinzufügen. RE: Restriktionen für "PN" ? - StefanT - 25.09.2007 Warum führst du bei jedem Query 2mal $db->fetch_array() aus? PHP-Code: $res_abs = $db->fetch_array($query_abs); PHP-Code: while($row_abs = $db->fetch_array($query_abs)) { |