diff --git a/application/controllers/api/v1/content/Dms.php b/application/controllers/api/v1/content/Dms.php index 7c38d9349..e9aa32811 100644 --- a/application/controllers/api/v1/content/Dms.php +++ b/application/controllers/api/v1/content/Dms.php @@ -12,7 +12,7 @@ */ // ------------------------------------------------------------------------ -if (!defined('BASEPATH')) exit('No direct script access allowed'); +if (!defined("BASEPATH")) exit("No direct script access allowed"); class Dms extends APIv1_Controller { @@ -23,9 +23,9 @@ class Dms extends APIv1_Controller { parent::__construct(); // Load model PersonModel - $this->load->model('content/Dms_model', 'DmsModel'); - $this->load->model('content/DmsVersion_model', 'DmsVersionModel'); - $this->load->model('content/DmsFS_model', 'DmsFSModel'); + $this->load->model("content/Dms_model", "DmsModel"); + $this->load->model("content/DmsVersion_model", "DmsVersionModel"); + $this->load->model("content/DmsFS_model", "DmsFSModel"); } /** @@ -33,8 +33,8 @@ class Dms extends APIv1_Controller */ public function getDms() { - $dms_id = $this->get('dms_id'); - $version = $this->get('version'); + $dms_id = $this->get("dms_id"); + $version = $this->get("version"); if (isset($dms_id)) { @@ -67,33 +67,42 @@ class Dms extends APIv1_Controller { $result = null; - if(isset($dms['new']) && $dms['new'] == true) + if(isset($dms["new"]) && $dms["new"] == true) { // Remove new parameter to avoid DB insert errors - unset($dms['new']); + unset($dms["new"]); if (($filename = $this->_saveFileOnInsert($dms)) !== false) { - $result = $this->DmsModel->insert($this->DmsModel->filterFields($dms)); - if ($result->error == EXIT_SUCCESS) + if(isset($dms["dms_id"]) && $dms["dms_id"] != "") { $result = $this->DmsVersionModel->insert( - $this->DmsVersionModel->filterFields($dms, $result->retval, $filename) + $this->DmsVersionModel->filterFields($dms, $dms["dms_id"], $filename) ); } + else + { + $result = $this->DmsModel->insert($this->DmsModel->filterFields($dms)); + if ($result->error == EXIT_SUCCESS) + { + $result = $this->DmsVersionModel->insert( + $this->DmsVersionModel->filterFields($dms, $result->retval, $filename) + ); + } + } } } else { if ($this->_saveFileOnUpdate($dms)) { - $result = $this->DmsModel->update($dms['dms_id'], $this->DmsModel->filterFields($dms)); + $result = $this->DmsModel->update($dms["dms_id"], $this->DmsModel->filterFields($dms)); if ($result->error == EXIT_SUCCESS) { $result = $this->DmsVersionModel->update( array( - $dms['dms_id'], - $dms['version'] + $dms["dms_id"], + $dms["version"] ), $this->DmsVersionModel->filterFields($dms) ); @@ -118,10 +127,10 @@ class Dms extends APIv1_Controller if (isset($dms_id)) { - $result = $this->DmsModel->addJoin('campus.tbl_dms_version', 'dms_id'); + $result = $this->DmsModel->addJoin("campus.tbl_dms_version", "dms_id"); if ($result->error == EXIT_SUCCESS) { - $result = $this->DmsModel->addOrder('version', 'DESC'); + $result = $this->DmsModel->addOrder("version", "DESC"); if ($result->error == EXIT_SUCCESS) { $result = $this->DmsModel->addLimit(1); @@ -129,11 +138,11 @@ class Dms extends APIv1_Controller { if (!isset($version)) { - $result = $this->DmsModel->loadWhere(array('dms_id' => $dms_id)); + $result = $this->DmsModel->loadWhere(array("dms_id" => $dms_id)); } else { - $result = $this->DmsModel->loadWhere(array('dms_id' => $dms_id, 'version' => $version)); + $result = $this->DmsModel->loadWhere(array("dms_id" => $dms_id, "version" => $version)); } } } @@ -148,13 +157,13 @@ class Dms extends APIv1_Controller */ private function _saveFileOnUpdate($dms) { - if(isset($dms['version'])) + if(isset($dms["version"])) { - $result = $this->_getDms($dms['dms_id'], $dms['version']); + $result = $this->_getDms($dms["dms_id"], $dms["version"]); if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval) && count($result->retval) > 0) { - $result = $this->DmsFSModel->write($result->retval[0]->filename, $dms['file_content']); + $result = $this->DmsFSModel->write($result->retval[0]->filename, $dms["file_content"]); if (is_object($result) && $result->error == EXIT_SUCCESS) { return true; @@ -170,9 +179,9 @@ class Dms extends APIv1_Controller */ private function _saveFileOnInsert($dms) { - $filename = uniqid() . '.' . pathinfo($dms['name'], PATHINFO_EXTENSION); + $filename = uniqid() . "." . pathinfo($dms["name"], PATHINFO_EXTENSION); - $result = $this->DmsFSModel->write($filename, $dms['file_content']); + $result = $this->DmsFSModel->write($filename, $dms["file_content"]); if (is_object($result) && $result->error == EXIT_SUCCESS) { return $filename; @@ -183,11 +192,11 @@ class Dms extends APIv1_Controller private function _validate($dms = NULL) { - if (!isset($dms['file_content']) || (isset($dms['file_content']) && $dms['file_content'] == '')) + if (!isset($dms["file_content"]) || (isset($dms["file_content"]) && $dms["file_content"] == "")) { return false; } - if (!isset($dms['name']) || (isset($dms['name']) && $dms['name'] == '')) + if (!isset($dms["name"]) || (isset($dms["name"]) && $dms["name"] == "")) { return false; } diff --git a/application/models/system/Message_model.php b/application/models/system/Message_model.php index 33cbc788f..966927d34 100644 --- a/application/models/system/Message_model.php +++ b/application/models/system/Message_model.php @@ -93,16 +93,26 @@ class Message_model extends DB_Model FROM public.tbl_msg_recipient r JOIN public.tbl_msg_message m USING (message_id) JOIN public.tbl_person p ON (p.person_id = m.person_id) JOIN ( - SELECT * FROM public.tbl_msg_status ORDER BY insertamum DESC + SELECT message_id, person_id, status, statusinfo, insertamum + FROM public.tbl_msg_status + %s + ORDER BY insertamum DESC ) s ON (m.message_id = s.message_id AND r.person_id = s.person_id) WHERE r.person_id = ?"; - if ($all != "true") + $parametersArray = array($person_id); + + if ($all == "true") { - $sql .= " AND (s.status < 3 OR s.status IS NULL)"; + $sql = sprintf($sql, ""); + } + else + { + array_push($parametersArray, $person_id, $person_id); + $sql = sprintf($sql, "WHERE person_id = ? AND message_id NOT IN (SELECT message_id FROM public.tbl_msg_status WHERE status >= 3 AND person_id = ?)"); } - $result = $this->db->query($sql, array($person_id)); + $result = $this->db->query($sql, $parametersArray); if (is_object($result)) return $this->_success($result->result()); else