/** * Process the submitted form data and save to database * * @return Redirect */ public function post(array $data, Form $form) { $discussion = null; $page = DiscussionHolder::get()->byID($this->controller->ID); $member = Member::currentUser(); if ($this->controller->canStartDiscussions($member)) { // Check if we are editing or creating if (isset($data['ID']) && $data['ID']) { $discussion = Discussion::get()->byID($data['ID']); } if (!$discussion || $discussion == null) { $discussion = Discussion::create(); } $form->saveInto($discussion); $discussion->AuthorID = $member->ID; $discussion->ParentID = $page->ID; $form->saveInto($discussion); $discussion->write(); $discussion_url = Controller::join_links($this->controller->Link("view"), $discussion->ID); return $this->controller->redirect($discussion_url); } else { return $this->controller->httpError(404); } }