From f0b710b26681f9871c8e0fe31bb5d99f2c90d68f Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 13 Feb 2017 20:21:22 +0100 Subject: [PATCH 1/6] change fullname to fullName --- SeedDMS_Core/Core/inc.ClassDMS.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index d74b0ead7..1dd3770de 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -2154,7 +2154,7 @@ class SeedDMS_Core_DMS { function getStatisticalData($type='') { /* {{{ */ switch($type) { case 'docsperuser': - $queryStr = "select b.`fullname` as `key`, count(`owner`) as total from `tblDocuments` a left join `tblUsers` b on a.`owner`=b.`id` group by `owner`"; + $queryStr = "select b.`fullName` as `key`, count(`owner`) as total from `tblDocuments` a left join `tblUsers` b on a.`owner`=b.`id` group by `owner`"; $resArr = $this->db->getResultArray($queryStr); if (!$resArr) return false; @@ -2206,7 +2206,7 @@ class SeedDMS_Core_DMS { } return $resArr; case 'sizeperuser': - $queryStr = "select c.`fullname` as `key`, sum(`fileSize`) as total from `tblDocuments` a left join `tblDocumentContent` b on a.id=b.`document` left join `tblUsers` c on a.`owner`=c.`id` group by a.`owner`"; + $queryStr = "select c.`fullName` as `key`, sum(`fileSize`) as total from `tblDocuments` a left join `tblDocumentContent` b on a.id=b.`document` left join `tblUsers` c on a.`owner`=c.`id` group by a.`owner`"; $resArr = $this->db->getResultArray($queryStr); if (!$resArr) return false; From 0fbc5cc2895e19394857a911ee9bfcedf0c18beb Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 14 Feb 2017 06:22:36 +0100 Subject: [PATCH 2/6] do not use x,y syntax in limit clause --- SeedDMS_Core/Core/inc.ClassDocument.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index aa49839fd..b6dc22037 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -1429,7 +1429,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ function getLatestContent() { /* {{{ */ if (!isset($this->_latestContent)) { $db = $this->_dms->getDB(); - $queryStr = "SELECT * FROM tblDocumentContent WHERE document = ".$this->_id." ORDER BY version DESC LIMIT 0,1"; + $queryStr = "SELECT * FROM tblDocumentContent WHERE document = ".$this->_id." ORDER BY version DESC LIMIT 1"; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) return false; From d9aaad16d342eeaf4a6a0967d8ba3bb139783f12 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 14 Feb 2017 06:29:23 +0100 Subject: [PATCH 3/6] add missing backticks around identifier in sql statement --- SeedDMS_Core/Core/inc.ClassDocument.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index a71295c9f..747b1156c 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -2801,7 +2801,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ if (1 || !isset($this->_approvalStatus)) { /* First get a list of all approvals for this document content */ $queryStr= - "SELECT approveID FROM `tblDocumentApprovers` WHERE `version`='".$this->_version + "SELECT `approveID` FROM `tblDocumentApprovers` WHERE `version`='".$this->_version ."' AND `documentID` = '". $this->_document->getID() ."' "; $recs = $db->getResultArray($queryStr); if (is_bool($recs) && !$recs) From f976bf0e83f917703797956088fd1e3ac1903a2a Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 14 Feb 2017 07:15:14 +0100 Subject: [PATCH 4/6] check if temp table ttcontentid exists in sql statement --- SeedDMS_Core/Core/inc.DBAccessPDO.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.DBAccessPDO.php b/SeedDMS_Core/Core/inc.DBAccessPDO.php index 6a23c636a..f59355cd3 100644 --- a/SeedDMS_Core/Core/inc.DBAccessPDO.php +++ b/SeedDMS_Core/Core/inc.DBAccessPDO.php @@ -412,7 +412,7 @@ class SeedDMS_Core_DatabaseAccess { else if (!strcasecmp($tableName, "ttcontentid")) { switch($this->_driver) { case 'sqlite': - $queryStr = "CREATE TEMPORARY TABLE `ttcontentid` AS ". + $queryStr = "CREATE TEMPORARY TABLE IF NOT EXISTS `ttcontentid` AS ". "SELECT `tblDocumentContent`.`document` AS `document`, ". "MAX(`tblDocumentContent`.`version`) AS `maxVersion` ". "FROM `tblDocumentContent` ". @@ -420,7 +420,7 @@ class SeedDMS_Core_DatabaseAccess { "ORDER BY `tblDocumentContent`.`document`"; break; default: - $queryStr = "CREATE TEMPORARY TABLE `ttcontentid` (PRIMARY KEY (`document`), INDEX (`maxVersion`)) ". + $queryStr = "CREATE TEMPORARY TABLE IF NOT EXISTS `ttcontentid` (PRIMARY KEY (`document`), INDEX (`maxVersion`)) ". "SELECT `tblDocumentContent`.`document`, ". "MAX(`tblDocumentContent`.`version`) AS `maxVersion` ". "FROM `tblDocumentContent` ". From 9c7605d40aaf3b7183ece0b6a57626b6a4f9f78f Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 14 Feb 2017 08:29:03 +0100 Subject: [PATCH 5/6] add method getSearchFields() ind ClassDocument and use in search() --- SeedDMS_Core/Core/inc.ClassDMS.php | 20 ++-------------- SeedDMS_Core/Core/inc.ClassDocument.php | 32 ++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 19 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 1dd3770de..c109a33b3 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -838,25 +838,9 @@ class SeedDMS_Core_DMS { $totalDocs = 0; if($mode & 0x1) { $searchKey = ""; - $searchFields = array(); - if (in_array(1, $searchin)) { - $searchFields[] = "`tblDocuments`.`keywords`"; - } - if (in_array(2, $searchin)) { - $searchFields[] = "`tblDocuments`.`name`"; - } - if (in_array(3, $searchin)) { - $searchFields[] = "`tblDocuments`.`comment`"; - $searchFields[] = "`tblDocumentContent`.`comment`"; - } - if (in_array(4, $searchin)) { - $searchFields[] = "`tblDocumentAttributes`.`value`"; - $searchFields[] = "`tblDocumentContentAttributes`.`value`"; - } - if (in_array(5, $searchin)) { - $searchFields[] = "`tblDocuments`.`id`"; - } + $classname = $this->classnames['document']; + $searchFields = $classname::getSearchFields($searchin); if (count($searchFields)>0) { foreach ($tkeys as $key) { diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index 747b1156c..a74fc04f4 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -167,6 +167,37 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $this->_notifyList = array(); } /* }}} */ + /** + * Return an array of database fields which used for searching + * a term entered in the database search form + * + * @param array $searchin integer list of search scopes (2=name, 3=comment, + * 4=attributes) + * @return array list of database fields + */ + public static function getSearchFields($searchin) { /* {{{ */ + $searchFields = array(); + if (in_array(1, $searchin)) { + $searchFields[] = "`tblDocuments`.`keywords`"; + } + if (in_array(2, $searchin)) { + $searchFields[] = "`tblDocuments`.`name`"; + } + if (in_array(3, $searchin)) { + $searchFields[] = "`tblDocuments`.`comment`"; + $searchFields[] = ""tblDocumentContent`.`comment`"; + } + if (in_array(4, $searchin)) { + $searchFields[] = "`tblDocumentAttributes`.`value`"; + $searchFields[] = "`tblDocumentContentAttributes`.`value`"; + } + if (in_array(5, $searchin)) { + $searchFields[] = "`tblDocuments`.`id`"; + } + + return $searchFields; + } /* }}} */ + public static function getInstance($id, $dms) { /* {{{ */ $db = $dms->getDB(); @@ -196,7 +227,6 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ return $document; } /* }}} */ - /* * Return the directory of the document in the file system relativ * to the contentDir From f251e30f5a5085f426f4bc0dad73dbca213194eb Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 14 Feb 2017 08:38:57 +0100 Subject: [PATCH 6/6] fix sql error --- SeedDMS_Core/Core/inc.ClassDocument.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index a74fc04f4..935c20221 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -185,7 +185,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ } if (in_array(3, $searchin)) { $searchFields[] = "`tblDocuments`.`comment`"; - $searchFields[] = ""tblDocumentContent`.`comment`"; + $searchFields[] = "`tblDocumentContent`.`comment`"; } if (in_array(4, $searchin)) { $searchFields[] = "`tblDocumentAttributes`.`value`";