我在做敏感字过滤的功能,遇上一点小麻烦
|
1
2
3
4
5
6
7
8
9
10
11
12
|
function word_filter_comment_presave($comment) { $subject = $comment->subject; $body = $comment->comment_body ['und'] [0] ['value']; ………… if(preg_match("/$str_forbid/", $subject) || preg_match("/$str_forbid/", $body)){ drupal_set_message(t('有不对的词语'),'error'); return; }} |
测试的时候发现照样发表出来了,并没有真正挡住。

我想实现以下两种情况:
1,评论有敏感词时,会直接挡住不发出去。上面的问题就是这种。
2,评论有敏感词时,可以插入库,但是不发表。 请问怎么解决呢?谢谢。


对于第一种情况,这个钩子不合适。建议使用hook_form
对于第一种情况,这个钩子不合适。建议使用hook_form_alter。
对于第二种请款,这个钩子是可以实现的,你需哟修改$comment的属性,把它改为待发表状态。
另外你可以尝试一下field valdation模块