PDA

View Full Version : prevent bad words


crowshead
06-01-2012, 07:06 PM
1. how do i prevent certain words from being used?
2. how can i make a post go into moderation if the member uses one of these words?

Thunderbird8
06-02-2012, 06:48 AM
The board censor function can be used to prevent bad words from being used (it'll change said words into whatever symbol you configure). If you use the censor and want to detect when bad words have been posted, simply compare the submitted post with the result of fetch_censored_text() and if they differ, obviously someone has posted a bad word.

Here's an example that I use to prevent people from swearing in report reasons:

require_once("./includes/functions.php");
if (isset($_POST['reason']))
{
$original_text = $_POST['reason'];
$censored_text = fetch_censored_text($original_text);
if ($original_text!=$censored_text)
{
eval(standard_error("Your report contains one or more censored words. Please go back and remove these words and resubmit."));
}
}

However, do take note that with this method, you would not be able to figure out which censored words were used, since vBulletin stores the post-censor version (I kinda wish there was an option to store the pre-censored version and do the censoring as a post is displayed).

Sending posts to moderation can be done with unapprove_post(), though this'll leave an entry in your moderator log. I don't know how to cause a post to be initially posted that way.