/** * Add a new comment to the collection. */ public function create($id) { $item = ORM::factory("item", $id); access::required("view", $item); $form = comment::get_add_form($item); $valid = $form->validate(); if ($valid) { if (identity::active_user()->guest && !$form->add_comment->inputs["name"]->value) { $form->add_comment->inputs["name"]->add_error("missing", 1); $valid = false; } if (!$form->add_comment->text->value) { $form->add_comment->text->add_error("missing", 1); $valid = false; } } if ($valid) { $comment = comment::create($item, identity::active_user(), $form->add_comment->text->value, $form->add_comment->inputs["name"]->value, $form->add_comment->email->value, $form->add_comment->url->value); $active = identity::active_user(); if ($active->guest) { $form->add_comment->inputs["name"]->value(""); $form->add_comment->email->value(""); $form->add_comment->url->value(""); } else { $form->add_comment->inputs["name"]->value($active->full_name); $form->add_comment->email->value($active->email); $form->add_comment->url->value($active->url); } $form->add_comment->text->value(""); $view = new Theme_View("comment.html", "other", "comment-fragment"); $view->comment = $comment; print json_encode(array("result" => "success", "view" => $view->__toString(), "form" => $form->__toString())); } else { print json_encode(array("result" => "error", "form" => $form->__toString())); } }