public function SaveAction($form_id) { $id = $form_id + 0; $item = req('item'); if (!is_array($item)) { $item = array(); } $files = UploadUtils::get_posted_files('file1'); try { $this->Validate($id, $item, $files); #load old record if necessary #$item_old = $this->model->one($id); $itemdb = FormUtils::form2dbhash($item, $this->save_fields); if (!strlen($itemdb["iname"])) { $itemdb["iname"] = 'new file upload'; } $is_add = $id == 0; $id = $this->model_add_or_update($id, $itemdb); #Proceed upload if (count($files)) { $this->model->upload($id, $files[0], $is_add); } logger($this->fw->get_response_expected_format()); if ($this->fw->get_response_expected_format() == 'json') { $item = $this->model->one($id); return array('success' => true, 'id' => $id, 'item' => $item, 'url' => $this->model->get_url_direct($item)); } else { fw::redirect($this->base_url . '/' . $id . '/edit'); } } catch (ApplicationException $ex) { logger($this->fw->get_response_expected_format()); logger($ex->getMessage()); if ($this->fw->get_response_expected_format() == 'json') { return array('success' => false, 'err_msg' => $ex->getMessage(), 'id' => $id); } else { $this->set_form_error($ex->getMessage()); $this->route_redirect("ShowForm"); } } }