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())); } } /** * Present a form for adding a new comment to this item or editing an existing comment. */ public function form_add($item_id) { $item = ORM::factory("item", $item_id); access::required("view", $item); print comment::get_add_form($item); } }