Commit ac143de2914e51d9e9a0206b4509975125bd0188
1 parent
e5612a2d
"CLONE -Custom Numbering Plugin - Workflow Transition (SUP-1248)"
KTC-654 Implemented dynamic generation of metadata fieldsets. Committed by: Donald Jackson Reviewed by: Kevin Fourie git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/branches/RB_3.5.4a@9673 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
2 changed files
with
48 additions
and
20 deletions
lib/documentmanagement/documentmetadataversion.inc.php
| @@ -72,26 +72,9 @@ class KTDocumentMetadataVersion extends KTEntity { | @@ -72,26 +72,9 @@ class KTDocumentMetadataVersion extends KTEntity { | ||
| 72 | var $iWorkflowId; | 72 | var $iWorkflowId; |
| 73 | var $iWorkflowStateId; | 73 | var $iWorkflowStateId; |
| 74 | 74 | ||
| 75 | - var $_aFieldToSelect = array( | ||
| 76 | - "iId" => "id", | ||
| 77 | - | ||
| 78 | - "iDocumentId" => 'document_id', | ||
| 79 | - "iMetadataVersion" => 'metadata_version', | ||
| 80 | - "iContentVersionId" => 'content_version_id', | ||
| 81 | - | ||
| 82 | - "iDocumentTypeId" => 'document_type_id', | ||
| 83 | - | ||
| 84 | - "sName" => 'name', | ||
| 85 | - "sDescription" => 'description', | ||
| 86 | - | ||
| 87 | - "iStatusId" => 'status_id', | ||
| 88 | - | ||
| 89 | - "dVersionCreated" => 'version_created', | ||
| 90 | - "iVersionCreatorId" => 'version_creator_id', | ||
| 91 | - | ||
| 92 | - "iWorkflowId" => 'workflow_id', | ||
| 93 | - "iWorkflowStateId" => 'workflow_state_id', | ||
| 94 | - ); | 75 | + var $_aFieldToSelect; |
| 76 | + | ||
| 77 | + public static $_versionFields = null; | ||
| 95 | 78 | ||
| 96 | // {{{ getters/setters | 79 | // {{{ getters/setters |
| 97 | function getDocumentId() { return $this->iDocumentId; } | 80 | function getDocumentId() { return $this->iDocumentId; } |
| @@ -118,6 +101,41 @@ class KTDocumentMetadataVersion extends KTEntity { | @@ -118,6 +101,41 @@ class KTDocumentMetadataVersion extends KTEntity { | ||
| 118 | function getWorkflowStateId() { return $this->iWorkflowStateId; } | 101 | function getWorkflowStateId() { return $this->iWorkflowStateId; } |
| 119 | function setWorkflowStateId($mValue) { $this->iWorkflowStateId = $mValue; } | 102 | function setWorkflowStateId($mValue) { $this->iWorkflowStateId = $mValue; } |
| 120 | // }}} | 103 | // }}} |
| 104 | + | ||
| 105 | + function __construct() { | ||
| 106 | + $this->_aFieldToSelect = KTDocumentMetaDataVersion::getFieldsToSelect(); | ||
| 107 | + } | ||
| 108 | + | ||
| 109 | + static | ||
| 110 | + function getFieldsToSelect() { | ||
| 111 | + if(self::$_versionFields == null) { | ||
| 112 | + $sTable = KTUtil::getTableName('document_metadata_version'); | ||
| 113 | + $aFields = DBUtil::getResultArray(array("DESCRIBE $sTable")); | ||
| 114 | + $result = array(); | ||
| 115 | + for($i=0;$i<count($aFields);$i++) { | ||
| 116 | + $result[KTDocumentMetaDataVersion::getFieldType($aFields[$i]['Type']).KTUtil::camelize($aFields[$i]['Field'])] = $aFields[$i]['Field']; | ||
| 117 | + } | ||
| 118 | + self::$_versionFields = $result; | ||
| 119 | + } | ||
| 120 | + return self::$_versionFields; | ||
| 121 | + } | ||
| 122 | + | ||
| 123 | + static | ||
| 124 | + function getFieldType($dbType) { | ||
| 125 | + /* Integer test */ | ||
| 126 | + if(strpos($dbType, "int") !== FALSE) { | ||
| 127 | + return "i"; | ||
| 128 | + } | ||
| 129 | + | ||
| 130 | + /* Time test */ | ||
| 131 | + if(strpos($dbType, "time") !== FALSE) { | ||
| 132 | + return "d"; | ||
| 133 | + } | ||
| 134 | + | ||
| 135 | + /* Default */ | ||
| 136 | + return "s"; | ||
| 137 | + } | ||
| 138 | + | ||
| 121 | 139 | ||
| 122 | function &createFromArray($aOptions) { | 140 | function &createFromArray($aOptions) { |
| 123 | return KTEntityUtil::createFromArray('KTDocumentMetadataVersion', $aOptions); | 141 | return KTEntityUtil::createFromArray('KTDocumentMetadataVersion', $aOptions); |
lib/util/ktutil.inc
| @@ -1343,6 +1343,16 @@ class KTUtil { | @@ -1343,6 +1343,16 @@ class KTUtil { | ||
| 1343 | return false; | 1343 | return false; |
| 1344 | } | 1344 | } |
| 1345 | } | 1345 | } |
| 1346 | + | ||
| 1347 | + static | ||
| 1348 | + function camelize($string) { | ||
| 1349 | + $result = ""; | ||
| 1350 | + $parts = explode("_", $string); | ||
| 1351 | + for($i=0;$i<count($parts);$i++) { | ||
| 1352 | + $result .= ucfirst($parts[$i]); | ||
| 1353 | + } | ||
| 1354 | + return $result; | ||
| 1355 | + } | ||
| 1346 | } | 1356 | } |
| 1347 | 1357 | ||
| 1348 | /** | 1358 | /** |