Тема борьбы со спамом во всех его проявлениях сейчас актуальна, как никогда ранее. Ниже мы с вами коснемся аспекта защиты от спама касаемо сайтов, работающих на Drupal 7.
Примечания к использованию. ModuleName — имя конкретно создаваемого вами модуля.
Дополнительное замечание. Этот код является «жестким», т.е. в нём отсутвует реализация какой-бы то ни было страницы настроек в админке системы. Потому он представлен только для ознакомления и последующей более детальной доработки до готового решения.
<?php function ModuleName_form_alter(&$form, &$form_state, $form_id) { if (strpos($form_id, 'comment_node_')!==false) // Небольшой трюк, чтобы срабатывало на всех формах комментирования. $form['#validate'][] = 'ModuleName_validation'; } function ModuleName_validation($form, &$form_state) { $text = $form_state['input']['comment_body']['und'][0]['value']; if (substr_count($text, '</a>') >=3 or // По наличию закрывающего тега </a>. Если встречается более чем 2 раза. strpos($text, '[/url]')!==false or // По наличию bbCode ссылки. !preg_match("/[а-яА-я]/", $text)) { // По полному отсутвию букв русского алфавита. form_set_error('comment_body', 'Ваше сообщение возможно содержит спам, потому не игнорируйте кириллицу и не пытайтесь разместить здесь лишние ссылки.'); } } ?>