Posted by mariuss on October 21, 2008 at 2:28am
Jump to:
| Project: | Wordfilter |
| Version: | 6.x-1.x-dev |
| Component: | Code |
| Category: | feature request |
| Priority: | normal |
| Assigned: | Unassigned |
| Status: | closed (works as designed) |
Issue Summary
An alternative behaviour would be to validate the form submission and prevent completion if filtered words are encountered. This will give people a chance to fix their text. Not sure if this is possible with hook_filter.
With this behaviour the module is not acting as a filter anymore, but the end result is pretty close IMO.
Comments
#1
You can implement this yourself by writing a custom form validation handler and running wordfilter_filter_process() directly against a form value. If the returned text is not equal to the original text you could act on this and fail validation for the form field perhaps.
#2
Any suggestions on what this might look like. I've been trying to figure out how to validate using Wordfilter.
#3
I needed this so I created a very small module called wordfiler_plus. Here's the code. Add an info file and rename the module/functions as needed. Work is still needed to integrate with CCK and provide a more helpful error message. I hope this helps someone in the mean time.
/**
* Implementation of hook_perm().
*/
function wordfilter_plus_perm() {
return array('skip banned word check');
}
/**
* Implementation of hook_nodeapi().
*/
function wordfilter_plus_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
switch ($op) {
case 'validate':
if(!user_access('skip banned word check')) {
// Run node body through word filter. Any words matching the word filter
// list will be modified.
$filtered_body = wordfilter_filter_process($node->body);
// Compare filtered $node->body to not filter $node->body.
// If there are different we know that a banned word is present.
if ($node->body != $filtered_body) {
form_set_error('body', t('This text contains a banned word.'));
}
}
break;
}
}
#4
I also chucked this code up on GitHub is anyone is interested. See http://github.com/rickvug/wordfilter_plus. If this gets into a workable state maybe I'll make a patch to wordfilter for better integration or throw the code up on d.o. Anyone is welcome to fork and improve.
#5
Check out this code:
http://websites-development.com/blog/bad-words-validation-drupal
#6
Also see this sandbox: http://drupal.org/sandbox/rickvug/1072642. If anyone is interested please contact me about becoming a co-maintainer. Should this become useful we can transition the sandbox to be a full project with releases.