From cb287741d0bb4d3bd121f9c0051bfd7ee3f669a9 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 21 Feb 2018 12:34:51 +0100 Subject: [PATCH] add and use SeedDMS_Core_DocumentContent::getInstance() --- SeedDMS_Core/Core/inc.ClassDMS.php | 15 ++--------- SeedDMS_Core/Core/inc.ClassDocument.php | 34 +++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index fc8585bc0..d00e647bd 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -823,19 +823,8 @@ class SeedDMS_Core_DMS { * @return bool|SeedDMS_Core_Document or false */ function getDocumentContent($id) { /* {{{ */ - if (!is_numeric($id)) return false; - - $queryStr = "SELECT * FROM `tblDocumentContent` WHERE `id` = ".(int) $id; - $resArr = $this->db->getResultArray($queryStr); - if (is_bool($resArr) && $resArr == false) - return false; - if (count($resArr) != 1) - return false; - $row = $resArr[0]; - - $document = $this->getDocument($row['document']); - $version = new $this->classnames['documentcontent']($row['id'], $document, $row['version'], $row['comment'], $row['date'], $row['createdBy'], $row['dir'], $row['orgFileName'], $row['fileType'], $row['mimeType'], $row['fileSize'], $row['checksum']); - return $version; + $classname = $this->classnames['documentcontent']; + return $classname::getInstance($id, $this); } /* }}} */ /** diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index c27c479a0..862a1879a 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -3120,6 +3120,40 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $this->_revisionDate = $revisionDate; } /* }}} */ + /** + * Return an document content by its id + * + * @param integer $id id of document + * @param SeedDMS_Core_DMS $dms + * @return bool|SeedDMS_Core_DocumentContent instance of SeedDMS_Core_DocumentContent + * if document content exists, null if document does not exist, false in case of error + */ + public static function getInstance($id, $dms) { /* {{{ */ + $db = $dms->getDB(); + + $queryStr = "SELECT * FROM `tblDocumentContent` WHERE `id` = " . (int) $id; + $resArr = $db->getResultArray($queryStr); + if (is_bool($resArr) && $resArr == false) + return false; + if (count($resArr) != 1) + return null; + $row = $resArr[0]; + + $classname = $dms->getClassname('documentcontent'); + $user = $dms->getLoggedInUser(); + $document = $dms->getDocument($row['document']); + $document->setDMS($dms); + /** @var SeedDMS_Core_DocumentContent $documentcontent */ + $content = new $classname($row["id"], $document, $row["version"], $row["comment"], $row["date"], $row["createdBy"], $row["dir"], $row["orgFileName"], $row["fileType"], $row["mimeType"], $row['fileSize'], $row['checksum'], $row['revisiondate']); + if($user) { + if($content->getAccessMode($user) >= M_READ) + return $content; + } else { + return $content; + } + return null; + } /* }}} */ + function getVersion() { return $this->_version; } function getComment() { return $this->_comment; } function getDate() { return $this->_date; }