vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 2.x Beta Releases (https://vborg.vbsupport.ru/forumdisplay.php?f=5)
-   -   PM+Email Warning For User (https://vborg.vbsupport.ru/showthread.php?t=32856)

holev 11-30-2001 10:00 PM

having to send warning PMs and Emails 'manualy' everyime I wanted to let my users know they'r breaking the forum's rules
made me make this small hack to automaticaly send a PM and a email with a preset msg for the type of rule he broke.
It also changes the user's info to make the PM popup. I commented it out of the script.

This is how I did it:

I created a new file named 'warnuser.php' (you can also very easily enter it in 'user.php') with this code in it:
PHP Code:

<?php
// alter table user add column warnings int default 0;
error_reporting(7);

require(
"./global.php");

## Edit Vars: ##
$ban 1// 0 = Never ban nomatter what; 1 = Ban after $numwarn has been passed
$numwarn 3// Number of warnings till user gets banned
$bannedgrp 13// Group id for banned users
## End Vars ##

$warning["new_spammer"]["title"] = "[Warning] Spamming On holev.com Forums!";
$warning["new_spammer"]["msg"] = "Considering you are a relatively new member I am letting you know that this forum does not tolerate spammers. Either you stop spamming or you will be banned.";

$warning["spammer"]["title"] = "[Warning] Spamming On holev.com Forums!";
$warning["spammer"]["msg"] = "I am letting you know that either you stop spamming or you will be banned.";

$warning["flamer"]["title"] = "[Warning] Flaming On holev.com Forums!";
$warning["flamer"]["msg"] = "I am letting you know that either you stop flaming or you will be banned.";

if(isset(
$touserid)) {
    
$DB_site->query("update user set pmpopup='1',warnings=warnings+1 where userid='$touserid'");
    
$useri $DB_site->query_first("select * from user where userid='$touserid'");
    if((
$useri[warnings] == "1") or ($ban == 0)) {
        
$DB_site->query("INSERT INTO privatemessage (touserid,userid,fromuserid,title,message,dateline,showsignature,iconid,messageread,folderid) VALUES ($touserid,$bbuserinfo[userid],$bbuserinfo[userid],'".addslashes(htmlspecialchars($warning[$why][title]))."','".addslashes($warning[$why][msg])."',".time().",'1','0',0,0)"); 
        
mail($toemail,$warning[$why]["title"],$warning[$why]["msg"],"From: \"$bbtitle Mailer\" <$webmasteremail>");
        echo 
"User Warned.";
    } elseif(
$useri[warnings] > $numwarn) {
        
$bannedtl "[holev forums] You have been banned.";
        
$bannedmsg "You ignored the warnings and got yourself banned. congrats.";
        
$DB_site->query("update user set usergroupid=$bannedgrp where userid='$touserid'");
        
$DB_site->query("INSERT INTO privatemessage (userid,touserid,fromuserid,title,message,dateline,showsignature,iconid,messageread,folderid) VALUES ($touserid,$bbuserinfo[userid],$bbuserinfo[userid],'".addslashes(htmlspecialchars($bannedtl))."','".addslashes($bannedmsg)."',".time().",'1','0',0,0)");
        
mail($toemail,$bannedtl,$bannedmsg,"From: \"$bbtitle Mailer\" <$webmasteremail>");
        echo 
"User BANNED.";
    }
} else {
    echo 
"eeek";
}
?>

then I opened up 'user.php' and right above this line of code (near line 200):
PHP Code:

<li>".makelinkcode("Send email to $user[username]","mailto:$user[email]")."</li

I added:
PHP Code:

<li>Warn $user[warnings] ): ".makelinkcode("Spamming","warnuser.php?touserid=$user[userid]&why=spammer&toemail=$user[email]")." ".makelinkcode("First Spam","warnuser.php?touserid=$user[userid]&why=new_spammer&toemail=$user[email]")." ".makelinkcode("Flaming","warnuser.php?touserid=$user[userid]&why=flamer&toemail=$user[email]")."</li

Ran This SQL command:
Code:

alter table user add column warnings int default 0;
Updates
=======
v0.3 - Fixed a silly PM sending mistake
v0.2 - Added a warning counter that bans the user when counter exceeds the limit
=======

Hope this comes in handy for some of you.
please post any suggestions / improvements you might have.[PHP]

Reaver 12-03-2001 09:27 AM

Looks like a very effective hack. Would be of great use on my site.

Thanks for your work on it.

Dark Blaze 12-03-2001 03:43 PM

Nice idea for a hack, I needed a similar kind of hack :)

