. * * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco, * California 94120-7775, or email info@knowledgetree.com. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * KnowledgeTree" logo and retain the original copyright notice. If the display of the * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices * must display the words "Powered by KnowledgeTree" and retain the original * copyright notice. * * @copyright 2008-2009, KnowledgeTree Inc. * @license GNU General Public License version 3 * @author KnowledgeTree Team * @package KTCMIS * @version Version 0.1 */ require_once(CMIS_DIR . '/classes/CMISBaseObject.inc.php'); require_once(CMIS_DIR . '/classes/CMISFolderPropertyCollection.inc.php'); require_once(CMIS_DIR . '/util/CMISUtil.inc.php'); class CMISFolderObject extends CMISBaseObject { var $ktapi; var $uri; function CMISFolderObject(&$ktapi = null, $uri = null) { $this->ktapi = $ktapi; $this->uri = $uri; $this->typeId = 'Folder'; // $this->queryName = 'Folder'; $this->displayName = ''; // $this->baseType = 'folder'; $this->baseTypeQueryName = 'Folder'; $this->parentId = null; // MUST NOT be set $this->description = ''; // $this->creatable = ''; // $this->fileable = true; $this->queryable = true; // SHOULD be true $this->includedInSupertypeQuery = true; // $this->controllable = ''; // // properties $this->properties = new CMISFolderPropertyCollection(); } function get($objectId) { $object = $this->ktapi->get_folder_by_id($objectId); // error? if (PEAR::isError($object)) { // throw an exception? return $object; } // static $allowedChildObjectTypeIds; $objectProperties = $object->get_detail(); $this->_setPropertyInternal('objectId', CMISUtil::encodeObjectId($this->typeId, $objectProperties['id'])); // prevent doubled '/' chars $uri = preg_replace_callback('/([^:]\/)\//', create_function('$matches', 'return $matches[1];'), $this->uri . '/browse.php?fFolderId=' . $objectProperties['id']); // TODO this url is probably incorrect...needs to be checked $this->_setPropertyInternal('Uri', $uri); // TODO what is this? Assuming it is the object type id, and not OUR document type? $this->_setPropertyInternal('typeId', $this->getAttribute('typeId')); $this->_setPropertyInternal('createdBy', $objectProperties['created_by']); // TODO cannot currently retrieve via ktapi or regular folder code - add as with created by $this->_setPropertyInternal('creationDate', $objectProperties['created_date']); // TODO cannot currently retrieve via ktapi or regular folder code - add as with created by $this->_setPropertyInternal('lastModifiedBy', $objectProperties['modified_by']); // TODO cannot currently retrieve via ktapi or regular folder code - add as with created by $this->_setPropertyInternal('lastModificationDate', $objectProperties['modified_date']); $this->_setPropertyInternal('changeToken', null); $this->_setPropertyInternal('name', $objectProperties['folder_name']); $this->_setPropertyInternal('parentId', $objectProperties['parent_id']); $this->_setPropertyInternal('allowedChildObjectTypeIds', array('Document', 'Folder')); } } ?>