PM uitschakelen ?? Is dat mogelijk ?
Forumregels
Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.

PM uitschakelen ?? Is dat mogelijk ?
Is er een mogelijkheid of een MOD om bij een gebruiker de PM button (of de code er achter) uit te schakelen.
Het is namelijk zo dat 1 van de leden enorm veel PM berichten krijgt en van hem wordt verwacht dat hij ze beantwoord. Zodra de mensen door hebben dat zijn PM mogelijkheid er niet meer (mogelijk) is, wordt die verwachting ook niet meer gewekt.
Ik ben zeer benieuwd
Het is namelijk zo dat 1 van de leden enorm veel PM berichten krijgt en van hem wordt verwacht dat hij ze beantwoord. Zodra de mensen door hebben dat zijn PM mogelijkheid er niet meer (mogelijk) is, wordt die verwachting ook niet meer gewekt.
Ik ben zeer benieuwd
Ik heb zelf iets aangepast zodat je de gebruiker Bot geen privé berichten kan sturen.
OPEN
FIND
AFTER, ADD
OPEN
FIND
AFTER, ADD
En verander dan GEBRUIKERSNAAM in de naam van diegene die geen privé berichten meer mag krijgen.
Succes
OPEN
Code: Selecteer alles
privmsg.php
Code: Selecteer alles
$to_username = phpbb_clean_username($HTTP_POST_VARS['username']);
Code: Selecteer alles
// No PMs to Bot MOD begin
if (strtolower($to_username) == strtolower("GEBRUIKERSNAAM"))
{
$error = TRUE;
$error_msg .= ( ( !empty($error_msg) ) ? '<br />' : '' ) . $lang['No_to_this_user'];
}
// No PMs to Bot MOD end
Code: Selecteer alles
language/lang_dutch/lang_main.php
Code: Selecteer alles
$lang['No_to_user'] =
Code: Selecteer alles
$lang['No_to_this_user'] = 'Je kan deze gebruiker geen privé berichten sturen.'
Succes

als beheerder van een forum zijnde heb je bij iedere gebruiker zowieso al deze mogelijkheden in het admin paneel :
Speciale alleen-beheerder velden
Deze velden kunnen niet worden aangepast door gebruikers. Hier kun je hun status instellen en andere opties die niet beschikbaar zijn voor gebruikers.
Gebruiker is actief Ja Nee
Kan prive berichten versturen Ja Nee
Kan avatar weergeven Ja Nee
dus als het je enkel daarom gaat kun je dit gewoon instellen in de admin
bij user management
Speciale alleen-beheerder velden
Deze velden kunnen niet worden aangepast door gebruikers. Hier kun je hun status instellen en andere opties die niet beschikbaar zijn voor gebruikers.
Gebruiker is actief Ja Nee
Kan prive berichten versturen Ja Nee
Kan avatar weergeven Ja Nee
dus als het je enkel daarom gaat kun je dit gewoon instellen in de admin

Das leuk toch?jongeren schreef:De code werkt. Super!
Heeft iemand ook een idee, dat je de code kan plaatsen zodra iemand op de knop "send PM" klikt. Nu typt iemand het volledige bericht in, en daarna krijg je pas de melding.

Maar als je dat wilt, moet je volgens mij op aardig wat bestanden wijzigingen toepassen.

