From 8bf388a6f671faba94f46ad9e982139c211378ee Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Thu, 8 Jan 2009 02:50:23 +0000 Subject: Incremental improvement in comment moderation: 1) Akismet now detects when we change a comment's published state and submits info back to akismet.com as appropriate 2) We now show 4 different queues (all / approved / unapproved / spam) and let you move messages between the queues 3) We track and display "spam caught" stats. 4) You can delete comments entirely. --- modules/akismet/helpers/akismet.php | 2 +- modules/akismet/helpers/akismet_event.php | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) (limited to 'modules/akismet/helpers') diff --git a/modules/akismet/helpers/akismet.php b/modules/akismet/helpers/akismet.php index 132b9206..b34ed1ac 100644 --- a/modules/akismet/helpers/akismet.php +++ b/modules/akismet/helpers/akismet.php @@ -104,7 +104,7 @@ class akismet_Core { $comment_data["permalink"] = url::site("comments/{$comment->id}"); $comment_data["blog"] = url::base(false, "http"); $comment_data["user_agent"] = $comment->user_agent; - $comment_data["referrer"] = $_SERVER["HTTP_REFERER"]; + $comment_data["referrer"] = !empty($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : ""; $comment_data["comment_type"] = "comment"; $comment_data["comment_author"] = $comment->author; $comment_data["comment_author_email"] = $comment->email; diff --git a/modules/akismet/helpers/akismet_event.php b/modules/akismet/helpers/akismet_event.php index 8f530faa..2a42acb3 100644 --- a/modules/akismet/helpers/akismet_event.php +++ b/modules/akismet/helpers/akismet_event.php @@ -19,9 +19,14 @@ */ class akismet_event_Core { public static function comment_created($comment) { + if (TEST_MODE) { + return; + } + switch(akismet::check_comment($comment)) { case "spam": $comment->state = "spam"; + module::incr_var("comment", "spam_caught"); break; case "ham": @@ -34,4 +39,16 @@ class akismet_event_Core { } $comment->save(); } + + public static function comment_changed($old, $new) { + if (TEST_MODE) { + return; + } + + if ($old->state != "spam" && $new->state == "spam") { + akismet::submit_spam($new); + } else if ($old->state == "spam" && $new->state != "spam") { + akismet::submit_ham($new); + } + } } -- cgit v1.2.3