Seite 1 von 1
Benutzergruppe verbieten PNs zu empfangen
Verfasst: 19.05.2009 16:52
von Tim
Hallo, heute wieder eine etwas speziellere Frage. Ich weiß, dass es möglich ist, Gruppen zu erlauben oder zu verbieten, PNs zu verschicken. Nun frage ich mich, kann man auch verhindern, dass an eine bestimmte Gruppe PNs gesendet werden können?
Zum Hintergrund: In unserem Forum ist man als neu registrierter User in der Gruppe "Neue User", bis man 10 Beiträge geschrieben hat, dann steigt man automatisch in eine andere Gruppe auf. Der Gruppe "Neue User" ist es nicht erlaubt, PNs zu empfangen. Da viele neue User PNs bekommen ist das blöd, weil sie auf diese ja nicht antworten können.
Wäre schön, wenn jemand eine Lösung weiß. LG Tim
Re: Benutzergruppe verbieten PNs zu empfangen
Verfasst: 19.05.2009 18:55
von -Tanja-
Bei "Kann Private Nachrichten lesen" Häckchen auf "Nein".
Re: Benutzergruppe verbieten PNs zu empfangen
Verfasst: 19.05.2009 19:06
von Dufftown
Das gibt es sogar als vordefinierte Benutzerrolle "Keine privaten Nachrichten", für Lesen und Schreiben.
Wenn das an ist, dann fehlt gleich der Link zu den Nachrichten auf der index-Seite.
LEIDER: man kann denjenigen doch PNs schreiben, da kommt kein Fehler und kein Hinweis.

Sie bekommen sie dann halt nie zu Gesicht, aber der Schreiber weiss nicht warum.
Re: Benutzergruppe verbieten PNs zu empfangen
Verfasst: 19.05.2009 19:22
von Fauchi95
Eventuell könnte man da mal einen Mod schreiben. Ist ja eigentlich nur eine kleine Template- und Sprachdateiänderung.
Vielleicht guck ich mir es mal bis zum Wochenende an.
Re: Benutzergruppe verbieten PNs zu empfangen
Verfasst: 20.05.2009 07:10
von Tim
Das Problem ist, dass diese User dann auch keine Nachrichten der Moderatoren lesen können.

Re: Benutzergruppe verbieten PNs zu empfangen
Verfasst: 20.05.2009 11:05
von oxpus
Hallo,
wenn du verbieten willst, an eine bestimmte Benutzergruppe PN's senden zu können, dann musst du das in der Gruppe selber einstellen.
Also Admin-Bereich > Benutzer und Gruppen > Gruppen verwalten > Gruppe auswählen > Einstellungen > Option "Gruppe kann Private Nachrichten empfangen:" = Nein
Re: Benutzergruppe verbieten PNs zu empfangen
Verfasst: 20.05.2009 11:22
von Dufftown
Also kein Haken drin?
Ist bei mir keiner drin. Aber meint diese Option nicht eher, dass man die Gruppe nicht als Empfänger angeben kann, und bei dem Haken doch? Denn den Mitgliedern dieser Gruppe kann ich immer noch PNs schreiben.
Re: Benutzergruppe verbieten PNs zu empfangen
Verfasst: 20.05.2009 12:49
von oxpus
Den Mitgliedern ja, denn diesen hast du das damit ja nicht verboten. Nur der Gruppe als solches kannst du keine PN's mehr senden, also damit automatisch allen Gruppenmitgliedern.
Re: Benutzergruppe verbieten PNs zu empfangen
Verfasst: 20.05.2009 13:59
von Dufftown
oxpus hat geschrieben:Den Mitgliedern ja, denn diesen hast du das damit ja nicht verboten.
Aber sowas war doch hier wohl gesucht. Im 1. Post heisst es doch "viele neue User bekommen PNs".

Re: Benutzergruppe verbieten PNs zu empfangen
Verfasst: 20.05.2009 14:50
von oxpus
So kam das mir nicht rüber. Tim schrieb ja folgendes:
Tim hat geschrieben:[...]Nun frage ich mich, kann man auch verhindern, dass an eine bestimmte Gruppe PNs gesendet werden können?
Also wenn Benutzern, die in einer bestimmten Gruppe Mitglied sind, grundsätzlich keine PM's erhalten sollen, muss man das beim Senden der PN und/oder bei der Auswahl der User einschränken.
Ich würde dazu in der Datei includes/ucp/ucp_pm_compose.php vor den Zeilen
Code: Alles auswählen
// Now, make sure the user itself is not listed. ;)
if (isset($address_list['u'][$user->data['user_id']]))
{
unset($address_list['u'][$user->data['user_id']]);
}
das hier eintragen:
Code: Alles auswählen
// Delete all user-ids from special user group
$no_pm_id = 10; // Hier die ID der Gruppe eingeben, deren Mitglieder keine PN's erhalten sollen
$sql = "SELECT user_id FROM " . USER_GROUP_TABLE . "
WHERE group_id = $no_pm_id";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$no_user_id = $row['user_id'];
if (isset($address_list['u'][$no_user_id]))
{
unset($address_list['u'][$no_user_id]);
}
}
$db->sql_freeresult($result);
Damit sollte man zwar die User auswählen können, die in der bestimmten Benutzergruppe sind, diese werden aber dann beim Absender der PM wieder automatisch entfernt.
Die betreffende Gruppe musst du mit der Gruppen-ID bei "$no_pm_id" eintragen. Also die dort beispielhaft eingetragenen 10 ersetzen.
Das ganze ist aber ungetestet. Musst mal schauen, ob dieser "Schnellschuss" wirklich funktioniert.