drupal论坛功能挂钩,用于在发布前验证单词列表

时间:2011-04-12 08:59:34

标签: drupal module hook forum

如何实现钩子来验证我发布的单词? 似乎论坛缺乏这个特征:禁止的话 所以我想实现一个,即使我必须自己创建模块 我只需要知道挂钩的功能

1 个答案:

答案 0 :(得分:2)

你看过现有的模块吗?

快速搜索找到WordfilterPhonetic Wordfilter。我建议你尝试这些,即使他们没有完全按照你需要做的,他们的代码可能会帮助你找到正确的方向。

+++ EDIT +++

如果您在发帖时必须这样做,请使用hook_nodeapi

如果您想自动删除单词,请运行'presave'操作以在保存之前更改正文。有些东西;

function mymodule_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL){
    if($op == 'presave' && $node->type == 'forum'){
        $node->body = preg_replace('#\b(word1|word2|word3)\b#i', '*removed*', $node->body);
    }
}

或者,如果您想要阻止用户发布,直到他们删除了任何被禁止的单词,那么您可以使用“验证”操作。喜欢的东西;

function mymodule_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL){
    if($op == 'validate' && $node->type == 'forum'){
        if(preg_match('#\b(word1|word2|word3)\b#i', $node->body)){
            form_set_error('body', 'You have used restricted words');
        }
    }
}