372 lines
13 KiB
PHP
Executable File
372 lines
13 KiB
PHP
Executable File
<?php
|
|
|
|
/**
|
|
* class.pmTrSharepoint.pmFunctions.php
|
|
*
|
|
* ProcessMaker Open Source Edition
|
|
* Copyright (C) 2004 - 2008 Colosa Inc.
|
|
* *
|
|
*/
|
|
////////////////////////////////////////////////////
|
|
// pmTrSharepoint PM Functions
|
|
//
|
|
// Copyright (C) 2007 COLOSA
|
|
//
|
|
// License: LGPL, see LICENSE
|
|
////////////////////////////////////////////////////
|
|
|
|
|
|
/**
|
|
* Sharepoint Triggers that allow ProcessMaker to perform common DWS actions
|
|
* @class pmTrSharepoint
|
|
* @name Sharepoint DWS Triggers v. 0.1
|
|
* @icon /images/triggers/sharepoint.gif
|
|
* @className class.pmTrSharepoint.pmFunctions.php
|
|
*/
|
|
|
|
/**
|
|
* @method
|
|
*
|
|
* Create a DWS in Sharepoint server
|
|
*
|
|
* @name createDWS
|
|
* @label Create a DWS in Sharepoint server
|
|
*
|
|
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port
|
|
* @param string | $auth | Valid Auth string to connect to server | user:password
|
|
* @param string | $name | Name of DWS
|
|
* @param string | $users | Relevent User of DWS
|
|
* @param string | $title | Title of DWS
|
|
* @param string | $documents | Document that need to be attached to DWS
|
|
*
|
|
* @return string | $result | Response
|
|
*
|
|
*/
|
|
function createDWS($sharepointServer, $auth, $name="", $users="", $title="", $documents="", $result="") {
|
|
//print "Trigger: createDWS";
|
|
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
|
|
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
|
|
$beforeResult = $pmTrSharepoint->createDWS($name, $users, $title, $documents);
|
|
return $beforeResult;
|
|
}
|
|
|
|
/**
|
|
* @method
|
|
*
|
|
* Delete a DWS in Sharepoint server
|
|
*
|
|
* @name deleteDWS
|
|
* @label Delete a DWS in Sharepoint server
|
|
*
|
|
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
|
|
* @param string | $auth | Valid Auth string to connect to server | user:password
|
|
* @param string | $dwsname | Name of DWS to be deleted
|
|
*
|
|
* @return string | $result | Response
|
|
*
|
|
*/
|
|
function deleteDWS($sharepointServer, $auth, $dwsname) {
|
|
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
|
|
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
|
|
$beforeResult = $pmTrSharepoint->deleteDWS($dwsname);
|
|
$newResult = $beforeResult->DeleteDwsResult;
|
|
if($newResult == '<Result/>')
|
|
return "Successfully deleted the DWS";
|
|
else
|
|
return "Error in deleting the DWS";
|
|
|
|
}
|
|
|
|
/**
|
|
* @method
|
|
*
|
|
* Create a folder in a DWS
|
|
*
|
|
* @name createFolderDWS
|
|
* @label Create a folder in a DWS
|
|
*
|
|
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
|
|
* @param string | $auth | Valid Auth string to connect to server | user:password
|
|
* @param string | $dwsname | Name of DWS
|
|
* @param string | $dwsFolderName | Name of DWS folder
|
|
*
|
|
* @return string | $result | Response
|
|
*
|
|
*/
|
|
function createFolderDWS($sharepointServer, $auth, $dwsname, $dwsFolderName) {
|
|
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
|
|
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
|
|
$result = $pmTrSharepoint->createFolderDWS($dwsname,$dwsFolderName);
|
|
var_dump($result);
|
|
$newResult = $result->CreateFolderResult;
|
|
var_dump($newResult);
|
|
if(isset($newResult))
|
|
{
|
|
if($newResult == '<Result/>')
|
|
return "Folder is created";
|
|
else
|
|
return "Folder could not be created";
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* @method
|
|
*
|
|
* Delete a DWS folder
|
|
*
|
|
* @name deleteFolderDWS
|
|
* @label Delete a DWS folder
|
|
*
|
|
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
|
|
* @param string | $auth | Valid Auth string to connect to server | user:password
|
|
* @param string | $dwsname | Name of DWS
|
|
* @param string | $delDwsFolderName | Name of DWS folder to be deleted
|
|
*
|
|
* @return string | $result | Response
|
|
*
|
|
*/
|
|
|
|
function deleteFolderDWS($sharepointServer, $auth, $dwsname, $folderName) {
|
|
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
|
|
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
|
|
$result = $pmTrSharepoint->deleteFolderDWS($dwsname, $folderName);
|
|
$newResult = $result->DeleteFolderResult;
|
|
if(isset($newResult))
|
|
{
|
|
if($newResult == '<Result/>')
|
|
return "Folder is deleted";
|
|
else
|
|
return "Folder could not be deleted";
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* @method
|
|
*
|
|
* Get DWS data
|
|
*
|
|
* @name getDWSData
|
|
* @label Get DWS data
|
|
*
|
|
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
|
|
* @param string | $auth | Valid Auth string to connect to server | user:password
|
|
* @param string | $newFileName | File Name
|
|
* @param string | $dwsname | Name of DWS
|
|
* @param string | $lastUpdate | LastUpdate
|
|
*
|
|
* @return string | $result | Response
|
|
*
|
|
*/
|
|
function getDWSData($sharepointServer, $auth, $newFileName, $dwsname, $lastUpdate) {
|
|
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
|
|
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
|
|
$resultDWSData = $pmTrSharepoint->getDWSData($newFileName, $dwsname, $lastUpdate);
|
|
if($resultDWSData)
|
|
return $resultDWSData;
|
|
else
|
|
return "There was some error while getting the DWS Data";
|
|
}
|
|
|
|
/**
|
|
* @method
|
|
*
|
|
* Get DWS meta data
|
|
*
|
|
* @name getDWSMetaData
|
|
* @label Get DWS meta data
|
|
*
|
|
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
|
|
* @param string | $auth | Valid Auth string to connect to server | user:password
|
|
* @param string | $newFileName | File Name
|
|
* @param string | $dwsname | Name of DWS
|
|
* @param string | $id | ID
|
|
*
|
|
*
|
|
* @return string | $result | Response
|
|
*
|
|
*/
|
|
function getDWSMetaData($sharepointServer, $auth, $newFileName, $dwsname, $id) {
|
|
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
|
|
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
|
|
$result = $pmTrSharepoint->getDWSMetaData($newFileName, $dwsname, $id);
|
|
//$newResult = $result->GetDwsMetaDataResult;
|
|
if(isset($result))
|
|
{
|
|
return $result;
|
|
}
|
|
else
|
|
{
|
|
return "Document workspace Meta-data not found";
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @method
|
|
*
|
|
* Copy/Upload Documents to DWS folder
|
|
*
|
|
* @name uploadDocumentDWS
|
|
* @label Copy/Upload Documents to DWS folder
|
|
*
|
|
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
|
|
* @param string | $auth | Valid Auth string to connect to server | user:password
|
|
* @param string | $dwsname | DWS name in which you want to Upload the Folder
|
|
* @param string | $folderName | Folder Name, dont provide folder name in case upload is in "Shared Directory"
|
|
* @param string | $sourceUrl | Absolute path of the file to upload
|
|
* @param string | $filename | Name of the File to Upload
|
|
*
|
|
* @return string | $result | Response
|
|
*
|
|
*/
|
|
function uploadDocumentDWS($sharepointServer, $auth, $dwsname, $folderName, $sourceUrl, $filename) {
|
|
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
|
|
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
|
|
$beforeResult = $pmTrSharepoint->uploadDocumentDWS($dwsname, $folderName, $sourceUrl, $filename);
|
|
|
|
return $beforeResult;
|
|
}
|
|
|
|
/**
|
|
* @method
|
|
*
|
|
* Download documents from DWS folder
|
|
*
|
|
* @name downloadDocumentDWS
|
|
* @label Download DWS Documents
|
|
*
|
|
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
|
|
* @param string | $auth | Valid Auth string to connect to server | user:password
|
|
* @param string | $dwsname | Name of DWS
|
|
* @param string | $fileName | File to be downloaded
|
|
* @param string | $fileLocation | Location to be downloaded into
|
|
*
|
|
* @return string | $result | Response
|
|
*
|
|
*/
|
|
function downloadDocumentDWS($sharepointServer, $auth, $dwsname, $fileName, $fileLocation) {
|
|
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
|
|
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
|
|
$result = $pmTrSharepoint->downloadDocumentDWS($dwsname, $fileName, $fileLocation);
|
|
if(isset($result))
|
|
return "Document downloaded";
|
|
else
|
|
return "Document cannot be downloaded";
|
|
}
|
|
|
|
|
|
/**
|
|
* @method
|
|
*
|
|
* Get DWS Folder items
|
|
*
|
|
* @name getDWSFolderItems
|
|
* @label Get DWS Folder items
|
|
*
|
|
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
|
|
* @param string | $auth | Valid Auth string to connect to server | user:password
|
|
* @param string | $dwsname | Name of the DWS
|
|
* @param string | $strFolderUrl | Folder URL
|
|
*
|
|
* @return string | $result | Response
|
|
*
|
|
*/
|
|
function getDWSFolderItems($sharepointServer, $auth,$dwsname, $strFolderUrl) {
|
|
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
|
|
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
|
|
$result = $pmTrSharepoint->getDWSFolderItems($dwsname, $strFolderUrl);
|
|
if(isset($result))
|
|
return $result;
|
|
else
|
|
return "Folder does not exists";
|
|
}
|
|
|
|
/**
|
|
* @method
|
|
*
|
|
* Get DWS Document Versions
|
|
*
|
|
* @name getDWSDocumentVersions
|
|
* @label Get DWS Document Versions
|
|
*
|
|
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
|
|
* @param string | $auth | Valid Auth string to connect to server | user:password
|
|
* @param string | $newFileName | Name of New File
|
|
* @param string | $dwsname | Name of DWS
|
|
*
|
|
* @return string | $result | Response
|
|
*
|
|
*/
|
|
function getDWSDocumentVersions($sharepointServer, $auth, $newFileName, $dwsname) {
|
|
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
|
|
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
|
|
$result = $pmTrSharepoint->getDWSDocumentVersions($newFileName, $dwsname);
|
|
if(isset($result->GetVersionsResult))
|
|
{
|
|
/*
|
|
* Code to get the Document's Version/s
|
|
*/
|
|
$xml = $result->GetVersionsResult->any;// in Result we get string in Xml format
|
|
$xmlNew = simplexml_load_string($xml);// used to parse string to xml
|
|
$xmlArray = @json_decode(@json_encode($xmlNew),1);// used to convert Objects to array
|
|
$resultCount = count($xmlArray['result']);
|
|
for($i=0;$i<$resultCount;$i++)
|
|
{
|
|
$version[] =$xmlArray['result'][$i]['@attributes']['version'];
|
|
}
|
|
$serializeResult = serialize($version);// serializing the Array for Returning.
|
|
return $serializeResult;
|
|
}
|
|
else
|
|
return "No version found";
|
|
}
|
|
/**
|
|
* @method
|
|
*
|
|
* Delete DWS Document Version
|
|
*
|
|
* @name deleteDWSDocumentVersion
|
|
* @label Delete DWS Document Version
|
|
*
|
|
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
|
|
* @param string | $auth | Valid Auth string to connect to server | user:password
|
|
* @param string | $newFileName | Name of the file
|
|
* @param string | $dwsname | Name of DWS
|
|
* @param string | $versionNum | Version No.
|
|
*
|
|
* @return string | $result | Response
|
|
*
|
|
*/
|
|
function deleteDWSDocumentVersion($sharepointServer, $auth, $newFileName, $dwsname, $versionNum) {
|
|
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
|
|
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
|
|
$result = $pmTrSharepoint->deleteDWSDocVersion($newFileName, $dwsname, $versionNum);
|
|
return $result;
|
|
}
|
|
|
|
|
|
/**
|
|
* @method
|
|
*
|
|
* Delete all DWS Document Versions
|
|
*
|
|
* @name deleteDWSAllDocumentVersion
|
|
* @label Delete all DWS Document Versions
|
|
*
|
|
* @param string | $sharepointServer | Server name and port whre DWS wsdl exists, including protocol | http://server:port/_vti_bin/Dws.asmx?WSDL
|
|
* @param string | $auth | Valid Auth string to connect to server | user:password
|
|
* @param string | $newFileName | Name of File
|
|
* @param string | $dwsname | Name of DWS
|
|
*
|
|
* @return string | $result | Response
|
|
*
|
|
*/
|
|
function deleteDWSAllDocumentVersion($sharepointServer, $auth, $newFileName, $dwsname) {
|
|
require_once(PATH_CORE. 'classes' . PATH_SEP.'triggers' . PATH_SEP . 'class.pmTrSharepoint.php');
|
|
$pmTrSharepoint = new pmTrSharepointClass($sharepointServer, $auth);
|
|
$result = $pmTrSharepoint->deleteAllDWSDocVersion($newFileName, $dwsname);
|
|
return $result;
|
|
} |