Commit bc7af7924e3f389df17892b829216d86807723b4
1 parent
8e953826
Various changes to ktcmis code made while implementing atompub responses. Moved…
… ktcmis code into lib/api/ to clean up the root of the folder tree. Committed by: Paul Barrett
Showing
17 changed files
with
207 additions
and
198 deletions
ktcmis/classes/CMISBaseObject.inc.php renamed to lib/api/ktcmis/classes/CMISBaseObject.inc.php
| @@ -40,10 +40,9 @@ | @@ -40,10 +40,9 @@ | ||
| 40 | * @version Version 0.1 | 40 | * @version Version 0.1 |
| 41 | */ | 41 | */ |
| 42 | 42 | ||
| 43 | -require_once(CMIS_DIR . '/classes/CMISObject.inc.php'); | 43 | +//require_once(CMIS_DIR . '/classes/CMISObject.inc.php'); |
| 44 | 44 | ||
| 45 | -// NOTE chemistry class was abstract but this has gone in a different direction anyway | ||
| 46 | -abstract class CMISBaseObject implements CMISObject { | 45 | +abstract class CMISBaseObject { |
| 47 | 46 | ||
| 48 | protected $typeId; | 47 | protected $typeId; |
| 49 | protected $queryName; | 48 | protected $queryName; |
| @@ -60,7 +59,7 @@ abstract class CMISBaseObject implements CMISObject { | @@ -60,7 +59,7 @@ abstract class CMISBaseObject implements CMISObject { | ||
| 60 | 59 | ||
| 61 | protected $properties; // list of property objects which define the additional properties for this object | 60 | protected $properties; // list of property objects which define the additional properties for this object |
| 62 | 61 | ||
| 63 | - // TODO all we have here so far is getAttributes & getProperties :) | 62 | + // TODO all we have here so far is getAttributes & getProperties |
| 64 | // add all the other methods as we go along | 63 | // add all the other methods as we go along |
| 65 | 64 | ||
| 66 | function __construct() | 65 | function __construct() |
ktcmis/classes/CMISDocumentPropertyCollection.inc.php renamed to lib/api/ktcmis/classes/CMISDocumentPropertyCollection.inc.php
| @@ -47,21 +47,26 @@ require_once(CMIS_DIR . '/classes/CMISPropertyCollection.inc.php'); | @@ -47,21 +47,26 @@ require_once(CMIS_DIR . '/classes/CMISPropertyCollection.inc.php'); | ||
| 47 | */ | 47 | */ |
| 48 | class CMISDocumentPropertyCollection extends CMISPropertyCollection { | 48 | class CMISDocumentPropertyCollection extends CMISPropertyCollection { |
| 49 | 49 | ||
| 50 | - static $name; | ||
| 51 | - static $isImmutable; | ||
| 52 | - static $isLatestVersion; | ||
| 53 | - static $isMajorVersion; | ||
| 54 | - static $isLatestMajorVersion; | ||
| 55 | - static $versionLabel; | ||
| 56 | - static $versionSeriesId; | ||
| 57 | - static $isVersionSeriesCheckedOut; | ||
| 58 | - static $versionSeriesCheckedOutBy; | ||
| 59 | - static $versionSeriesCheckedOutId; | ||
| 60 | - static $checkinComment; | ||
| 61 | - static $contentStreamLength; | ||
| 62 | - static $contentStreamMimeType; | ||
| 63 | - static $contentStreamFilename; | ||
| 64 | - static $contentStreamUri; | 50 | + static $Name; |
| 51 | + static $IsImmutable; | ||
| 52 | + static $IsLatestVersion; | ||
| 53 | + static $IsMajorVersion; | ||
| 54 | + static $IsLatestMajorVersion; | ||
| 55 | + static $VersionLabel; | ||
| 56 | + static $VersionSeriesId; | ||
| 57 | + static $IsVersionSeriesCheckedOut; | ||
| 58 | + static $VersionSeriesCheckedOutBy; | ||
| 59 | + static $VersionSeriesCheckedOutId; | ||
| 60 | + static $CheckinComment; | ||
| 61 | + static $ContentStreamLength; | ||
| 62 | + static $ContentStreamMimeType; | ||
| 63 | + static $ContentStreamFilename; | ||
| 64 | + static $ContentStreamUri; | ||
| 65 | + | ||
| 66 | + function __construct() | ||
| 67 | + { | ||
| 68 | + parent::__construct(); | ||
| 69 | + } | ||
| 65 | 70 | ||
| 66 | } | 71 | } |
| 67 | 72 |
ktcmis/classes/CMISFolderPropertyCollection.inc.php renamed to lib/api/ktcmis/classes/CMISFolderPropertyCollection.inc.php
| @@ -47,9 +47,14 @@ require_once(CMIS_DIR . '/classes/CMISPropertyCollection.inc.php'); | @@ -47,9 +47,14 @@ require_once(CMIS_DIR . '/classes/CMISPropertyCollection.inc.php'); | ||
| 47 | */ | 47 | */ |
| 48 | class CMISFolderPropertyCollection extends CMISPropertyCollection { | 48 | class CMISFolderPropertyCollection extends CMISPropertyCollection { |
| 49 | 49 | ||
| 50 | - static $name; | ||
| 51 | - static $parentId; | ||
| 52 | - static $allowedChildObjectTypeIds; | 50 | + static $Name; |
| 51 | + static $ParentId; | ||
| 52 | + static $AllowedChildObjectTypeIds; | ||
| 53 | + | ||
| 54 | + function __construct() | ||
| 55 | + { | ||
| 56 | + parent::__construct(); | ||
| 57 | + } | ||
| 53 | 58 | ||
| 54 | } | 59 | } |
| 55 | 60 |
ktcmis/classes/CMISObject.inc.php renamed to lib/api/ktcmis/classes/CMISObject.inc.php
ktcmis/classes/CMISObjectTypes.inc.php renamed to lib/api/ktcmis/classes/CMISObjectTypes.inc.php
ktcmis/classes/CMISPropertyCollection.inc.php renamed to lib/api/ktcmis/classes/CMISPropertyCollection.inc.php
| @@ -45,14 +45,26 @@ | @@ -45,14 +45,26 @@ | ||
| 45 | */ | 45 | */ |
| 46 | abstract class CMISPropertyCollection { | 46 | abstract class CMISPropertyCollection { |
| 47 | 47 | ||
| 48 | - static $objectId; | 48 | + static $ObjectId; |
| 49 | static $URI; | 49 | static $URI; |
| 50 | - static $typeId; | ||
| 51 | - static $createdBy; | ||
| 52 | - static $creationDate; | ||
| 53 | - static $lastModifiedBy; | ||
| 54 | - static $lastModificationDate; | ||
| 55 | - static $changeToken; | 50 | + static $ObjectTypeId; |
| 51 | + static $CreatedBy; | ||
| 52 | + static $CreationDate; | ||
| 53 | + static $LastModifiedBy; | ||
| 54 | + static $LastModificationDate; | ||
| 55 | + static $ChangeToken; | ||
| 56 | + | ||
| 57 | + // TODO these definitions probably belong elsewhere, but here will do for now | ||
| 58 | + static $propertyTypes; | ||
| 59 | + | ||
| 60 | + function __construct() | ||
| 61 | + { | ||
| 62 | + $this->propertyTypes = array('ObjectId' => 'propertyId', 'BaseType' => 'propertyString', | ||
| 63 | + 'ObjectTypeId' => 'propertyString', 'CreatedBy' => 'propertyString', | ||
| 64 | + 'CreationDate' => 'propertyDateTime', 'LastModifiedBy' => 'propertyString', | ||
| 65 | + 'LastModificationDate' => 'propertyDateTime', 'Name' => 'propertyString', | ||
| 66 | + 'ParentId' => 'propertyId'); | ||
| 67 | + } | ||
| 56 | 68 | ||
| 57 | /** | 69 | /** |
| 58 | * Gets the property value. | 70 | * Gets the property value. |
| @@ -71,6 +83,11 @@ abstract class CMISPropertyCollection { | @@ -71,6 +83,11 @@ abstract class CMISPropertyCollection { | ||
| 71 | $this->{$field} = $value; | 83 | $this->{$field} = $value; |
| 72 | } | 84 | } |
| 73 | 85 | ||
| 86 | + function getFieldType($field) | ||
| 87 | + { | ||
| 88 | + return $this->propertyTypes[$field]; | ||
| 89 | + } | ||
| 90 | + | ||
| 74 | } | 91 | } |
| 75 | 92 | ||
| 76 | ?> | 93 | ?> |
ktcmis/classes/CMISRepository.inc.php renamed to lib/api/ktcmis/classes/CMISRepository.inc.php
| @@ -98,13 +98,13 @@ class CMISRepository { | @@ -98,13 +98,13 @@ class CMISRepository { | ||
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | // set capabilities | 100 | // set capabilities |
| 101 | - foreach($config->repositoryCapabilities->children() as $field => $value) | 101 | + foreach($config->repositoryCapabilities[0] as $field => $value) |
| 102 | { | 102 | { |
| 103 | $this->setCapabilityField($field, (string)$value); | 103 | $this->setCapabilityField($field, (string)$value); |
| 104 | } | 104 | } |
| 105 | 105 | ||
| 106 | // set supported document types | 106 | // set supported document types |
| 107 | - foreach($config->supportedTypes->children() as $field => $value) | 107 | + foreach($config->supportedTypes[0] as $field => $value) |
| 108 | { | 108 | { |
| 109 | $this->objectTypes[] = (string)$value; | 109 | $this->objectTypes[] = (string)$value; |
| 110 | } | 110 | } |
ktcmis/classes/CMISRepositoryCapabilities.inc.php renamed to lib/api/ktcmis/classes/CMISRepositoryCapabilities.inc.php
ktcmis/classes/CMISRepositoryInfo.inc.php renamed to lib/api/ktcmis/classes/CMISRepositoryInfo.inc.php
ktcmis/config/repositories.xml renamed to lib/api/ktcmis/config/repositories.xml
| @@ -12,15 +12,15 @@ | @@ -12,15 +12,15 @@ | ||
| 12 | <repository> | 12 | <repository> |
| 13 | <repositoryURI>http://127.0.0.1/</repositoryURI> | 13 | <repositoryURI>http://127.0.0.1/</repositoryURI> |
| 14 | <repositoryInfo> | 14 | <repositoryInfo> |
| 15 | - <repositoryId>1</repositoryId> | 15 | + <repositoryId>0ad7de04-7914-41b1-b5ee-be9f0b626437</repositoryId> |
| 16 | <repositoryName>KnowledgeTree</repositoryName> | 16 | <repositoryName>KnowledgeTree</repositoryName> |
| 17 | <repositoryRelationship>self</repositoryRelationship> | 17 | <repositoryRelationship>self</repositoryRelationship> |
| 18 | <repositoryDescription>KnowledgeTree Repository</repositoryDescription> | 18 | <repositoryDescription>KnowledgeTree Repository</repositoryDescription> |
| 19 | <vendorName>KnowledgeTree</vendorName> | 19 | <vendorName>KnowledgeTree</vendorName> |
| 20 | - <productName>KnowledgeTree</productName> | 20 | + <productName>KnowledgeTree Document Management System</productName> |
| 21 | <productVersion>3.6.2</productVersion> | 21 | <productVersion>3.6.2</productVersion> |
| 22 | - <rootFolderId>1</rootFolderId> | ||
| 23 | - <cmisVersionsSupported>cmis 0.61c</cmisVersionsSupported> | 22 | + <rootFolderId>F1</rootFolderId> |
| 23 | + <cmisVersionsSupported>0.61c</cmisVersionsSupported> | ||
| 24 | </repositoryInfo> | 24 | </repositoryInfo> |
| 25 | <repositoryCapabilities> | 25 | <repositoryCapabilities> |
| 26 | <capabilityMultifiling>false</capabilityMultifiling> | 26 | <capabilityMultifiling>false</capabilityMultifiling> |
| @@ -41,7 +41,7 @@ | @@ -41,7 +41,7 @@ | ||
| 41 | <repository> | 41 | <repository> |
| 42 | <repositoryURI>http://12s7.w0.0.1/</repositoryURI> | 42 | <repositoryURI>http://12s7.w0.0.1/</repositoryURI> |
| 43 | <repositoryInfo> | 43 | <repositoryInfo> |
| 44 | - <repositoryId>44</repositoryId> | 44 | + <repositoryId>b60bd6c5-e8f9-4776-b292-8d544468c9e4</repositoryId> |
| 45 | <repositoryName>asdasdasd</repositoryName> | 45 | <repositoryName>asdasdasd</repositoryName> |
| 46 | <repositoryRelationship>self</repositoryRelationship> | 46 | <repositoryRelationship>self</repositoryRelationship> |
| 47 | <repositoryDescription>KnowledgeTree Repository</repositoryDescription> | 47 | <repositoryDescription>KnowledgeTree Repository</repositoryDescription> |
| @@ -49,7 +49,7 @@ | @@ -49,7 +49,7 @@ | ||
| 49 | <productName>KnowledgeTree</productName> | 49 | <productName>KnowledgeTree</productName> |
| 50 | <productVersion>3.6.1</productVersion> | 50 | <productVersion>3.6.1</productVersion> |
| 51 | <rootFolderId>1</rootFolderId> | 51 | <rootFolderId>1</rootFolderId> |
| 52 | - <cmisVersionsSupported>0.61</cmisVersionsSupported> | 52 | + <cmisVersionsSupported>0.61c</cmisVersionsSupported> |
| 53 | </repositoryInfo> | 53 | </repositoryInfo> |
| 54 | <repositoryCapabilities> | 54 | <repositoryCapabilities> |
| 55 | <capabilityMultifiling>false</capabilityMultifiling> | 55 | <capabilityMultifiling>false</capabilityMultifiling> |
ktcmis/ktcmis.inc.php renamed to lib/api/ktcmis/ktcmis.inc.php
| @@ -40,39 +40,29 @@ | @@ -40,39 +40,29 @@ | ||
| 40 | * @version Version 0.9 | 40 | * @version Version 0.9 |
| 41 | */ | 41 | */ |
| 42 | 42 | ||
| 43 | +/** | ||
| 44 | + * Split into individual classes to handle each section of functionality. | ||
| 45 | + * This is really just a handling layer between CMIS and the web services. | ||
| 46 | + */ | ||
| 47 | + | ||
| 43 | // TODO implement exceptions in various calls (in the underlying classes) | 48 | // TODO implement exceptions in various calls (in the underlying classes) |
| 44 | // FIXME none of the error handling actually does anything, it's leftover from copy/paste of some ktapi code | 49 | // FIXME none of the error handling actually does anything, it's leftover from copy/paste of some ktapi code |
| 45 | 50 | ||
| 46 | -require_once(realpath(dirname(__FILE__) . '/../config/dmsDefaults.php')); | 51 | +require_once(realpath(dirname(__FILE__) . '/../../../config/dmsDefaults.php')); |
| 47 | require_once(KT_DIR . '/ktapi/ktapi.inc.php'); | 52 | require_once(KT_DIR . '/ktapi/ktapi.inc.php'); |
| 48 | 53 | ||
| 49 | -define ('CMIS_DIR', KT_DIR . '/ktcmis'); | 54 | +define ('CMIS_DIR', KT_LIB_DIR . '/api/ktcmis'); |
| 50 | require_once(CMIS_DIR . '/services/CMISRepositoryService.inc.php'); | 55 | require_once(CMIS_DIR . '/services/CMISRepositoryService.inc.php'); |
| 51 | require_once(CMIS_DIR . '/services/CMISNavigationService.inc.php'); | 56 | require_once(CMIS_DIR . '/services/CMISNavigationService.inc.php'); |
| 52 | require_once(CMIS_DIR . '/services/CMISObjectService.inc.php'); | 57 | require_once(CMIS_DIR . '/services/CMISObjectService.inc.php'); |
| 53 | require_once(CMIS_DIR . '/util/CMISUtil.inc.php'); | 58 | require_once(CMIS_DIR . '/util/CMISUtil.inc.php'); |
| 54 | 59 | ||
| 55 | -class KTCMIS { | 60 | +/** |
| 61 | + * Handles authentication | ||
| 62 | + */ | ||
| 63 | +class KTCMISBase { | ||
| 56 | 64 | ||
| 57 | /** | 65 | /** |
| 58 | - * Class for CMIS Repository Services | ||
| 59 | - * | ||
| 60 | - * @var object | ||
| 61 | - */ | ||
| 62 | - protected $RepositoryService; | ||
| 63 | - /** | ||
| 64 | - * Class for CMIS Navigation Services | ||
| 65 | - * | ||
| 66 | - * @var object | ||
| 67 | - */ | ||
| 68 | - protected $NavigationService; | ||
| 69 | - /** | ||
| 70 | - * Class for CMIS Object Services | ||
| 71 | - * | ||
| 72 | - * @var object | ||
| 73 | - */ | ||
| 74 | - protected $ObjectService; | ||
| 75 | - /** | ||
| 76 | * KnowledgeTree API instance | 66 | * KnowledgeTree API instance |
| 77 | * | 67 | * |
| 78 | * @var object | 68 | * @var object |
| @@ -85,51 +75,41 @@ class KTCMIS { | @@ -85,51 +75,41 @@ class KTCMIS { | ||
| 85 | */ | 75 | */ |
| 86 | protected $session; | 76 | protected $session; |
| 87 | 77 | ||
| 88 | - function __construct(&$ktapi = null, $user = '', $password = '') | 78 | + public function startSession($username, $password) |
| 89 | { | 79 | { |
| 90 | - // ktapi interface | 80 | + global $default; |
| 81 | + $default->log->debug("attempt auth with $username :: $password"); | ||
| 91 | $this->session = null; | 82 | $this->session = null; |
| 92 | -// if (is_null($ktapi)) | ||
| 93 | -// { | ||
| 94 | -// // TODO this should probably throw an exception instead | ||
| 95 | -// return PEAR::RaiseError('Cannot continue without KTAPI instance'); | ||
| 96 | - // FIXME this CANNOT be allowed in a live environment | ||
| 97 | - // possibly we should insist on a ktapi instance being passed | ||
| 98 | - // or at least user/pass for logging in here, if one or other | ||
| 99 | - // not sent, return error | ||
| 100 | - $user = 'admin'; | ||
| 101 | - $password = 'admin'; | ||
| 102 | - $this->ktapi = new KTAPI(); | ||
| 103 | - $this->session = $this->ktapi->start_session($user, $password); | ||
| 104 | -// } | ||
| 105 | -// else | ||
| 106 | -// { | ||
| 107 | -// $this->ktapi = $ktapi; | ||
| 108 | -// } | ||
| 109 | - | ||
| 110 | - // instantiate services | ||
| 111 | - $this->RepositoryService = new CMISRepositoryService(); | ||
| 112 | - $this->NavigationService = new CMISNavigationService($this->ktapi); | ||
| 113 | - $this->ObjectService = new CMISObjectService($this->ktapi); | 83 | + // remove as soon as actual auth code is in place |
| 84 | + $username = 'admin'; | ||
| 85 | + $password = 'admin'; | ||
| 86 | + $this->ktapi = new KTAPI(); | ||
| 87 | + $this->session =& $this->ktapi->start_session($username, $password); | ||
| 88 | + | ||
| 89 | + if (PEAR::isError($this->session)) | ||
| 90 | + { | ||
| 91 | + $default->log->debug("FAILED $username :: $password FAILED"); | ||
| 92 | + } | ||
| 93 | + | ||
| 94 | + return $this->session; | ||
| 114 | } | 95 | } |
| 115 | 96 | ||
| 116 | - function __destruct() | 97 | + // TODO what about destroying sessions? |
| 98 | +} | ||
| 99 | + | ||
| 100 | +/** | ||
| 101 | + * Handles low level repository information queries | ||
| 102 | + */ | ||
| 103 | +class KTRepositoryService extends KTCMISBase { | ||
| 104 | + | ||
| 105 | + protected $RepositoryService; | ||
| 106 | + | ||
| 107 | + public function __construct() | ||
| 117 | { | 108 | { |
| 118 | -// if ($this->session instanceOf KTAPI_UserSession) | ||
| 119 | -// { | ||
| 120 | -// try | ||
| 121 | -// { | ||
| 122 | -// $this->session->logout(); | ||
| 123 | -// } | ||
| 124 | -// catch (Exception $e) | ||
| 125 | -// { | ||
| 126 | -// // no output | ||
| 127 | -// } | ||
| 128 | -// } | 109 | + // instantiate underlying CMIS service |
| 110 | + $this->RepositoryService = new CMISRepositoryService(); | ||
| 129 | } | 111 | } |
| 130 | 112 | ||
| 131 | - // Repository service functions | ||
| 132 | - | ||
| 133 | /** | 113 | /** |
| 134 | * Fetch a list of all available repositories | 114 | * Fetch a list of all available repositories |
| 135 | * | 115 | * |
| @@ -137,7 +117,7 @@ class KTCMIS { | @@ -137,7 +117,7 @@ class KTCMIS { | ||
| 137 | * | 117 | * |
| 138 | * @return repositoryList[] | 118 | * @return repositoryList[] |
| 139 | */ | 119 | */ |
| 140 | - function getRepositories() | 120 | + public function getRepositories() |
| 141 | { | 121 | { |
| 142 | $repositories = $this->RepositoryService->getRepositories(); | 122 | $repositories = $this->RepositoryService->getRepositories(); |
| 143 | if (PEAR::isError($repositories)) | 123 | if (PEAR::isError($repositories)) |
| @@ -170,7 +150,7 @@ class KTCMIS { | @@ -170,7 +150,7 @@ class KTCMIS { | ||
| 170 | * | 150 | * |
| 171 | * @param string $repositoryId | 151 | * @param string $repositoryId |
| 172 | */ | 152 | */ |
| 173 | - function getRepositoryInfo($repositoryId) | 153 | + public function getRepositoryInfo($repositoryId) |
| 174 | { | 154 | { |
| 175 | $repositoryInfo = $this->RepositoryService->getRepositoryInfo($repositoryId); | 155 | $repositoryInfo = $this->RepositoryService->getRepositoryInfo($repositoryId); |
| 176 | if (PEAR::isError($repositoryInfo)) | 156 | if (PEAR::isError($repositoryInfo)) |
| @@ -194,7 +174,7 @@ class KTCMIS { | @@ -194,7 +174,7 @@ class KTCMIS { | ||
| 194 | * | 174 | * |
| 195 | * @param string $repositoryId | 175 | * @param string $repositoryId |
| 196 | */ | 176 | */ |
| 197 | - function getTypes($repositoryId, $typeId = '', $returnPropertyDefinitions = false, | 177 | + public function getTypes($repositoryId, $typeId = '', $returnPropertyDefinitions = false, |
| 198 | $maxItems = 0, $skipCount = 0, &$hasMoreItems = false) | 178 | $maxItems = 0, $skipCount = 0, &$hasMoreItems = false) |
| 199 | { | 179 | { |
| 200 | $repositoryObjectTypeResult = $this->RepositoryService->getTypes($repositoryId, $typeId, $returnPropertyDefinitions, | 180 | $repositoryObjectTypeResult = $this->RepositoryService->getTypes($repositoryId, $typeId, $returnPropertyDefinitions, |
| @@ -229,10 +209,10 @@ class KTCMIS { | @@ -229,10 +209,10 @@ class KTCMIS { | ||
| 229 | * @param string $repositoryId | 209 | * @param string $repositoryId |
| 230 | * @param string $typeId | 210 | * @param string $typeId |
| 231 | */ | 211 | */ |
| 232 | - function getTypeDefinition($repositoryId, $typeId) | 212 | + public function getTypeDefinition($repositoryId, $typeId) |
| 233 | { | 213 | { |
| 234 | $typeDefinitionResult = $this->RepositoryService->getTypeDefinition($repositoryId, $typeId); | 214 | $typeDefinitionResult = $this->RepositoryService->getTypeDefinition($repositoryId, $typeId); |
| 235 | - | 215 | + |
| 236 | if (PEAR::isError($typeDefinitionResult)) | 216 | if (PEAR::isError($typeDefinitionResult)) |
| 237 | { | 217 | { |
| 238 | return array( | 218 | return array( |
| @@ -252,7 +232,26 @@ class KTCMIS { | @@ -252,7 +232,26 @@ class KTCMIS { | ||
| 252 | ); | 232 | ); |
| 253 | } | 233 | } |
| 254 | 234 | ||
| 255 | - // Navigation service functions | 235 | +} |
| 236 | + | ||
| 237 | +/* | ||
| 238 | + * Handles repository navigation | ||
| 239 | + */ | ||
| 240 | +class KTNavigationService extends KTCMISBase { | ||
| 241 | + | ||
| 242 | + protected $NavigationService; | ||
| 243 | + | ||
| 244 | + public function __construct() | ||
| 245 | + { | ||
| 246 | + // instantiate underlying CMIS service | ||
| 247 | + $this->NavigationService = new CMISNavigationService(); | ||
| 248 | + } | ||
| 249 | + | ||
| 250 | + public function startSession($username, $password) | ||
| 251 | + { | ||
| 252 | + parent::startSession($username, $password); | ||
| 253 | + $this->NavigationService->setInterface($this->ktapi); | ||
| 254 | + } | ||
| 256 | 255 | ||
| 257 | /** | 256 | /** |
| 258 | * Get descendents of the specified folder, up to the depth indicated | 257 | * Get descendents of the specified folder, up to the depth indicated |
| @@ -266,7 +265,7 @@ class KTCMIS { | @@ -266,7 +265,7 @@ class KTCMIS { | ||
| 266 | * @param string $filter | 265 | * @param string $filter |
| 267 | * @return array $descendants | 266 | * @return array $descendants |
| 268 | */ | 267 | */ |
| 269 | - function getDescendants($repositoryId, $folderId, $includeAllowableActions, $includeRelationships, | 268 | + public function getDescendants($repositoryId, $folderId, $includeAllowableActions, $includeRelationships, |
| 270 | $depth = 1, $typeID = 'Any', $filter = '') | 269 | $depth = 1, $typeID = 'Any', $filter = '') |
| 271 | { | 270 | { |
| 272 | // TODO optional parameters | 271 | // TODO optional parameters |
| @@ -284,11 +283,6 @@ class KTCMIS { | @@ -284,11 +283,6 @@ class KTCMIS { | ||
| 284 | // format for webservices consumption | 283 | // format for webservices consumption |
| 285 | // NOTE this will almost definitely be changing in the future, this is just to get something working | 284 | // NOTE this will almost definitely be changing in the future, this is just to get something working |
| 286 | $descendants = CMISUtil::decodeObjectHierarchy($descendantsResult, 'child'); | 285 | $descendants = CMISUtil::decodeObjectHierarchy($descendantsResult, 'child'); |
| 287 | -// $descendants = array(array('properties' => array('objectId' => 'D2', 'typeId' => 'Document', 'name' => 'test document'), | ||
| 288 | -// 'child' => array(array('properties' => array('objectId' => 'D7', | ||
| 289 | -// 'typeId' => 'Document', 'name' => 'CHILD document'), 'child' => null), | ||
| 290 | -// array('properties' => array('objectId' => 'F34', | ||
| 291 | -// 'typeId' => 'Folder', 'name' => 'CHILD FOLDER'), 'child' => null)))); | ||
| 292 | 286 | ||
| 293 | return array ( | 287 | return array ( |
| 294 | "status_code" => 0, | 288 | "status_code" => 0, |
| @@ -309,7 +303,7 @@ class KTCMIS { | @@ -309,7 +303,7 @@ class KTCMIS { | ||
| 309 | * @param int $skipCount | 303 | * @param int $skipCount |
| 310 | * @return array $descendants | 304 | * @return array $descendants |
| 311 | */ | 305 | */ |
| 312 | - function getChildren($repositoryId, $folderId, $includeAllowableActions, $includeRelationships, | 306 | + public function getChildren($repositoryId, $folderId, $includeAllowableActions, $includeRelationships, |
| 313 | $typeID = 'Any', $filter = '', $maxItems = 0, $skipCount = 0) | 307 | $typeID = 'Any', $filter = '', $maxItems = 0, $skipCount = 0) |
| 314 | { | 308 | { |
| 315 | // TODO paging | 309 | // TODO paging |
| @@ -325,8 +319,6 @@ class KTCMIS { | @@ -325,8 +319,6 @@ class KTCMIS { | ||
| 325 | } | 319 | } |
| 326 | 320 | ||
| 327 | $children = CMISUtil::decodeObjectHierarchy($childrenResult, 'child'); | 321 | $children = CMISUtil::decodeObjectHierarchy($childrenResult, 'child'); |
| 328 | -// $children = array(array('properties' => array('objectId' => 'D2', 'typeId' => 'Document', 'name' => 'test document'), | ||
| 329 | -// 'child' => null)); | ||
| 330 | 322 | ||
| 331 | return array( | 323 | return array( |
| 332 | "status_code" => 0, | 324 | "status_code" => 0, |
| @@ -345,7 +337,7 @@ class KTCMIS { | @@ -345,7 +337,7 @@ class KTCMIS { | ||
| 345 | * @param string $filter | 337 | * @param string $filter |
| 346 | * @return ancestry[] | 338 | * @return ancestry[] |
| 347 | */ | 339 | */ |
| 348 | - function getFolderParent($repositoryId, $folderId, $includeAllowableActions, $includeRelationships, $returnToRoot, $filter = '') | 340 | + public function getFolderParent($repositoryId, $folderId, $includeAllowableActions, $includeRelationships, $returnToRoot, $filter = '') |
| 349 | { | 341 | { |
| 350 | $ancestryResult = $this->NavigationService->getFolderParent($repositoryId, $folderId, $includeAllowableActions, | 342 | $ancestryResult = $this->NavigationService->getFolderParent($repositoryId, $folderId, $includeAllowableActions, |
| 351 | $includeRelationships, $returnToRoot); | 343 | $includeRelationships, $returnToRoot); |
| @@ -359,8 +351,6 @@ class KTCMIS { | @@ -359,8 +351,6 @@ class KTCMIS { | ||
| 359 | } | 351 | } |
| 360 | 352 | ||
| 361 | $ancestry = CMISUtil::decodeObjectHierarchy($ancestryResult, 'child'); | 353 | $ancestry = CMISUtil::decodeObjectHierarchy($ancestryResult, 'child'); |
| 362 | -// $ancestry = array(array('properties' => array('objectId' => 'D2', 'typeId' => 'Document', 'name' => 'test document'), | ||
| 363 | -// 'child' => null)); | ||
| 364 | 354 | ||
| 365 | return array( | 355 | return array( |
| 366 | "status_code" => 0, | 356 | "status_code" => 0, |
| @@ -368,42 +358,19 @@ class KTCMIS { | @@ -368,42 +358,19 @@ class KTCMIS { | ||
| 368 | ); | 358 | ); |
| 369 | } | 359 | } |
| 370 | 360 | ||
| 371 | - /** | ||
| 372 | - * Gets the parents for the selected object | ||
| 373 | - * | ||
| 374 | - * @param string $repositoryId | ||
| 375 | - * @param string $folderId | ||
| 376 | - * @param boolean $includeAllowableActions | ||
| 377 | - * @param boolean $includeRelationships | ||
| 378 | - * @param string $filter | ||
| 379 | - * @return ancestry[] | ||
| 380 | - */ | ||
| 381 | - function getObjectParents($repositoryId, $objectId, $includeAllowableActions, $includeRelationships, $filter = '') | ||
| 382 | - { | ||
| 383 | - $ancestryResult = $this->NavigationService->getObjectParents($repositoryId, $objectId, $includeAllowableActions, | ||
| 384 | - $includeRelationships); | ||
| 385 | - | ||
| 386 | - if (PEAR::isError($ancestryResult)) | ||
| 387 | - { | ||
| 388 | - return array( | ||
| 389 | - "status_code" => 1, | ||
| 390 | - "message" => "Failed getting ancestry for object" | ||
| 391 | - ); | ||
| 392 | - } | 361 | +} |
| 393 | 362 | ||
| 394 | - $ancestry = CMISUtil::decodeObjectHierarchy($ancestryResult, 'child'); | ||
| 395 | -// $ancestry = array(array('properties' => array('objectId' => 'D2', 'typeId' => 'Document', 'name' => 'test document'), | ||
| 396 | -// 'child' => null)); | 363 | +/** |
| 364 | + * Handles requests for and actions on Folders and Documents | ||
| 365 | + */ | ||
| 366 | +class KTObjectService extends KTCMISBase { | ||
| 397 | 367 | ||
| 398 | -// $ancestry = array(array('properties' => array(array('property' => array('name' => 'objectId', $value => 'D2')), | ||
| 399 | -// array('property' => array('name' => 'typeId', $value => 'Document')), | ||
| 400 | -// array('property' => array('name' => 'name', $value => 'test document')))), | ||
| 401 | -// 'child' => null); | 368 | + protected $ObjectService; |
| 402 | 369 | ||
| 403 | - return array( | ||
| 404 | - "status_code" => 0, | ||
| 405 | - "results" => $ancestry | ||
| 406 | - ); | 370 | + public function __construct() |
| 371 | + { | ||
| 372 | + // instantiate underlying CMIS service | ||
| 373 | + $this->ObjectService = new CMISObjectService(); | ||
| 407 | } | 374 | } |
| 408 | 375 | ||
| 409 | /** | 376 | /** |
| @@ -417,7 +384,7 @@ class KTCMIS { | @@ -417,7 +384,7 @@ class KTCMIS { | ||
| 417 | * @param string $filter | 384 | * @param string $filter |
| 418 | * @return properties[] | 385 | * @return properties[] |
| 419 | */ | 386 | */ |
| 420 | - function getProperties($repositoryId, $objectId, $includeAllowableActions, $includeRelationships, | 387 | + public function getProperties($repositoryId, $objectId, $includeAllowableActions, $includeRelationships, |
| 421 | $returnVersion = false, $filter = '') | 388 | $returnVersion = false, $filter = '') |
| 422 | { | 389 | { |
| 423 | $propertiesResult = $this->ObjectService->getProperties($repositoryId, $objectId, $includeAllowableActions, $includeRelationships); | 390 | $propertiesResult = $this->ObjectService->getProperties($repositoryId, $objectId, $includeAllowableActions, $includeRelationships); |
| @@ -429,7 +396,7 @@ class KTCMIS { | @@ -429,7 +396,7 @@ class KTCMIS { | ||
| 429 | "message" => "Failed getting properties for object" | 396 | "message" => "Failed getting properties for object" |
| 430 | ); | 397 | ); |
| 431 | } | 398 | } |
| 432 | -// echo '<pre>'.print_r($propertiesResult, true).'</pre>'; | 399 | + |
| 433 | // will need to convert to array format, so: | 400 | // will need to convert to array format, so: |
| 434 | $propertyCollection['objectId'] = $propertiesResult->getValue('objectId'); | 401 | $propertyCollection['objectId'] = $propertiesResult->getValue('objectId'); |
| 435 | $propertyCollection['URI'] = $propertiesResult->getValue('URI'); | 402 | $propertyCollection['URI'] = $propertiesResult->getValue('URI'); |
| @@ -441,19 +408,13 @@ class KTCMIS { | @@ -441,19 +408,13 @@ class KTCMIS { | ||
| 441 | $propertyCollection['changeToken'] = $propertiesResult->getValue('changeToken'); | 408 | $propertyCollection['changeToken'] = $propertiesResult->getValue('changeToken'); |
| 442 | 409 | ||
| 443 | $properties = array(array('properties' => $propertyCollection, 'child' => null)); | 410 | $properties = array(array('properties' => $propertyCollection, 'child' => null)); |
| 444 | -// echo '<pre>'.print_r($properties, true).'</pre>'; | ||
| 445 | -// | ||
| 446 | -// $properties = array(array('properties' => array('objectId' => 'F2', 'URI' => '', 'typeId' => 'Document', | ||
| 447 | -// 'createdBy' => 'Administrator', 'creationDate' => '1 June 2009', | ||
| 448 | -// 'lastModifiedBy' => 'Administrator', 'lastModificationDate' => '1 June 2009', | ||
| 449 | -// 'changeToken' => ''), | ||
| 450 | -// 'child' => null)); | ||
| 451 | 411 | ||
| 452 | return array( | 412 | return array( |
| 453 | "status_code" => 0, | 413 | "status_code" => 0, |
| 454 | "results" => $properties | 414 | "results" => $properties |
| 455 | ); | 415 | ); |
| 456 | } | 416 | } |
| 417 | + | ||
| 457 | } | 418 | } |
| 458 | 419 | ||
| 459 | ?> | 420 | ?> |
ktcmis/objecttypes/CMISDocumentObject.inc.php renamed to lib/api/ktcmis/objecttypes/CMISDocumentObject.inc.php
| @@ -107,7 +107,7 @@ class CMISDocumentObject extends CMISBaseObject { | @@ -107,7 +107,7 @@ class CMISDocumentObject extends CMISBaseObject { | ||
| 107 | 107 | ||
| 108 | $objectProperties = $object->get_detail(); | 108 | $objectProperties = $object->get_detail(); |
| 109 | 109 | ||
| 110 | - $this->_setPropertyInternal('objectId', CMISUtil::encodeObjectId($this->typeId, $objectProperties['document_id'])); | 110 | + $this->_setPropertyInternal('ObjectId', CMISUtil::encodeObjectId($this->typeId, $objectProperties['document_id'])); |
| 111 | // prevent doubled '/' chars | 111 | // prevent doubled '/' chars |
| 112 | $uri = preg_replace_callback('/([^:]\/)\//', | 112 | $uri = preg_replace_callback('/([^:]\/)\//', |
| 113 | create_function('$matches', 'return $matches[1];'), | 113 | create_function('$matches', 'return $matches[1];'), |
| @@ -116,28 +116,28 @@ class CMISDocumentObject extends CMISBaseObject { | @@ -116,28 +116,28 @@ class CMISDocumentObject extends CMISBaseObject { | ||
| 116 | . $objectProperties['document_id']); | 116 | . $objectProperties['document_id']); |
| 117 | // NOTE what about instead creating a downloadable version with appropriate link? see ktapi::download_document | 117 | // NOTE what about instead creating a downloadable version with appropriate link? see ktapi::download_document |
| 118 | // also ktapidocument::get_download_url | 118 | // also ktapidocument::get_download_url |
| 119 | - $this->_setPropertyInternal('Uri', $uri); | 119 | + $this->_setPropertyInternal('URI', $uri); |
| 120 | // TODO what is this? Assuming it is the object type id, and not OUR document type? | 120 | // TODO what is this? Assuming it is the object type id, and not OUR document type? |
| 121 | - $this->_setPropertyInternal('typeId', $this->getAttribute('typeId')); | ||
| 122 | - $this->_setPropertyInternal('createdBy', $objectProperties['created_by']); | ||
| 123 | - $this->_setPropertyInternal('creationDate', $objectProperties['created_date']); | ||
| 124 | - $this->_setPropertyInternal('lastModifiedBy', $objectProperties['modified_by']); | ||
| 125 | - $this->_setPropertyInternal('lastModificationDate', $objectProperties['modified_date']); | ||
| 126 | - $this->_setPropertyInternal('changeToken', null); | ||
| 127 | - $this->_setPropertyInternal('name', $objectProperties['title']); | ||
| 128 | - $this->_setPropertyInternal('isImmutable', $objectProperties['is_immutable']); | 121 | + $this->_setPropertyInternal('ObjectTypeId', $this->getAttribute('typeId')); |
| 122 | + $this->_setPropertyInternal('CreatedBy', $objectProperties['created_by']); | ||
| 123 | + $this->_setPropertyInternal('CreationDate', $objectProperties['created_date']); | ||
| 124 | + $this->_setPropertyInternal('LastModifiedBy', $objectProperties['modified_by']); | ||
| 125 | + $this->_setPropertyInternal('LastModificationDate', $objectProperties['modified_date']); | ||
| 126 | + $this->_setPropertyInternal('ChangeToken', null); | ||
| 127 | + $this->_setPropertyInternal('Name', $objectProperties['title']); | ||
| 128 | + $this->_setPropertyInternal('IsImmutable', $objectProperties['is_immutable']); | ||
| 129 | // NOTE if access to older versions is allowed, this will need to be checked, else just set to yes | 129 | // NOTE if access to older versions is allowed, this will need to be checked, else just set to yes |
| 130 | // see ktapi::get_document_version_history | 130 | // see ktapi::get_document_version_history |
| 131 | // NOTE see ktapi::is_latest_version | 131 | // NOTE see ktapi::is_latest_version |
| 132 | - $this->_setPropertyInternal('isLatestVersion', true); | ||
| 133 | - $this->_setPropertyInternal('isMajorVersion', (strstr($objectProperties['version'], '.') ? false : true)); | 132 | + $this->_setPropertyInternal('IsLatestVersion', true); |
| 133 | + $this->_setPropertyInternal('IsMajorVersion', (strstr($objectProperties['version'], '.') ? false : true)); | ||
| 134 | // NOTE if access to older versions is allowed, this will need to be checked, else just set to yes | 134 | // NOTE if access to older versions is allowed, this will need to be checked, else just set to yes |
| 135 | // see ktapi::get_document_version_history | 135 | // see ktapi::get_document_version_history |
| 136 | // NOTE see ktapi::is_latest_version | 136 | // NOTE see ktapi::is_latest_version |
| 137 | - $this->_setPropertyInternal('isLatestMajorVersion', true); | ||
| 138 | - $this->_setPropertyInternal('versionLabel', $objectProperties['version']); | 137 | + $this->_setPropertyInternal('IsLatestMajorVersion', true); |
| 138 | + $this->_setPropertyInternal('VersionLabel', $objectProperties['version']); | ||
| 139 | // TODO what determines this, do we have anything? | 139 | // TODO what determines this, do we have anything? |
| 140 | - $this->_setPropertyInternal('versionSeriesId', null); | 140 | + $this->_setPropertyInternal('VersionSeriesId', null); |
| 141 | if ($objectProperties['checked_out_by'] != 'n/a') | 141 | if ($objectProperties['checked_out_by'] != 'n/a') |
| 142 | { | 142 | { |
| 143 | $checkedOut = true; | 143 | $checkedOut = true; |
| @@ -151,18 +151,18 @@ class CMISDocumentObject extends CMISBaseObject { | @@ -151,18 +151,18 @@ class CMISDocumentObject extends CMISBaseObject { | ||
| 151 | $checkedOutBy = null; | 151 | $checkedOutBy = null; |
| 152 | $checkedOutId = null; | 152 | $checkedOutId = null; |
| 153 | } | 153 | } |
| 154 | - $this->_setPropertyInternal('isVersionSeriesCheckedOut', $checkedOut); | ||
| 155 | - $this->_setPropertyInternal('versionSeriesCheckedOutBy', $checkedOutBy); | 154 | + $this->_setPropertyInternal('IsVersionSeriesCheckedOut', $checkedOut); |
| 155 | + $this->_setPropertyInternal('VersionSeriesCheckedOutBy', $checkedOutBy); | ||
| 156 | // TODO presumably this is the ID of the Private Working Copy created on checkout? | 156 | // TODO presumably this is the ID of the Private Working Copy created on checkout? |
| 157 | // will find out more when we do checkout/checkin | 157 | // will find out more when we do checkout/checkin |
| 158 | - $this->_setPropertyInternal('versionSeriesCheckedOutId', $checkedOutId); | 158 | + $this->_setPropertyInternal('VersionSeriesCheckedOutId', $checkedOutId); |
| 159 | // TODO currently not returned by KnowledgeTree? | 159 | // TODO currently not returned by KnowledgeTree? |
| 160 | - $this->_setPropertyInternal('checkinComment', null); | 160 | + $this->_setPropertyInternal('CheckinComment', null); |
| 161 | // TODO if we implement content streams | 161 | // TODO if we implement content streams |
| 162 | - $this->_setPropertyInternal('contentStreamLength', null); | ||
| 163 | - $this->_setPropertyInternal('contentStreamMimeType', null); | ||
| 164 | - $this->_setPropertyInternal('contentStreamFilename', null); | ||
| 165 | - $this->_setPropertyInternal('contentStreamUri', null); | 162 | + $this->_setPropertyInternal('ContentStreamLength', null); |
| 163 | + $this->_setPropertyInternal('ContentStreamMimeType', null); | ||
| 164 | + $this->_setPropertyInternal('ContentStreamFilename', null); | ||
| 165 | + $this->_setPropertyInternal('ContentStreamUri', null); | ||
| 166 | } | 166 | } |
| 167 | 167 | ||
| 168 | } | 168 | } |
ktcmis/objecttypes/CMISFolderObject.inc.php renamed to lib/api/ktcmis/objecttypes/CMISFolderObject.inc.php
| @@ -86,7 +86,7 @@ class CMISFolderObject extends CMISBaseObject { | @@ -86,7 +86,7 @@ class CMISFolderObject extends CMISBaseObject { | ||
| 86 | 86 | ||
| 87 | $objectProperties = $object->get_detail(); | 87 | $objectProperties = $object->get_detail(); |
| 88 | 88 | ||
| 89 | - $this->_setPropertyInternal('objectId', CMISUtil::encodeObjectId($this->typeId, $objectProperties['id'])); | 89 | + $this->_setPropertyInternal('ObjectId', CMISUtil::encodeObjectId($this->typeId, $objectProperties['id'])); |
| 90 | // prevent doubled '/' chars | 90 | // prevent doubled '/' chars |
| 91 | $uri = preg_replace_callback('/([^:]\/)\//', | 91 | $uri = preg_replace_callback('/([^:]\/)\//', |
| 92 | create_function('$matches', 'return $matches[1];'), | 92 | create_function('$matches', 'return $matches[1];'), |
| @@ -94,20 +94,20 @@ class CMISFolderObject extends CMISBaseObject { | @@ -94,20 +94,20 @@ class CMISFolderObject extends CMISBaseObject { | ||
| 94 | . '/browse.php?fFolderId=' | 94 | . '/browse.php?fFolderId=' |
| 95 | . $objectProperties['id']); | 95 | . $objectProperties['id']); |
| 96 | // TODO this url is probably incorrect...needs to be checked | 96 | // TODO this url is probably incorrect...needs to be checked |
| 97 | - $this->_setPropertyInternal('Uri', $uri); | 97 | + $this->_setPropertyInternal('URI', $uri); |
| 98 | // TODO what is this? Assuming it is the object type id, and not OUR document type? | 98 | // TODO what is this? Assuming it is the object type id, and not OUR document type? |
| 99 | - $this->_setPropertyInternal('typeId', $this->getAttribute('typeId')); | ||
| 100 | - $this->_setPropertyInternal('createdBy', $objectProperties['created_by']); | 99 | + $this->_setPropertyInternal('ObjectTypeId', $this->getAttribute('typeId')); |
| 100 | + $this->_setPropertyInternal('CreatedBy', $objectProperties['created_by']); | ||
| 101 | // TODO cannot currently retrieve via ktapi or regular folder code - add as with created by | 101 | // TODO cannot currently retrieve via ktapi or regular folder code - add as with created by |
| 102 | - $this->_setPropertyInternal('creationDate', $objectProperties['created_date']); | 102 | + $this->_setPropertyInternal('CreationDate', $objectProperties['created_date']); |
| 103 | // TODO cannot currently retrieve via ktapi or regular folder code - add as with created by | 103 | // TODO cannot currently retrieve via ktapi or regular folder code - add as with created by |
| 104 | - $this->_setPropertyInternal('lastModifiedBy', $objectProperties['modified_by']); | 104 | + $this->_setPropertyInternal('LastModifiedBy', $objectProperties['modified_by']); |
| 105 | // TODO cannot currently retrieve via ktapi or regular folder code - add as with created by | 105 | // TODO cannot currently retrieve via ktapi or regular folder code - add as with created by |
| 106 | - $this->_setPropertyInternal('lastModificationDate', $objectProperties['modified_date']); | ||
| 107 | - $this->_setPropertyInternal('changeToken', null); | ||
| 108 | - $this->_setPropertyInternal('name', $objectProperties['folder_name']); | ||
| 109 | - $this->_setPropertyInternal('parentId', $objectProperties['parent_id']); | ||
| 110 | - $this->_setPropertyInternal('allowedChildObjectTypeIds', array('Document', 'Folder')); | 106 | + $this->_setPropertyInternal('LastModificationDate', $objectProperties['modified_date']); |
| 107 | + $this->_setPropertyInternal('ChangeToken', null); | ||
| 108 | + $this->_setPropertyInternal('Name', $objectProperties['folder_name']); | ||
| 109 | + $this->_setPropertyInternal('ParentId', $objectProperties['parent_id']); | ||
| 110 | + $this->_setPropertyInternal('AllowedChildObjectTypeIds', array('Document', 'Folder')); | ||
| 111 | } | 111 | } |
| 112 | 112 | ||
| 113 | } | 113 | } |
ktcmis/services/CMISNavigationService.inc.php renamed to lib/api/ktcmis/services/CMISNavigationService.inc.php
| @@ -48,7 +48,12 @@ class CMISNavigationService { | @@ -48,7 +48,12 @@ class CMISNavigationService { | ||
| 48 | 48 | ||
| 49 | protected $ktapi; | 49 | protected $ktapi; |
| 50 | 50 | ||
| 51 | - function CMISNavigationService(&$ktapi) | 51 | + /** |
| 52 | + * Sets the interface to be used to query the repository | ||
| 53 | + * | ||
| 54 | + * @param object $ktapi The KnowledgeTree API interface | ||
| 55 | + */ | ||
| 56 | + function setInterface(&$ktapi) | ||
| 52 | { | 57 | { |
| 53 | $this->ktapi = $ktapi; | 58 | $this->ktapi = $ktapi; |
| 54 | } | 59 | } |
ktcmis/services/CMISObjectService.inc.php renamed to lib/api/ktcmis/services/CMISObjectService.inc.php
| @@ -11,10 +11,10 @@ class CMISObjectService { | @@ -11,10 +11,10 @@ class CMISObjectService { | ||
| 11 | 11 | ||
| 12 | protected $ktapi; | 12 | protected $ktapi; |
| 13 | 13 | ||
| 14 | - function CMISObjectService(&$ktapi) | ||
| 15 | - { | ||
| 16 | - $this->ktapi = $ktapi; | ||
| 17 | - } | 14 | +// function CMISObjectService(&$ktapi) |
| 15 | +// { | ||
| 16 | +// $this->ktapi = $ktapi; | ||
| 17 | +// } | ||
| 18 | 18 | ||
| 19 | /** | 19 | /** |
| 20 | * Fetches the properties for the specified object | 20 | * Fetches the properties for the specified object |
ktcmis/services/CMISRepositoryService.inc.php renamed to lib/api/ktcmis/services/CMISRepositoryService.inc.php
ktcmis/util/CMISUtil.inc.php renamed to lib/api/ktcmis/util/CMISUtil.inc.php
| @@ -139,6 +139,7 @@ class CMISUtil { | @@ -139,6 +139,7 @@ class CMISUtil { | ||
| 139 | $CMISObject = new CMISFolderObject($ktapi, $repositoryURI); | 139 | $CMISObject = new CMISFolderObject($ktapi, $repositoryURI); |
| 140 | break; | 140 | break; |
| 141 | } | 141 | } |
| 142 | + | ||
| 142 | $CMISObject->get($object['id']); | 143 | $CMISObject->get($object['id']); |
| 143 | $CMISArray[$count]['object'] = $CMISObject; | 144 | $CMISArray[$count]['object'] = $CMISObject; |
| 144 | 145 | ||
| @@ -220,9 +221,13 @@ class CMISUtil { | @@ -220,9 +221,13 @@ class CMISUtil { | ||
| 220 | $object = $entry['object']; | 221 | $object = $entry['object']; |
| 221 | $properties = $object->getProperties(); | 222 | $properties = $object->getProperties(); |
| 222 | 223 | ||
| 223 | - $hierarchy[$key]['properties']['objectId'] = $properties->getValue('objectId'); | ||
| 224 | - $hierarchy[$key]['properties']['typeId'] = $properties->getValue('typeId'); | ||
| 225 | - $hierarchy[$key]['properties']['name'] = $properties->getValue('name'); | 224 | + // TODO additional properties to be returned |
| 225 | + $hierarchy[$key]['properties']['ObjectId'] = array('type' => $properties->getFieldType('ObjectId'), | ||
| 226 | + 'value' => $properties->getValue('ObjectId')); | ||
| 227 | + $hierarchy[$key]['properties']['ObjectTypeId'] = array('type' => $properties->getFieldType('ObjectTypeId'), | ||
| 228 | + 'value' => $properties->getValue('ObjectTypeId')); | ||
| 229 | + $hierarchy[$key]['properties']['Name'] = array('type' => $properties->getFieldType('Name'), | ||
| 230 | + 'value' => $properties->getValue('Name')); | ||
| 226 | 231 | ||
| 227 | // if we have found a child/parent with one or more children/parents, recurse into the child/parent object | 232 | // if we have found a child/parent with one or more children/parents, recurse into the child/parent object |
| 228 | if (count($entry['items']) > 0) | 233 | if (count($entry['items']) > 0) |
| @@ -272,6 +277,18 @@ class CMISUtil { | @@ -272,6 +277,18 @@ class CMISUtil { | ||
| 272 | return $array; | 277 | return $array; |
| 273 | } | 278 | } |
| 274 | 279 | ||
| 280 | + /** | ||
| 281 | + * Converts a boolean value to string representation | ||
| 282 | + * If input is not true or false, return unaltered | ||
| 283 | + * | ||
| 284 | + * @param boolean/other $input | ||
| 285 | + * @return string | ||
| 286 | + */ | ||
| 287 | + function boolToString($input) | ||
| 288 | + { | ||
| 289 | + return (($input === true) ? 'true' : (($input === false) ? 'false' : $input)); | ||
| 290 | + } | ||
| 291 | + | ||
| 275 | } | 292 | } |
| 276 | 293 | ||
| 277 | ?> | 294 | ?> |