Thanks lots :)

GeorgeofCS 12-04-2001 10:29 AM

Is there any way of adding something that will track each of this resaons? Like how many times the person has been warned about each?

VirtueTech 12-10-2001 08:48 PM

First off this is a great idea.

I think george also has a great idea about logging how many times the user has been warned of breaking the rules so that on a large board you don't have to guess or remember if it was the first or third time.

This hack is a good start :)

holev 12-11-2001 04:22 PM

I agree, good idea.
will start working on it asap.

// EDIT: hack updated

inetd 12-23-2001 06:22 PM

Make please so that it was possible to do make warning with board, and not just from Admin CP.

Lucky 01-02-2002 09:38 AM

All works good with this hack.

Although I am curious as to when you ban a user it puts them in the coppa (awaiting moderation) instead of Banned by moderators or such?

So infact when you ban a user they are made a coppa user.
Any ideas?

risestar 01-02-2002 11:31 AM

I installed this and it works ok, except that I got the Pm instead of the user.

I noticed this userid,touserid
and $bbuserinfo[userid],$touserid

and reversed it and now it works fine and sends out to the user instead of me.

Lucky 01-02-2002 07:34 PM

[QUOTE]Originally posted by risestar
I installed this and it works ok, except that I got the Pm instead of the user.

I noticed this userid,touserid
and $bbuserinfo[userid],$touserid

and reversed it and now it works fine and sends out to the user instead of me.

TheMann 01-02-2002 07:41 PM

Is there any way that this can be used from the actual post and not from the CP so that the Moderators can issue the warning too?

That would be great

risestar 01-03-2002 12:34 AM

The latter section of warn user.php looks something like this. Compare to one above and you will see what I mean

