Seite 1 von 1

PN's erst ab einer best.Beitragszahl empfangen und schreiben

Verfasst: 30.08.2006 14:26
von Shaine
Hallo, ich hoffe ich bin hier richtig!

Also, ich war auf der Suche nach einem Mod, der einen User automatisch für die PN Funktion erst ab einer bestimmten Beitragszahl freigibt. Ich habe über die Suche hier bereits dieses Snippet gefunden, welches soweit auch funktioniert.

http://www.phpbb.de/viewtopic.php?t=48263

Allerdings kann der User trotzdem PN's von anderen empfangen, allerdings kann er sie nicht lesen, da der komplette Zugang zum Postfach durch das Snipppet versperrt ist.

Daher suche ich einen Mod, der es denjeniegen Usern auch verbietet PN's zu empfangen. Gibt es da einen Mod oder eine andere Möglichkeit?

Ich hoffe, ich habe das soweit verständlich erklärt! Wäre super, wenn mir da jemand weiterhelfen könnte. :)

Verfasst: 30.08.2006 16:24
von Triplex

Code: Alles auswählen

//
// öffne privmsg.php
//


//
// finde ( etwa Zeile 1168)
//


			$sql = "SELECT user_id, user_notify_pm, user_email, user_lang, user_active 
				FROM " . USERS_TABLE . "
				WHERE username = '" . str_replace("\'", "''", $to_username) . "'
					AND user_id <> " . ANONYMOUS;

//
// ersetzen mit
//

$sql = "SELECT user_id, user_notify_pm, user_email, user_lang, user_active, user_posts
				FROM " . USERS_TABLE . "
				WHERE username = '" . str_replace("\'", "''", $to_username) . "'
					AND user_id <> " . ANONYMOUS;

//
// finde (etwa zeile 1178)
//

if (!($to_userdata = $db->sql_fetchrow($result)))
			{
				$error = TRUE;
				$error_msg = $lang['No_such_user'];
			}

//
// danach einfügen
//
            if (!($row = $db->sql_fetchrow($result)))
            {
                message_die(GENERAL_MESSAGE, $lang['No_such_user']);
            }
            if ($row['user_posts'] < "6")
            {
                message_die(GENERAL_MESSAGE, $lang['Darf_keine_PNs_empfangen']);
            }

//
// öffne lang_german/lang_main.php
//

//
// Suche: 
//

?> 

//
// Davor einfügen: 
//

// Darf der User eine PN empfangen ?: 
$lang['Darf_keine_PNs_empfangen'] = 'Der Benutzer darf leider noch keine PNs empfangen !';

nicht ausprobiert, aber so sollte es gehen.

Gruß,
triplex

Verfasst: 31.08.2006 13:41
von Shaine
Ich danke Dir! Habe das soweit auch schon eingebaut, allerdings wenn ich jetzt eine PN verschicken möchte, bekomme ich die Meldung "Es existiert kein Benutzer mit diesem Namen." egal, an wen ich die PN verschicken will. Also auch an User, die schon mehrere hundert Beiträge haben...

Verfasst: 01.09.2006 17:18
von Shaine
Da es ja so nicht funktionierte, habe ich mich, mit meinen absolut geringen Kenntnissen, mal selber drangesetzt und nachdem ich ein wenig experimentiert habe, funktionierte es nachher mit folgender Änderung:


Den Teil hier

Code: Alles auswählen

         
            if (!($row = $db->sql_fetchrow($result)))
            {
                message_die(GENERAL_MESSAGE, $lang['No_such_user']);
            }
            if ($row['user_posts'] < "6")
            {
                message_die(GENERAL_MESSAGE, $lang['Darf_keine_PNs_empfangen']);
            } 
habe ich so abgeändert:

Code: Alles auswählen

            if ($to_userdata['user_posts'] < "6")
            {
                message_die(GENERAL_MESSAGE, $lang['Darf_keine_PNs_empfangen']);
            }
So funktionier es jetzt!