diff --git a/ext/comment/main.php b/ext/comment/main.php index eeb80921..423af3a3 100644 --- a/ext/comment/main.php +++ b/ext/comment/main.php @@ -1,6 +1,24 @@ image_id = $image_id; + $this->user = $user; + $this->comment = $comment; + } +} +// }}} /* CommentDeletionEvent {{{ * CommentDeletionEvent: * $comment_id @@ -50,7 +68,8 @@ class CommentList extends Extension { if(is_a($event, 'PageRequestEvent') && ($event->page_name == "comment")) { if($event->get_arg(0) == "add") { - $this->add_comment_wrapper($_POST['image_id'], $_POST['comment']); + global $user; + send_event(new CommentPostingEvent($_POST['image_id'], $user, $_POST['comment'])); } else if($event->get_arg(0) == "delete") { global $user; @@ -90,6 +109,10 @@ class CommentList extends Extension { if(is_a($event, 'ImageDeletionEvent')) { $this->delete_comments($event->image->id); } + // TODO: split akismet into a separate class, which can veto the event + if(is_a($event, 'CommentPostingEvent')) { + $this->add_comment_wrapper($event->image_id, $event->user, $event->comment); + } if(is_a($event, 'CommentDeletionEvent')) { $this->delete_comment($event->comment_id); } @@ -241,7 +264,7 @@ class CommentList extends Extension { ); $akismet = new Akismet( - 'http://www.yourdomain.com/', + $_SERVER['SERVER_NAME'], $config->get_string('comment_wordpress_key'), $comment); @@ -260,8 +283,7 @@ class CommentList extends Extension { return ($config->get_bool('comment_anon') || !$user->is_anonymous()); } - private function add_comment_wrapper($image_id, $comment) { - global $user; + private function add_comment_wrapper($image_id, $user, $comment) { global $database; global $config; global $page;