Difference between revisions of "SDK for PHP 1.0"

From OpenKM Documentation
Jump to: navigation, search
(Created page with "{{Note|If '''you want to collaborate''' extending features or add newer '''contact with us at''' [http://www.openkm.com/en/contact.html contact website form] indicating this U...")
 
(Example)
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{TOCright}} __TOC__
 
{{Note|If '''you want to collaborate''' extending features or add newer '''contact with us at''' [http://www.openkm.com/en/contact.html contact website form] indicating this URL.}}
 
{{Note|If '''you want to collaborate''' extending features or add newer '''contact with us at''' [http://www.openkm.com/en/contact.html contact website form] indicating this URL.}}
  
 
OpenKM SDK for php is a set of software developement tools that allows for the creation of applications for OpenKM. The OpenKM SDK for php include a webservices library. This webservices library is a complete API layer to access OpenKM through webservices and provides complete compatibility between OpenKM webservices versions without change code.
 
OpenKM SDK for php is a set of software developement tools that allows for the creation of applications for OpenKM. The OpenKM SDK for php include a webservices library. This webservices library is a complete API layer to access OpenKM through webservices and provides complete compatibility between OpenKM webservices versions without change code.
  
'''Available jar file'''  
+
'''Available zip file'''  
 
* [[File:Sdk4php-1.0.zip]]
 
* [[File:Sdk4php-1.0.zip]]
 +
 +
== Advantage of use ==
 +
 +
We recommend to use SDK for php because it implements an extra layer between webservices and logic -factory- which allow transparently change between webservices versions without major effors. Simply instance other webservices version from factory in your source code.
 +
 +
== Example ==
 +
In zip file into folder called test there are some php testing files. Consider some const values must be changed to get it running in your OpenKM. For example '''const TEST_FLD = "e0856a93-3b25-4726-88fc-632dec7c6ab0"'''; in example you got below must be changed for some folder UUID in your OpenKM.
 +
 +
<source lang="php">
 +
<?php
 +
include '../src/openkm/OpenKM.php';
 +
 +
use openkm\OKMWebServicesFactory;
 +
use openkm\OpenKM;
 +
use openkm\bean\Auth;
 +
 +
/**
 +
* TestAuth
 +
*
 +
* @author sochoa
 +
*/
 +
class TestAuth {
 +
 +
                const HOST = "http://localhost:8080/OpenKM/";
 +
                const USER = "okmAdmin";
 +
                const PASSWORD = "admin";
 +
                const TEST_DOC_PATH = "/okm:root/OpenKM/architecture.html";
 +
                const TEST_DOC_UUID = 'e0856a93-3b25-4726-88fc-632dec7c6ab0';
 +
 +
private $ws;
 +
 +
public function __construct() {
 +
    $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
 +
}
 +
 +
public function test() {
 +
                    //getGrantedRoles
 +
                    echo '<h2>getGrantedRoles</h2>';
 +
                    $grantedRoles = $this->ws->getGrantedRoles(self::TEST_DOC_UUID);
 +
                    foreach ($grantedRoles as $grantedRole) {
 +
                      echo '<div style="margin-left:30px">';
 +
                      echo '<h3>GrantedRole</h3>';
 +
                      echo '<p><strong>Role:</strong>' .$grantedRole->getRole() . '</p>';
 +
                      echo '<p><strong>Permissions:</strong>' .$grantedRole->getPermissions() . '</p>';
 +
                      echo '</div>';
 +
                    }
 +
 +
                    //getGrantedUsers
 +
                    echo '<h2>getGrantedUsers</h2>';
 +
                    $grantedUsers = $this->ws->getGrantedUsers(self::TEST_DOC_UUID);
 +
                    foreach ($grantedUsers as $grantedUser) {
 +
                      echo '<div style="margin-left:30px">';
 +
                      echo '<h3>GrantedUser</h3>';
 +
                      echo '<p><strong>User:</strong>' .$grantedUser->getUser() . '</p>';
 +
                      echo '<p><strong>Permissions:</strong>' . $grantedUser->getPermissions() . '</p>';
 +
                      echo '</div>';
 +
                    }
 +
 +
                    //getRoles
 +
                    echo '<h2>getRoles</h2>';
 +
                    $roles = $this->ws->getRoles();
 +
                    foreach ($roles as $role) {
 +
                      echo '<div style="margin-left:30px">';
 +
                      echo '<p>' . $role . '</p>';
 +
                      echo '</div>';
 +
                    }
 +
 +
                    //getUsers
 +
                    echo '<h2>getUsers</h2>';
 +
                    $users = $this->ws->getUsers();
 +
                    foreach ($users as $user) {
 +
                      echo '<div style="margin-left:30px">';
 +
                      echo '<p>' . $user . '</p>';
 +
                      echo '</div>';
 +
                    }
 +
 +
                    //getUsersByRole
 +
                    echo '<h2>getUsersByRole</h2>';
 +
                    $users = $this->ws->getUsersByRole('ROLE_ADMIN');
 +
                    foreach ($users as $user) {
 +
                      echo '<div style="margin-left:30px">';
 +
                      echo '<p>' . $user . '</p>';
 +
                      echo '</div>';
 +
                    }
 +
       
 +
                    //getRolesByUser
 +
                    echo '<h2>getRolesByUser</h2>';
 +
                    $roles = $this->ws->getRolesByUser('okmAdmin');
 +
                    foreach ($roles as $role) {
 +
                      echo '<div style="margin-left:30px">';
 +
                      echo '<p>' . $role . '</p>';
 +
                      echo '</div>';
 +
                    }
 +
       
 +
                    //getMail
 +
                    echo '<h2>getMail</h2>';
 +
                    echo '<p>' . $this->ws->getMail('okmAdmin') , '</p>';
 +
 +
                    //getName
 +
                    echo '<h2>getName</h2>';
 +
                    echo '<p>' . $this->ws->getName('okmAdmin') . '</p>';
 +
    }
 +
 +
}
 +
 +
$openkm = new OpenKM();
 +
$testAuth = new TestAuth();
 +
$testAuth->test();
 +
?>
 +
</source>
 +
 +
== Available functions and classes ==
 +
=== Classes ===
 +
* AppVersion 
 +
* CheckBox
 +
* Document
 +
* Entry 
 +
* Folder
 +
* FormElement
 +
* FormElementComplex
 +
* GrantedRole
 +
* GrantedUser
 +
* Input
 +
* KeywordMap 
 +
* LockInfo
 +
* Node 
 +
* Note
 +
* Option
 +
* Permission
 +
* PropertyGroup
 +
* ProposedQueryReceived
 +
* ProposedQuerySent
 +
* QueryParams
 +
* QueryResult
 +
* ResultSet     
 +
* Select   
 +
* Separator 
 +
* SuggestBox
 +
* SimplePropertyGroup
 +
* Text
 +
* TextArea
 +
* Validator
 +
* Version
 +
                                 
 +
=== Auth ===
 +
<source lang="php">
 +
    public function getGrantedRoles($nodeId);
 +
    public function getGrantedUsers($nodeId);
 +
    public function getMail($user);
 +
    public function getName($user);
 +
    public function getRoles();
 +
    public function getRolesByUser($user);
 +
    public function getUsers();
 +
    public function getUsersByRole($role);
 +
    public function revokeRole($nodeId, $role, $permissions, $recursive);
 +
    public function revokeUser($nodeId, $user, $permissions, $recursive);
 +
    public function grantRole($nodeId, $role, $permissions, $recursive);
 +
    public function grantUser($nodeId, $user, $permissions, $recursive);
 +
</source>
 +
 +
=== Repository ===
 +
<source lang="php">
 +
    public function getRootFolder();
 +
    public function getTrashFolder();
 +
    public function getTemplatesFolder();
 +
    public function getPersonalFolder();
 +
    public function getMailFolder();
 +
    public function getThesaurusFolder();
 +
    public function getCategoriesFolder();
 +
    public function purgeTrash();
 +
    public function getUpdateMessage();
 +
    public function getRepositoryUuid();
 +
    public function hasNode($nodeId);
 +
    public function getNodePath($uuid);
 +
    public function getNodeUuid($nodePath);
 +
    public function getAppVersion();
 +
</source>
 +
 +
=== Document ===
 +
<source lang="php">
 +
    public function createDocument(Document $okmDocument, $is);
 +
    public function createDocumentSimple($docPath, $is);
 +
    public function deleteDocument($docId);
 +
    public function getDocumentProperties($docId);
 +
    public function getContent($docId);
 +
    public function getContentByVersion($docId, $versionId);
 +
    public function getDocumentChildren($fldId);
 +
    public function renameDocument($docId, $newName);
 +
    public function setProperties(Document $okmDocument);
 +
    public function setLanguage($docId, $lang);
 +
    public function setTitle($docId, $title);
 +
    public function checkout($docId);
 +
    public function cancelCheckout($docId);
 +
    public function forceCancelCheckout($docId);
 +
    public function isCheckedOut($docId);
 +
    public function checkin($docId, $is, $comment);
 +
    public function getVersionHistory($docId);
 +
    public function lock($docId);
 +
    public function unlock($docId);
 +
    public function forceUnlock($docId);
 +
    public function isLocked($docId);
 +
    public function getLockInfo($docId);
 +
    public function purgeDocument($docId);
 +
    public function moveDocument($docId, $dstId);
 +
    public function copyDocument($docId, $dstId);
 +
    public function restoreVersion($docId, $versionId);
 +
    public function purgeVersionHistory($docId);
 +
    public function getVersionHistorySize($docId);
 +
    public function isValidDocument($docId);
 +
    public function getDocumentPath($uuid);
 +
</source>
 +
 +
=== Folder ===
 +
<source lang="php">
 +
    public function createFolder(Folder $okmFolder);
 +
    public function createFolderSimple($fldPath);
 +
    public function getFolderProperties($fldId);
 +
    public function deleteFolder($fldId);
 +
    public function renameFolder($fldId, $newName);
 +
    public function moveFolder($fldId, $dstId);
 +
    public function getFolderChildren($fldId);
 +
    public function isValidFolder($fldId);
 +
    public function getFolderPath($uuid);
 +
</source>
 +
 +
=== Note ===
 +
<source lang="php">
 +
    public function addNote($nodeId, $text);
 +
    public function getNote($noteId);
 +
    public function deleteNote($noteId);
 +
    public function setNote($noteId, $text);
 +
    public function listNotes($nodeId);
 +
</source>
 +
 +
=== PropertyGroup ===
 +
<source lang="php">
 +
    public function addGroup($nodeId, $grpName);
 +
    public function removeGroup($nodeId, $grpName);
 +
    public function getGroups($nodeId);
 +
    public function getAllGroups();
 +
    public function getPropertyGroupProperties($nodeId, $grpName);
 +
    public function setPropetyGroupProperties($nodeId, $grpName, $formElementList = array());
 +
    public function setPropertyGroupPropertiesSimple($nodeId, $grpName, $properties = array());
 +
    public function hasGroup($nodeId, $grpName);
 +
</source>
 +
 +
=== Property ===
 +
<source lang="php">
 +
    public function addCategory($nodeId, $catId);
 +
    public function removeCategory($nodeId, $catId);
 +
    public function addKeyword($nodeId, $keyword);
 +
    public function removeKeyword($nodeId, $keyword);
 +
    public function setEncryption($nodeId, $cipherName);
 +
    public function unsetEncryption($nodeId);
 +
    public function setSigned($nodeId, $signed);
 +
</source>
 +
 +
=== Search ===
 +
<source lang="php">
 +
    public function findByContent($content);
 +
    public function findByName($name);
 +
    public function findByKeywords($keywords = array());
 +
    public function find(QueryParams $queryParams);
 +
    public function findPaginated(QueryParams $queryParams, $offset, $limit);
 +
    public function findSimpleQueryPaginated($statement, $offset, $limit);
 +
    public function findMoreLikeThis($uuid, $max);
 +
    public function getKeywordMap($filter = array());
 +
    public function getCategorizedDocuments($categoryId);
 +
    public function saveSearch(QueryParams $params);
 +
    public function updateSearch(QueryParams $params);
 +
    public function getSearch($qpId);
 +
    public function getAllSearchs();
 +
    public function deleteSearch($qpId);
 +
</source>
  
 
[[Category: Extension Guide]]
 
[[Category: Extension Guide]]

Latest revision as of 17:42, 31 May 2014


Nota clasica.png If you want to collaborate extending features or add newer contact with us at contact website form indicating this URL.

OpenKM SDK for php is a set of software developement tools that allows for the creation of applications for OpenKM. The OpenKM SDK for php include a webservices library. This webservices library is a complete API layer to access OpenKM through webservices and provides complete compatibility between OpenKM webservices versions without change code.

Available zip file

Advantage of use

We recommend to use SDK for php because it implements an extra layer between webservices and logic -factory- which allow transparently change between webservices versions without major effors. Simply instance other webservices version from factory in your source code.

Example

In zip file into folder called test there are some php testing files. Consider some const values must be changed to get it running in your OpenKM. For example const TEST_FLD = "e0856a93-3b25-4726-88fc-632dec7c6ab0"; in example you got below must be changed for some folder UUID in your OpenKM.

<?php
	include '../src/openkm/OpenKM.php';

	use openkm\OKMWebServicesFactory;
	use openkm\OpenKM;
	use openkm\bean\Auth;

	/**
	 * TestAuth
	 *
	 * @author sochoa
	 */
	class TestAuth {

                const HOST = "http://localhost:8080/OpenKM/";
                const USER = "okmAdmin";
                const PASSWORD = "admin";
                const TEST_DOC_PATH = "/okm:root/OpenKM/architecture.html";
                const TEST_DOC_UUID = 'e0856a93-3b25-4726-88fc-632dec7c6ab0';

		private $ws;

		public function __construct() {
		    $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
		}

		public function test() {
                    //getGrantedRoles
                    echo '<h2>getGrantedRoles</h2>';
                    $grantedRoles = $this->ws->getGrantedRoles(self::TEST_DOC_UUID);
                    foreach ($grantedRoles as $grantedRole) {
                       echo '<div style="margin-left:30px">';
                       echo '<h3>GrantedRole</h3>';
                       echo '<p><strong>Role:</strong>' .$grantedRole->getRole() . '</p>';
                       echo '<p><strong>Permissions:</strong>' .$grantedRole->getPermissions() . '</p>';
                       echo '</div>';
                    }

                    //getGrantedUsers
                    echo '<h2>getGrantedUsers</h2>';
                    $grantedUsers = $this->ws->getGrantedUsers(self::TEST_DOC_UUID);
                    foreach ($grantedUsers as $grantedUser) {
                       echo '<div style="margin-left:30px">';
                       echo '<h3>GrantedUser</h3>';
                       echo '<p><strong>User:</strong>' .$grantedUser->getUser() . '</p>';
                       echo '<p><strong>Permissions:</strong>' . $grantedUser->getPermissions() . '</p>';
                       echo '</div>';
                    }
 
                    //getRoles
                    echo '<h2>getRoles</h2>';
                    $roles = $this->ws->getRoles();
                    foreach ($roles as $role) {
                       echo '<div style="margin-left:30px">';
                       echo '<p>' . $role . '</p>';
                       echo '</div>';
                    }

                    //getUsers
                    echo '<h2>getUsers</h2>';
                    $users = $this->ws->getUsers();
                    foreach ($users as $user) {
                       echo '<div style="margin-left:30px">';
                       echo '<p>' . $user . '</p>';
                       echo '</div>';
                    }

                    //getUsersByRole
                    echo '<h2>getUsersByRole</h2>';
                    $users = $this->ws->getUsersByRole('ROLE_ADMIN');
                    foreach ($users as $user) {
                       echo '<div style="margin-left:30px">';
                       echo '<p>' . $user . '</p>';
                       echo '</div>';
                     } 
        
                    //getRolesByUser
                    echo '<h2>getRolesByUser</h2>';
                    $roles = $this->ws->getRolesByUser('okmAdmin');
                    foreach ($roles as $role) {
                       echo '<div style="margin-left:30px">';
                       echo '<p>' . $role . '</p>';
                       echo '</div>';
                    }
        
                    //getMail
                    echo '<h2>getMail</h2>';
                    echo '<p>' . $this->ws->getMail('okmAdmin') , '</p>';

                    //getName
                    echo '<h2>getName</h2>';
                    echo '<p>' . $this->ws->getName('okmAdmin') . '</p>';
	     	}

	}

	$openkm = new OpenKM();
	$testAuth = new TestAuth();
	$testAuth->test();
?>

Available functions and classes

Classes

  • AppVersion
  • CheckBox
  • Document
  • Entry
  • Folder
  • FormElement
  • FormElementComplex
  • GrantedRole
  • GrantedUser
  • Input
  • KeywordMap
  • LockInfo
  • Node
  • Note
  • Option
  • Permission
  • PropertyGroup
  • ProposedQueryReceived
  • ProposedQuerySent
  • QueryParams
  • QueryResult
  • ResultSet
  • Select
  • Separator
  • SuggestBox
  • SimplePropertyGroup
  • Text
  • TextArea
  • Validator
  • Version

Auth

    public function getGrantedRoles($nodeId);
    public function getGrantedUsers($nodeId);
    public function getMail($user);
    public function getName($user);
    public function getRoles();
    public function getRolesByUser($user);
    public function getUsers();
    public function getUsersByRole($role);
    public function revokeRole($nodeId, $role, $permissions, $recursive);
    public function revokeUser($nodeId, $user, $permissions, $recursive);
    public function grantRole($nodeId, $role, $permissions, $recursive);
    public function grantUser($nodeId, $user, $permissions, $recursive);

Repository

    public function getRootFolder();
    public function getTrashFolder();
    public function getTemplatesFolder();
    public function getPersonalFolder();
    public function getMailFolder();
    public function getThesaurusFolder();
    public function getCategoriesFolder();
    public function purgeTrash();
    public function getUpdateMessage();
    public function getRepositoryUuid();
    public function hasNode($nodeId);
    public function getNodePath($uuid);
    public function getNodeUuid($nodePath);
    public function getAppVersion();

Document

    public function createDocument(Document $okmDocument, $is);
    public function createDocumentSimple($docPath, $is);
    public function deleteDocument($docId);
    public function getDocumentProperties($docId);
    public function getContent($docId);
    public function getContentByVersion($docId, $versionId);
    public function getDocumentChildren($fldId);
    public function renameDocument($docId, $newName);
    public function setProperties(Document $okmDocument);
    public function setLanguage($docId, $lang);
    public function setTitle($docId, $title);
    public function checkout($docId);
    public function cancelCheckout($docId);
    public function forceCancelCheckout($docId);
    public function isCheckedOut($docId);
    public function checkin($docId, $is, $comment);
    public function getVersionHistory($docId);
    public function lock($docId);
    public function unlock($docId);
    public function forceUnlock($docId);
    public function isLocked($docId);
    public function getLockInfo($docId);
    public function purgeDocument($docId);
    public function moveDocument($docId, $dstId);
    public function copyDocument($docId, $dstId);
    public function restoreVersion($docId, $versionId);
    public function purgeVersionHistory($docId);
    public function getVersionHistorySize($docId);
    public function isValidDocument($docId);
    public function getDocumentPath($uuid);

Folder

    public function createFolder(Folder $okmFolder);
    public function createFolderSimple($fldPath);
    public function getFolderProperties($fldId);
    public function deleteFolder($fldId);
    public function renameFolder($fldId, $newName);
    public function moveFolder($fldId, $dstId);
    public function getFolderChildren($fldId);
    public function isValidFolder($fldId);
    public function getFolderPath($uuid);

Note

    public function addNote($nodeId, $text);
    public function getNote($noteId);
    public function deleteNote($noteId);
    public function setNote($noteId, $text);
    public function listNotes($nodeId);

PropertyGroup

    public function addGroup($nodeId, $grpName);
    public function removeGroup($nodeId, $grpName);
    public function getGroups($nodeId);
    public function getAllGroups();
    public function getPropertyGroupProperties($nodeId, $grpName);
    public function setPropetyGroupProperties($nodeId, $grpName, $formElementList = array());
    public function setPropertyGroupPropertiesSimple($nodeId, $grpName, $properties = array());
    public function hasGroup($nodeId, $grpName);

Property

    public function addCategory($nodeId, $catId);
    public function removeCategory($nodeId, $catId);
    public function addKeyword($nodeId, $keyword);
    public function removeKeyword($nodeId, $keyword);
    public function setEncryption($nodeId, $cipherName);
    public function unsetEncryption($nodeId);
    public function setSigned($nodeId, $signed);

Search

    public function findByContent($content);
    public function findByName($name);
    public function findByKeywords($keywords = array());
    public function find(QueryParams $queryParams);
    public function findPaginated(QueryParams $queryParams, $offset, $limit);
    public function findSimpleQueryPaginated($statement, $offset, $limit);
    public function findMoreLikeThis($uuid, $max);
    public function getKeywordMap($filter = array());
    public function getCategorizedDocuments($categoryId);
    public function saveSearch(QueryParams $params);
    public function updateSearch(QueryParams $params);
    public function getSearch($qpId);
    public function getAllSearchs();
    public function deleteSearch($qpId);