Esempio n. 1
0
 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");
         }
     }
 }