add and use SeedDMS_Core_DocumentContent::getInstance()

This commit is contained in:
Uwe Steinmann 2018-02-21 12:34:51 +01:00
parent 414532db25
commit cb287741d0
2 changed files with 36 additions and 13 deletions

View File

@ -823,19 +823,8 @@ class SeedDMS_Core_DMS {
* @return bool|SeedDMS_Core_Document or false * @return bool|SeedDMS_Core_Document or false
*/ */
function getDocumentContent($id) { /* {{{ */ function getDocumentContent($id) { /* {{{ */
if (!is_numeric($id)) return false; $classname = $this->classnames['documentcontent'];
return $classname::getInstance($id, $this);
$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;
} /* }}} */ } /* }}} */
/** /**

View File

@ -3120,6 +3120,40 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */
$this->_revisionDate = $revisionDate; $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 getVersion() { return $this->_version; }
function getComment() { return $this->_comment; } function getComment() { return $this->_comment; }
function getDate() { return $this->_date; } function getDate() { return $this->_date; }