$DB_site->query("INSERT INTO privatemessage (touserid,userid,fromuserid,title,message,dateline ,showsignature,iconid,messager ead,folderid) VALUES ($touserid,$bbuserinfo[userid],$bbuserinfo[userid],'".addslashes(htmlspecialchars($warning[$why][title]))."','".addslashes($warning[$why][msg])."',".time().",'1','0',0,0)");
mail($toemail,$warning[$why]["title"],$warning[$why]["msg"],"From: \"$bbtitle Mailer\" <$webmasteremail>");
echo "User Altered To Need to Read Status and Email sent.";
} elseif($useri[warnings] > $numwarn) {
$bannedtl = "You have been suspended.";
$bannedmsg = "You have broken some forum rules and your posting privliges have been suspended. Contact An administrator regarding re-instatement.";
$DB_site->query("update user set usergroupid=$bannedgrp where userid='$touserid'");
$DB_site->query("INSERT INTO privatemessage (userid,touserid,fromuserid,title,message,dateline ,showsignature,iconid,messager ead,folderid) VALUES ($touserid,$bbuserinfo[userid],$bbuserinfo[userid],'".addslashes(htmlspecialchars($bannedtl))."','". addslashes($bannedmsg)."',".ti me().",'1','0',0,0)");
mail($toemail,$bannedtl,$bannedmsg,"From: \"$bbtitle Mailer\" <$webmasteremail>");
echo "User Altered To Need to Read Status and Email sent.";

Lucky 01-03-2002 04:21 AM

OK

I am still getting banned user pm sent to me the administrator from instead of the banned user. However the email option works like a charm. I just need the pm to go to the banned users instead of to me. Any ideas?

This is what I have:

PHP Code:

<?php
// alter table user add column warnings int default 0;
error_reporting(7);

require(
"./global.php");

## Edit This: ##
$ban 1// 0 = Never ban nomatter what; 1 = Ban after $numwarn has 

been passed
$numwarn 
3// Number of warnings till user gets banned
$bannedgrp 13// Group id for banned users
## Stop Editing ##

$warning["new_spammer"]["title"] = "[FIRST Warning] Spamming on Forums!";
$warning["new_spammer"]["msg"] = "Considering you are a relatively new 

member I am letting you know that this forum does not tolerate 

spammers. Either you stop spamming or you will be banned! This is your 

first warning!"
;

$warning["spammer"]["title"] = "[SECOND Warning] Spamming on forums!";
$warning["spammer"]["msg"] = "I am letting you know that either you 

stop spamming or you will be banned. This is your last warning!"
;

$warning["flamer"]["title"] = "[Warning] Flaming on Forums!";
$warning["flamer"]["msg"] = "I am letting you know that either you stop 

flaming or you will be banned. You have been warned!"
;

if(isset(
$touserid)) {
    
$DB_site->query("update user set pmpopup='1',warnings=warnings+1 

where userid='
$touserid'");
    
$useri $DB_site->query_first("select * from user where 

userid='
$touserid'");
    if((
$useri[warnings] == "1") or ($ban == 0)) {
        
$DB_site->query("INSERT INTO privatemessage 

(touserid,userid,fromuserid,title,message,dateline,showsignature,iconid

,messageread,folderid) VALUES 

(
$touserid,$bbuserinfo[userid],$bbuserinfo[userid],'".addslashes(htmlsp

ecialchars
($warning[$why][title]))."','".addslashes($warning[$why][msg]

).
"',".time().",'1','0',0,0)");
        

mail($toemail,$warning[$why]["title"],$warning[$why]["msg"],"From: 

\"
$bbtitle Mailer\" <$webmasteremail>");
        echo 
"User Altered To Need to Read Status and Email sent.";
    } elseif(
$useri[warnings] > $numwarn) {
        
$bannedtl "[forums] You have been suspended.";
        
$bannedmsg "You have broken some forum rules and your posting 

privliges have been suspended. Contact An administrator regarding 

re-instatement."
;
        
$DB_site->query("update user set usergroupid=$bannedgrp where 

userid='
$touserid'");
        
$DB_site->query("INSERT INTO privatemessage 

(userid,touserid,fromuserid,title,message,dateline,showsignature,iconid

,messageread,folderid) VALUES 

(
$touserid,$bbuserinfo[userid],$bbuserinfo[userid],'".addslashes(htmlsp

ecialchars
($bannedtl))."','".addslashes($bannedmsg)."',".time().",'1','

0',0,0)"
);
        
mail($toemail,$bannedtl,$bannedmsg,"From: \"$bbtitle Mailer\" 

<
$webmasteremail>");
        echo 
"User Altered To Need to Read Status and Email sent.";
    }
} else {
    echo 
"eeek";
}
?>

So do you see anything wrong in the above?
TIA

risestar 01-03-2002 04:32 AM

yes, there are 2 instances in warnuser.php where you need to reverse the touserid and userid

You did the top one, but look further down, you forgot the second one

Once complete, it should resemble this

-----------
<?php
// alter table user add column warnings int default 0;
error_reporting(7);

require("./global.php");

## Edit This: ##
$ban = 1; // 0 = Never ban nomatter what; 1 = Ban after $numwarn has been passed
$numwarn = 0; // Number of warnings till user gets banned
$bannedgrp = 30; // Group id for banned users
## Stop Editing ##

$warning["new_spammer"]["title"] = "[Warning] Spamming On DSSChat.com Forums!";
$warning["new_spammer"]["msg"] = "You have been caught spamming the DSSChat.com Forums. Your posting access to the forums has been suspended. You can contact an administrator for consideration at re-instatement.";

$warning["spammer"]["title"] = "[Warning] Off-Topic Posting on DSSChat Forums!";
$warning["spammer"]["msg"] = "You have violated some rules on the DSSChat Forum, usually an off-topic post where is does not belong. Your posting access to the forums has been suspended. You can contact an administrator regarding re-instatement.";

$warning["flamer"]["title"] = "[Warning] Flaming On DSSChat.com Forums!";
$warning["flamer"]["msg"] = "You have violated some rules on DSSChat Forums, usually flaming other users or other un-acceptable conduct. Your posting access to the forums has been suspended. You can contact an administrator regarding re-instatement.";

if(isset($touserid)) {
$DB_site->query("update user set pmpopup='1',warnings=warnings+1 where userid='$touserid'");
$useri = $DB_site->query_first("select * from user where userid='$touserid'");
if(($useri[warnings] == "1") or ($ban == 0)) {
$DB_site->query("INSERT INTO privatemessage (touserid,userid,fromuserid,title,message,dateline ,showsignature,iconid,messager ead,folderid) VALUES ($touserid,$bbuserinfo[userid],$bbuserinfo[userid],'".addslashes(htmlspecialchars($warning[$why][title]))."','".addslashes($warning[$why][msg])."',".time().",'1','0',0,0)");
mail($toemail,$warning[$why]["title"],$warning[$why]["msg"],"From: \"$bbtitle Mailer\" <$webmasteremail>");
echo "User Altered To Need to Read Status and Email sent.";
} elseif($useri[warnings] > $numwarn) {
$bannedtl = "You have been suspended.";
$bannedmsg = "You have broken some forum rules and your posting privliges have been suspended. Contact An administrator regarding re-instatement.";
$DB_site->query("update user set usergroupid=$bannedgrp where userid='$touserid'");
$DB_site->query("INSERT INTO privatemessage (userid,touserid,fromuserid,title,message,dateline ,showsignature,iconid,messager ead,folderid) VALUES ($touserid,$bbuserinfo[userid],$bbuserinfo[userid],'".addslashes(htmlspecialchars($bannedtl))."','". addslashes($bannedmsg)."',".ti me().",'1','0',0,0)");
mail($toemail,$bannedtl,$bannedmsg,"From: \"$bbtitle Mailer\" <$webmasteremail>");
echo "User Altered To Need to Read Status and Email sent.";
}
} else {
echo "eeek";
}
?>
-----------

Lucky 01-03-2002 07:11 AM

Got her.

Thanx.

DelusionalMind 01-05-2002 07:51 AM

nice :)

gonna come in handy on my board

thanks :)

holev 01-11-2002 08:42 AM

sorry for not beeing here to maintain this hack.
hack updated and fixed.. thanks for your feedback.

[QUOTE]Originally posted by inetd
Make please so that it was possible to do make warning with board, and not just from Admin CP.

TheMann 01-31-2002 07:54 PM

[QUOTE]Originally posted by holev




thats more of a template edit..
just edit your 'postbit' templete with the link of the warnuser with propper vars attached.

X-Fan 02-24-2002 11:23 PM

I'd like to see this enabled for mods as well in the Moderator's admin CP, if that's at all possible.

X-Fan 02-27-2002 01:53 AM

[QUOTE]Originally posted by risestar
I installed this and it works ok, except that I got the Pm instead of the user.

I noticed this userid,touserid
and $bbuserinfo[userid],$touserid

and reversed it and now it works fine and sends out to the user instead of me.

Allstar DC 05-25-2002 01:32 PM

is it also possible to undo the warnings?

like when you want to give that user a second chance?

so, bring the warnings back to 0

Joshua Clinard 05-28-2002 06:40 PM

I too would like to ba able to add this to the moderators CP. Does anyone know how to do this?

inetd 06-05-2002 06:16 PM

Why this hack in beta forum?

X-Fan 06-15-2002 01:01 PM

Still waiting on an answer regarding the person issuing the warning getting the PM instead of the person being warned.

Also, whether it's possible to enable this in the Moderator CP?

And I'd also like to see the ability to remove warnings from those that have since "redeemed" themselves.

Zcyllah 07-04-2002 07:14 AM

X-fan, this was answered already by risestar on the first page. :)

BlackxRam 11-02-2003 04:07 AM

Any word on if this hack will have an option to remove one or ALL warnings?

Can this hack be added to the MODCP? I think we can just add it to the user file in the MODCP..and it would work.

Is there a way to show HOW many warnings a person has in the profile or postbit? This hack could be one of the GREAT ones, but there is little support behind it. I SUPPORT IT 100%. Lets get this moving.


All times are GMT. The time now is 01:32 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01374 seconds
  • Memory Usage 1,862KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (4)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (26)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete