author = $author; $comment->email = $email; $comment->text = $text; $comment->item_id = $item_id; $comment->url = $url; $comment->ip_addr = Input::instance()->ip_address(); $comment->user_agent = Kohana::$user_agent; $comment->created = time(); // @todo Figure out how to mock up the test of the spam_filter if (module::is_installed("spam_filter") && TEST_MODE == 0) { try { SpamFilter::instance()->check_comment($comment); } catch (Exception $e) { Kohana::log("error", print_r($e, 1)); $comment->state = "unpublished"; } } else { $comment->state = "published"; } $comment->save(); module::event("comment_created", $comment); return $comment; } /** * Update an existing comment. * @param Comment_Model $comment * @param string $author author's name * @param string $email author's email * @param string $text comment body * @param string $url author's url * @return Comment_Model */ static function update($comment, $author, $email, $text, $url) { $comment->author = $author; $comment->email = $email; $comment->text = $text; $comment->url = $url; $comment->ip_addr = Input::instance()->ip_address(); $comment->user_agent = Kohana::$user_agent; // @todo Figure out how to mock up the test of the spam_filter if (module::is_installed("spam_filter") && TEST_MODE == 0) { SpamFilter::instance()->check_comment($comment); } $comment->save(); if ($comment->saved) { module::event("comment_updated", $comment); } return $comment; } static function get_add_form($item) { $form = new Forge("comments", "", "post"); $group = $form->group("add_comment")->label(_("Add comment")); $group->input("author") ->label(_("Author")) ->id("gAuthor"); $group->input("email") ->label(_("Email")) ->id("gEmail"); $group->input("url") ->label(_("Website (hidden)"))->id("gUrl"); $group->textarea("text") ->label(_("Text")) ->id("gText"); $group->hidden("item_id")->value($item->id); $group->submit(_("Add")); $form->add_rules_from(ORM::factory("comment")); return $form; } static function get_edit_form($comment) { $form = new Forge("comments/{$comment->id}?_method=put", "", "post"); $group = $form->group("edit_comment")->label(_("Edit comment")); $group->input("author") ->label(_("Author")) ->id("gAuthor")->value($comment->author); $group->input("email") ->label(_("Email")) ->id("gEmail") ->value($comment->email); $group->input("url") ->label(_("Website (hidden)"))->id("gUrl") ->value($comment->url); $group->textarea("text")->label(_("Text")) ->id("gText") ->value($comment->text); $group->submit(_("Edit")); $form->add_rules_from($comment); return $form; } }