我在做敏感字过滤的功能,遇上一点小麻烦
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模块