diff --git a/ktapi/KTAPIDocument.inc.php b/ktapi/KTAPIDocument.inc.php index cdbf003..4163474 100644 --- a/ktapi/KTAPIDocument.inc.php +++ b/ktapi/KTAPIDocument.inc.php @@ -1103,7 +1103,7 @@ class KTAPI_Document extends KTAPI_FolderItem $owner_mapping = array( 'created_by'=>'creator_id', 'modified_by'=>'modified_user_id', - 'owner'=>'owner' + 'owner'=>'owner_id' ); $documents = array(); @@ -1135,7 +1135,7 @@ class KTAPI_Document extends KTAPI_FolderItem $documents['modified'] = $value; break; case 'is_immutable': - $documents['immutable'] = KTUtil::strToBool($value, false); + $documents['immutable'] = in_array(strtolower($value), array('1','true','on','yes'))?'1':'0'; break; case 'filename': $document_content['filename'] = $value; @@ -1153,11 +1153,17 @@ class KTAPI_Document extends KTAPI_FolderItem $document_content['minor_version'] = $minor_version; break; case 'mime_type': - $value = KTMime::getMimeIdByName($value); + $sql = "select id from mime_types where mimetypes='$value'"; + $value = DBUtil::getResultArray($sql); if (PEAR::isError($value)) { return $value; } + if (count($value) == 0) + { + break; + } + $value = $value[0]['id']; $document_content['mime_id'] = $value; break; case 'owner': @@ -1173,9 +1179,9 @@ class KTAPI_Document extends KTAPI_FolderItem { $sql = "select id from users where username='$value'"; $userId = DBUtil::getResultArray($sql); - if (PEAR::isError($value)) + if (PEAR::isError($userId)) { - return $value; + return $userId; } } if (empty($userId)) @@ -1201,7 +1207,10 @@ class KTAPI_Document extends KTAPI_FolderItem foreach($documents as $name=>$value) { if ($i++ > 0) $sql .= ","; - $sql .= "$name='$value'"; + if (is_numeric($value)) + $sql .= "$name=$value"; + else + $sql .= "$name='$value'"; } $sql .= " WHERE id=$this->documentid"; $result = DBUtil::runQuery($sql); @@ -1215,7 +1224,7 @@ class KTAPI_Document extends KTAPI_FolderItem $content_id = $this->document->getContentVersionId(); $sql = "UPDATE document_content_version SET "; $i=0; - foreach($documents as $name=>$value) + foreach($document_content as $name=>$value) { if ($i++ > 0) $sql .= ","; $sql .= "$name='$value'"; @@ -1382,6 +1391,7 @@ class KTAPI_Document extends KTAPI_FolderItem */ public function get_detail() { + global $default; // make sure we ge tthe latest $this->clearCache(); @@ -1490,7 +1500,17 @@ class KTAPI_Document extends KTAPI_FolderItem } $detail['checked_out_by'] = $username; - $detail['checked_out_date'] = $document->getCheckedOutDate(); + list($major, $minor, $fix) = explode('.', $default->systemVersion); + + + if ($major == 3 && $minor >= 5) + { + $detail['checked_out_date'] = $document->getCheckedOutDate(); + } + else + { + $detail['checked_out_date'] = $detail['modified_date']; + } if (is_null($detail['checked_out_date'])) $detail['checked_out_date'] = 'n/a'; $detail['full_path'] = $this->ktapi_folder->get_full_path() . '/' . $this->get_title(); diff --git a/ktapi/KTAPISession.inc.php b/ktapi/KTAPISession.inc.php index 358d371..c0a85f8 100644 --- a/ktapi/KTAPISession.inc.php +++ b/ktapi/KTAPISession.inc.php @@ -36,7 +36,7 @@ * */ -abstract class KTAPI_Session +class KTAPI_Session { var $ktapi; var $user = null; @@ -45,7 +45,7 @@ abstract class KTAPI_Session var $active; var $origUserId; - public function KTAPI_Session(&$ktapi, &$user) + function KTAPI_Session(&$ktapi, &$user) { assert(!is_null($ktapi)); assert(is_a($ktapi,'KTAPI')); @@ -64,7 +64,7 @@ abstract class KTAPI_Session * * @return string */ - public function get_session() + function get_session() { return $this->session; } @@ -74,7 +74,7 @@ abstract class KTAPI_Session * * @return int */ - public function get_sessionid() + function get_sessionid() { return $this->sessionid; } @@ -84,19 +84,19 @@ abstract class KTAPI_Session * * @return User */ - public function &get_user() + function &get_user() { return $this->user; } - public function logout() + function logout() { $_SESSION['userID'] = $this->origUserId; $this->active=false; // don't need to do anything really } - public function is_active() + function is_active() { return $this->active; } @@ -107,7 +107,7 @@ class KTAPI_UserSession extends KTAPI_Session { var $ip = null; - public function KTAPI_UserSession(&$ktapi, &$user, $session, $sessionid, $ip) + function KTAPI_UserSession(&$ktapi, &$user, $session, $sessionid, $ip) { parent::KTAPI_Session($ktapi, $user); @@ -133,7 +133,7 @@ class KTAPI_UserSession extends KTAPI_Session * @access private * @return string */ - public function resolveIP() + function resolveIP() { if (getenv("REMOTE_ADDR")) { @@ -218,7 +218,7 @@ class KTAPI_UserSession extends KTAPI_Session * @param string $password * @return KTAPI_Session */ - public function &start_session(&$ktapi, $username, $password, $ip=null) + function &start_session(&$ktapi, $username, $password, $ip=null) { $this->active=false; if ( empty($username) ) @@ -272,7 +272,7 @@ class KTAPI_UserSession extends KTAPI_Session * @param string $ip * @return KTAPI_Session */ - public function &get_active_session(&$ktapi, $session, $ip) + function &get_active_session(&$ktapi, $session, $ip) { $sql = "SELECT id, user_id FROM active_sessions WHERE session_id='$session'"; if (!empty($ip)) @@ -313,7 +313,7 @@ class KTAPI_UserSession extends KTAPI_Session * This closes the current session. * */ - public function logout() + function logout() { $sql = "DELETE FROM active_sessions WHERE id=$this->sessionid"; $result = DBUtil::runQuery($sql); @@ -332,7 +332,7 @@ class KTAPI_UserSession extends KTAPI_Session class KTAPI_AnonymousSession extends KTAPI_UserSession { - public function &start_session(&$ktapi, $ip=null) + function &start_session(&$ktapi, $ip=null) { $user =& User::get(-2); if (is_null($user) || PEAR::isError($user) || ($user === false) || !$user->isAnonymous()) @@ -370,7 +370,7 @@ class KTAPI_AnonymousSession extends KTAPI_UserSession class KTAPI_SystemSession extends KTAPI_Session { - public function KTAPI_SystemSession(&$ktapi, &$user) + function KTAPI_SystemSession(&$ktapi, &$user) { parent::KTAPI_Session($ktapi, $user); $this->active=true; diff --git a/ktwebservice/webservice.php b/ktwebservice/webservice.php index 39a7010..e5a7b6b 100644 --- a/ktwebservice/webservice.php +++ b/ktwebservice/webservice.php @@ -45,7 +45,19 @@ require_once('SOAP/Disco.php'); require_once('KTDownloadManager.inc.php'); require_once('KTUploadManager.inc.php'); require_once(KT_LIB_DIR . '/storage/storagemanager.inc.php'); -require_once(KT_DIR . '/search2/search/search.inc.php'); + +list($major, $minor, $fix) = explode('.', $default->systemVersion); + +if ($major == 3 && $minor >= 5) +{ + define('HAS_SEARCH_FUNCTIONALITY',1); +} +unset($major); unset($minor); unset($fix); + +if (defined('HAS_SEARCH_FUNCTIONALITY')) +{ + require_once(KT_DIR . '/search2/search/search.inc.php'); +} // TODO: Test getting files/metadata based on versioning works and implementation is consistent. @@ -232,6 +244,9 @@ class KTWebService ); } + if (defined('HAS_SEARCH_FUNCTIONALITY')) + { + $this->__typedef["{urn:$this->namespace}kt_search_result_item"] = array( 'document_id' => 'int', @@ -270,6 +285,7 @@ class KTWebService 'message' => 'string', 'hits' => "{urn:$this->namespace}kt_search_results" , ); + } if ($this->version >= 2) { @@ -463,11 +479,14 @@ class KTWebService ); /* methods */ + if (defined('HAS_SEARCH_FUNCTIONALITY')) + { - $this->__dispatch_map['search'] = - array('in' => array('session_id' => 'string', 'search'=>'string' ,'options'=>'string'), - 'out' => array('return' => "{urn:$this->namespace}kt_search_response" ), - ); + $this->__dispatch_map['search'] = array( + 'in' => array('session_id' => 'string', 'search'=>'string' ,'options'=>'string'), + 'out' => array('return' => "{urn:$this->namespace}kt_search_response" ), + ); + } // login $this->__dispatch_map['login'] = @@ -520,8 +539,6 @@ class KTWebService 'out' => array('return' => "{urn:$this->namespace}kt_folder_detail"), 'alias'=>'create_folder' ); - - }