Zoiets als
Dit werkt waarschijnlijk alleen in viewtopic.php, en dan nog ben ik niet zeker!
Code: Selecteer alles
if ($poster_id != XX)
{
$temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$poster_id");
$pm_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>';
$pm = '<a href="' . $temp_url . '">' . $lang['Send_private_message'] . '</a>';
}
else
{
$pm_img = '';
$pm = '';
}
... Maar ik modereer (nog) niet.
Ik heb het als volgt opgelost:
Voeg allereerst aan de database in de tabel phpbb_user het veld user_DisablePM - tinyint(1) toe, met als standaardwaarde = 0.
Vervolgens moeten op alle linken, waarmee een gebruiker een PM gestuurd kan worden, afgevangen worden dat er geen bericht naar een gebruiker met een ‘disabledPM’ verzonden kan worden. De knoppen blijven wel zichtbaar, maar wanneer hier op geklikt wordt krijgt de bezoeker een melding.
Ook bij het daadwerkelijk verzenden van een bericht wordt het nog een keer gecontroleerd, zodat langs geen enkele manier een bericht verzonden kan worden.
OPEN language/lang_dutch/lang_main.php
FIND
AFTER, ADD
OPEN privmsg.php
-> Wanneer een bezoeker klikt op de knop PM van een gebruiker, dan wordt er gecontroleerd of er wel een bericht naar deze gebruiker gestuurd mag worden. Zo nee, dan verschint er een melding.
query aanpassen:
FIND
REPLACE
Toon eventueel melding bij klikken op PM:
FIND
REPLACE
-> Ook bij het klikken op ‘quote’ bij berichten die al eerder verzonden zijn krijgt de gebruiker een melding
Query aanpassen
FIND
REPLACE
Bij klikken op “ quote” een melding
FIND
BEFORE, ADD
-> Afvangen van het daadwerkelijk versturen. Dit is een extra controle. Als het goed is komt hij hier niet als de gebruiker geen berichten mag ontvangen.
FIND
AFTER, ADD
Voeg allereerst aan de database in de tabel phpbb_user het veld user_DisablePM - tinyint(1) toe, met als standaardwaarde = 0.
Vervolgens moeten op alle linken, waarmee een gebruiker een PM gestuurd kan worden, afgevangen worden dat er geen bericht naar een gebruiker met een ‘disabledPM’ verzonden kan worden. De knoppen blijven wel zichtbaar, maar wanneer hier op geklikt wordt krijgt de bezoeker een melding.
Ook bij het daadwerkelijk verzenden van een bericht wordt het nog een keer gecontroleerd, zodat langs geen enkele manier een bericht verzonden kan worden.
OPEN language/lang_dutch/lang_main.php
FIND
Code: Selecteer alles
$lang['No_to_user'] =
AFTER, ADD
Code: Selecteer alles
$lang['No_PM_to_this_user'] = 'Je kan deze gebruiker geen privé berichten sturen. Stuur eventueel een e-mail naar deze gebruiker.';
OPEN privmsg.php
-> Wanneer een bezoeker klikt op de knop PM van een gebruiker, dan wordt er gecontroleerd of er wel een bericht naar deze gebruiker gestuurd mag worden. Zo nee, dan verschint er een melding.
query aanpassen:
FIND
Code: Selecteer alles
$sql = "SELECT username
FROM " . USERS_TABLE . "
WHERE user_id = $user_id
AND user_id <> " . ANONYMOUS;
REPLACE
Code: Selecteer alles
$sql = "SELECT username, user_DisablePM
FROM " . USERS_TABLE . "
WHERE user_id = $user_id
AND user_id <> " . ANONYMOUS;
Toon eventueel melding bij klikken op PM:
FIND
Code: Selecteer alles
if ( $row = $db->sql_fetchrow($result) )
{
$to_username = $row['username'];
}
REPLACE
Code: Selecteer alles
if ( $row = $db->sql_fetchrow($result) )
{
//uitschakelen PM, bij klikken op ‘PM’
if ($row['user_DisablePM'])
{
$message = $lang['No_PM_to_this_user'];
message_die(GENERAL_MESSAGE, $message);
}
//end uitschakelen PM
else
{
$to_username = $row['username'];
}
}
-> Ook bij het klikken op ‘quote’ bij berichten die al eerder verzonden zijn krijgt de gebruiker een melding
Query aanpassen
FIND
Code: Selecteer alles
$sql = "SELECT pm.privmsgs_subject, pm.privmsgs_date, pmt.privmsgs_bbcode_uid, pmt.privmsgs_text, u.username, u.user_id
FROM " . PRIVMSGS_TABLE . " pm, " . PRIVMSGS_TEXT_TABLE . " pmt, " . USERS_TABLE . " u
WHERE pm.privmsgs_id = $privmsg_id
AND pmt.privmsgs_text_id = pm.privmsgs_id
AND pm.privmsgs_to_userid = " . $userdata['user_id'] . "
AND u.user_id = pm.privmsgs_from_userid";
REPLACE
Code: Selecteer alles
$sql = "SELECT pm.privmsgs_subject, pm.privmsgs_date, pmt.privmsgs_bbcode_uid, pmt.privmsgs_text, u.username, u.user_DisablePM, u.user_id
FROM " . PRIVMSGS_TABLE . " pm, " . PRIVMSGS_TEXT_TABLE . " pmt, " . USERS_TABLE . " u
WHERE pm.privmsgs_id = $privmsg_id
AND pmt.privmsgs_text_id = pm.privmsgs_id
AND pm.privmsgs_to_userid = " . $userdata['user_id'] . "
AND u.user_id = pm.privmsgs_from_userid";
Bij klikken op “ quote” een melding
FIND
Code: Selecteer alles
$privmsg_subject = ( ( !preg_match('/^Re:/', $privmsg['privmsgs_subject']) ) ? 'Re: ' : '' ) . $privmsg['privmsgs_subject'];
BEFORE, ADD
Code: Selecteer alles
//uitschakelen PM, bij klikken op ‘quote’
if ( ($privmsg['user_DisablePM']) )
{
$message = $lang['No_PM_to_this_user'];
message_die(GENERAL_MESSAGE, $message);
}
//end uitschakelen PM
-> Afvangen van het daadwerkelijk versturen. Dit is een extra controle. Als het goed is komt hij hier niet als de gebruiker geen berichten mag ontvangen.
FIND
Code: Selecteer alles
if (!($to_userdata = $db->sql_fetchrow($result)))
{
$error = TRUE;
$error_msg = $lang['No_such_user'];
}
AFTER, ADD
Code: Selecteer alles
//uitschakelen PM, controle bij versturen
if ($to_userdata['user_DisablePM'])
{
$error = TRUE;
$error_msg .= ( ( !empty($error_msg) ) ? '<br />' : '' ) . $lang['No_PM_to_this_user'];
}
//end uitschakelen PM