Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
  #1  
Old 03-23-2006, 01:44 PM
JPnyc JPnyc is offline
 
Join Date: May 2005
Posts: 60
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Ban a user based on a string contained

in the post or signature? I want to ban a user automatically, based on the presence of a particular text string contained in the post or sig. I'll code it myself (even though PHP isn't among my languages) but I need a hint 1st. Where would such a function best be placed? Which file(s)? Would it be in the showthread template ? Or New Thread/reply? Thanks for any clues.

Here's the compound if I have so far:

if (strpos($post[message], "Blah") !== false)&&(strpos($post[message], "BlahBlah")!==false)&&(!can_moderate($thread['forumid'], 'caneditthreads') && (!can_moderate($thread['forumid'], 'caneditposts'))

Is there a simpler way of testing usergroup? Something like $bbuserinfo[$usergroup] or something along those lines? Thanks for any help

Ok, I found the easier method to test for usergroup: $bbuserinfo['usergroupid']; Now what I need is the working statement. How does one change usegroup? Is it anything like

$vbulletin->userinfo['usergroupid']=8; //that?
Reply With Quote
  #2  
Old 03-27-2006, 10:51 PM
JPnyc JPnyc is offline
 
Join Date: May 2005
Posts: 60
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Is this any closer?

if (strpos($post[signature], "Blah") !==
false)&&(strpos($post[signature],
"BlahBlah")!==false)&&($bbuserinfo['usergroupid']!=0)&&($bbuserinfo['usergroupid']!=1)&&($bbuserinfo['usergroupid']!=2)
{

$db->query_write("UPDATE user SET usergroup = 'bannedID#' WHERE
userid=postuserid");
}
Reply With Quote
  #3  
Old 03-28-2006, 04:50 PM
Krofh's Avatar
Krofh Krofh is offline
 
Join Date: Aug 2005
Posts: 132
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You're getting there with the second one... the query is close, but I think the end should be:

Code:
if (strpos($post[signature], "Blah")&&strpos($post[signature],
"BlahBlah"))
{
$db->query_write("UPDATE user SET usergroup = 'bannedID#' WHERE
userid=".$post['userid']);
}
I think though that bbuserinfo gets the information of whoever's viewing the page, not the poster, so you probably don't want that in there. You don't need the "!== false" bits, it'll return true if it finds the string "Blah". The && is a logical AND, so the way this script runs is if it finds "Blah" AND "BlahBlah" in the signature then it'll ban them... if you want it to ban the user on either of them, you need a logical OR (||), so it'd be like this:

Code:
if (strpos($post[signature], "Blah")||strpos($post[signature],
"BlahBlah"))
{
$db->query_write("UPDATE user SET usergroup = 'bannedID#' WHERE
userid=".$post['userid']);
}
If you were to be more specific as to exactly what you wanted (usergroups and strings and everything), it'd be a bit easier for us to help you write code for what you're doing.
Reply With Quote
  #4  
Old 03-28-2006, 10:27 PM
JPnyc JPnyc is offline
 
Join Date: May 2005
Posts: 60
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Oh thanks, I was beginning to think I had bad breath or something . Yes, I know it's an AND and that's what I need. Either string might be present in the sig of someone I don't wish to auto-ban. Only 1 party should have both. I test for them separately just in case something is between them.

I'll probably omit the usergroup tests. That was just to be sure that mod, supers, and admin groups would be exempted, but there's no way they'd have all the strings I'll test for in their sigs. No one will except the user I want to ban.

Thanks LOADS man, this is my 1st attempt at writing anything in PHP. Based on what you've shown me, I'm probably just going to test for the presence of 3 strings (with ANDs) and omit the other tests. Thanks again.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 07:03 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05220 seconds
  • Memory Usage 2,179KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete