Drupal: Сниппет — статистика СПАМ комментариев

Решил сегодня малость уделить внимание спамерам и модулям им противостоящим. Туточки и еще на нескольких поддерживаемых сайтах установлены CAPTCHA и CAPTCHA Pack, версия Drupal`а - 6.x. Фантазии после рабочего дня - NULL 🙂 , что бы такого изобразить?

Первое что пришло на ум:

  • показать количество блокированных спам комментариев
  • среднее количество спам комментирования в день

Накидать модуль для вывода блока с такой информацией - лень, хотя... лень двигатель прогресса. Как я уже сказал, заюзаны модули "CAPTCHA" и "CAPTCHA Pack", а это наличие в таблице {variables} переменной 'captcha_wrong_response_counter', разумеется если включен подсчет ошибок проверки. Ясное дело, что в подсчете будут учитыватся и чисто человеческие ошибки, но это ничтожное количество по сравнению с настойчивостью спам-ботов. В качестве начало отсчета я взял дату первого поста, а в примере взял - 1 августа 2010г - mktime(0, 0, 0, 8, 1, 2010). В первой строке вычисляем количество дней от точки отсчета до сегодня. Во второй строке читаем количество заблокированных комментариев (не прошедших проверку CAPTCHA). Минимум уже есть, осталось вывести данные. Третья строка - тут я думаю всё понятно. Четвертая строка - делим количество блокированных комментариев на количество дней и получаем среднее количество спам комментариев в день. Программа минимум выполнена 🙂 .

$lifetime = ceil((time() - mktime(0, 0, 0, 8, 1, 2010)) / 86400);
$capthca_blocked = variable_get('captcha_wrong_response_counter', 0);
echo "Блокированно спам комментариев <strong>" . $capthca_blocked . "</strong><br>";
echo "Спам комментариев в день: <strong>" . round($capthca_blocked / $lifetime , 2) . " </strong>";

Осталось создать блок, установить формат ввода - PHP, вставить приведенный пример (не забываем про "<?php" "?>"), вывести блок в нужный регион. Рабочий пример можно увидеть в самом низу страницы, в правой части.
Можно придумать еще много вариантов статистки, но это уже ваше желание и фантазия.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *