Форумная функция drupal, чтобы проверить список слов перед публикацией - PullRequest
0 голосов
/ 12 апреля 2011

как я могу реализовать хук для проверки слов, которые я публикую? кажется, что на форуме нет такой функции: запрещенные слова поэтому я хочу реализовать один, даже если я должен сделать свой собственный модуль Мне просто нужно знать, какую функцию подключить

1 Ответ

2 голосов
/ 12 апреля 2011

Вы смотрели на существующие модули?

Быстрый поиск находит Wordfilter и Phonetic Wordfilter .Я бы посоветовал вам опробовать их, даже если они не выполняют именно то, что вам нужно, их код, вероятно, поможет указать вам верное направление.

+++ EDIT +++

Если вы должны сделать это, когда они пишут, используйте hook_nodeapi

Если вы хотите удалить слово автоматически,выполните операцию «preave», чтобы изменить тело перед сохранением.Что-то вроде:

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');
        }
    }
}
...