- auth Setup"; $this->auth = $auth; } function setwsdlurl($wsdl) { //print "
- wsdl Setup"; $this->wsdlurl = $wsdl; //var_dump($wsdl); } function loadSOAPClient() { try { // we unregister the current HTTP wrapper stream_wrapper_unregister('http'); // we register the new HTTP wrapper //$client = new PMServiceProviderNTLMStream($this->auth); PMServiceProviderNTLMStream::setAuthStream($this->auth); stream_wrapper_register('http', 'PMServiceProviderNTLMStream') or die("Failed to register protocol"); // $this->client = new PMServiceNTLMSoapClient($this->wsdlurl, array('trace' => 1, 'auth' => $this->auth));// Hugo's code $this->client = new PMServiceNTLMSoapClient($this->wsdlurl, array('trace' => 1)); // Ankit's Code $this->client->setAuthClient($this->auth); return true; } catch (Exception $e) { echo $e; exit; } } function callWsMethod($methodName, $paramArray) { try { if ($methodName == 'DeleteDws' || $methodName == 'GetListCollection') { $strResult = ""; $strResult = $this->client->$methodName($paramArray = ""); return $strResult; } else { $strResult = ""; $strResult = $this->client->$methodName($paramArray); return $strResult; } } catch (SoapFault $fault) { echo 'Fault code: ' . $fault->faultcode; echo 'Fault string: ' . $fault->faultstring; } stream_wrapper_restore('http'); } } class DestinationUrlCollection { public $string; } ; class FieldInformation { } class FieldInformationCollection { public $FieldInformation; } class pmTrSharepointClass{ function __construct($server, $auth) { set_include_path( PATH_PLUGINS . 'pmTrSharepoint' . PATH_SEPARATOR . get_include_path() ); $this->server = $server; $this->auth = $auth; $this->dwsObj = new wscaller(); $this->dwsObj->setAuthUser($this->auth); } function createDWS($name, $users, $title, $documents) { //print "
- Method createDWS"; $this->dwsObj->setwsdlurl($this->server . "/_vti_bin/Dws.asmx?WSDL"); $this->dwsObj->loadSOAPClient(); $paramArray = array('name' => '', 'users' => '', 'title' => $name, 'documents' => ''); $methodName = 'CreateDws'; $result = $this->dwsObj->callWsMethod($methodName, $paramArray); $xml = $result->CreateDwsResult; // in Result we get string in Xml format $xmlNew = simplexml_load_string($xml); // used to parse string to xml $xmlArray = @G::json_decode(@G::json_encode($xmlNew), 1); // used to convert Objects to array $dwsUrl = $xmlArray['Url']; return "Dws with following Url is created:$dwsUrl"; /* $newResult = $result->CreateDwsResult; $needleStart=''; $urlStartPos = strpos($newResult, $needleStart); $urlStart = $urlStartPos + 5; $needleEnd=''; $urlEndPos = strpos($newResult, $needleEnd); $length = $urlEndPos - $urlStart; $result = substr($newResult, $urlStart, $length); return $result; */ } function deleteDWS($dwsname) { //print "
- Method createDWS"; $url = $this->server . "/" . $dwsname . "/_vti_bin/Dws.asmx?WSDL"; $this->dwsObj->setwsdlurl($url); $this->dwsObj->loadSOAPClient(); $paramArray = null; $methodName = 'DeleteDws'; $result = $this->dwsObj->callWsMethod($methodName, $paramArray = null); var_dump($result); return $result; } function createFolderDWS($dwsname, $dwsFolderName) { //print "
- Method createDWS"; $this->dwsObj->setwsdlurl($this->server . "/" . $dwsname . "/_vti_bin/Dws.asmx?WSDL"); $this->dwsObj->loadSOAPClient(); $url = "Shared Documents/$dwsFolderName"; $paramArray = array('url' => $url); # $paramArray = array('name' => '', 'users' => '', 'title' => $name, 'documents' => ''); $methodName = 'CreateFolder'; $result = $this->dwsObj->callWsMethod($methodName, $paramArray); var_dump($result); return $result; } function deleteFolderDWS($dwsname, $folderName) { //print "
- Method createDWS"; $this->dwsObj->setwsdlurl($this->server . "/" . $dwsname . "/_vti_bin/Dws.asmx?WSDL"); $this->dwsObj->loadSOAPClient(); $url = "Shared Documents/$folderName"; $paramArray = array('url' => $url); # $paramArray = array('name' => '', 'users' => '', 'title' => $name, 'documents' => ''); $methodName = 'DeleteFolder'; $result = $this->dwsObj->callWsMethod($methodName, $paramArray); var_dump($result); return $result; } function findDWSdoc($dwsname, $guid) { //print "
- Method createDWS"; $this->dwsObj->setwsdlurl($this->server . $dwsName . "/_vti_bin/Dws.asmx?WSDL"); $this->dwsObj->loadSOAPClient(); $paramArray = array('id' => '$guid'); $methodName = 'FindDwsDoc'; $result = $this->dwsObj->callWsMethod($methodName, $paramArray); var_dump($result); } function getDWSData($newFileName, $dwsname, $lastUpdate) { //print "
- Method getDWSData
"; $url = $this->server . "/" . $dwsname . "/_vti_bin/Dws.asmx?WSDL"; $this->dwsObj->setwsdlurl($url); if ($this->dwsObj->loadSOAPClient()) { $doc = "Shared Documents"; $paramArray = array('document' => '', 'lastUpdate' => ''); $methodName = 'GetDwsData'; $result = $this->dwsObj->callWsMethod($methodName, $paramArray); var_dump($result); $sResult = $result->GetDwsDataResult; /* $xmlNew = simplexml_load_string($sResult);// used to parse string to xml $xmlArray = @G::json_decode(@G::json_encode($xmlNew),1);// used to convert Objects to array */ $serializeResult = serialize($sResult); // serializing the Array for Returning. var_dump($serializeResult); return $serializeResult; } else { return "The enter the Correct Dws Name"; } } function uploadDocumentDWS($dwsname, $folderName, $sourceUrl, $filename) { //print "
- Method createDWS"; $url = $this->server ."/". $dwsname . "/_vti_bin/Copy.asmx?WSDL"; $this->dwsObj->setwsdlurl($url); $this->dwsObj->loadSOAPClient(); $destUrlObj = new DestinationUrlCollection(); if ($folderName != '') { $destUrl = $this->server . "/$dwsname/Shared%20Documents/$folderName/$filename"; } else { $destUrl = $this->server . "/$dwsname/Shared%20Documents/$filename"; } $destUrlObj->string = $destUrl; $fieldInfoObj = new FieldInformation(); $fieldInfoCollObj = new FieldInformationCollection(); $fieldInfoCollObj->FieldInformation = $fieldInfoObj; $imgfile = $sourceUrl . "/" . $filename; $filep = fopen($imgfile, "r"); $fileLength = filesize($imgfile); $content = fread($filep, $fileLength); //$content = base64_encode($content); $paramArray = array('SourceUrl' => $imgfile, 'DestinationUrls' => $destUrlObj, 'Fields' => $fieldInfoCollObj, 'Stream' => $content); $methodName = 'CopyIntoItems'; $result = $this->dwsObj->callWsMethod($methodName, $paramArray); var_dump($result); $newResult = $result->Results->CopyResult->ErrorCode; if ($newResult == 'Success') { return "The document has been uploaded Successfully"; } else { return "Could not Upload the Document due to some Error"; } } function getDWSMetaData($newFileName, $dwsname, $id) { //print "
- Method createDWS"; $url = $this->server . "/" . $dwsname . "/_vti_bin/Dws.asmx?WSDL"; $this->dwsObj->setwsdlurl($url); $this->dwsObj->loadSOAPClient(); $doc = "Shared Documents/$newFileName"; $paramArray = array('document' => $doc, 'id' => '', 'minimal' => False); $methodName = 'GetDwsMetaData'; $result = $this->dwsObj->callWsMethod($methodName, $paramArray); $sResult = $result->GetDwsMetaDataResult; $errorReturn = strpos($sResult, "Error"); if(isset($sResult) && !$errorReturn) { $serializeResult = serialize($sResult); // serializing the Array for Returning. var_dump($serializeResult); return $serializeResult; } else return $sResult; } function getDWSDocumentVersions($newFileName, $dwsname) { //print "
- Method createDWS"; $this->dwsObj->setwsdlurl($this->server . "/" . $dwsname . "/_vti_bin/Versions.asmx?WSDL"); $this->dwsObj->loadSOAPClient(); $doc = "Shared Documents/$newFileName"; $paramArray = array('fileName' => $doc); $methodName = 'GetVersions'; $result = $this->dwsObj->callWsMethod($methodName, $paramArray); var_dump($result); return $result; } function deleteDWSDocVersion($newFileName, $dwsname, $versionNum) { //print "
- Method createDWS"; $this->dwsObj->setwsdlurl($this->server . "/" . $dwsname . "/_vti_bin/Versions.asmx?WSDL"); $this->dwsObj->loadSOAPClient(); $doc = "Shared Documents/$newFileName"; $paramArray = array('fileName' => $doc, 'fileVersion' => $versionNum); $methodName = 'DeleteVersion'; $result = $this->dwsObj->callWsMethod($methodName, $paramArray); if ($result) { $sResult = $result->DeleteVersionResult->any; $xmlNew = simplexml_load_string($sResult); // used to parse string to xml $xmlArray = @G::json_decode(@G::json_encode($xmlNew), 1); // used to convert Objects to array $versionCount = count($xmlArray['result']); if($versionCount>1) { for($i=0;$i<$versionCount;$i++) { $version[] = $xmlArray['result'][$i]['@attributes']['version']; } } else{ $version[] = $xmlArray['result']['@attributes']['version']; } $serializeResult = serialize($version); // serializing the Array for Returning. var_dump($serializeResult); return $serializeResult; } else { return"The given Version could not be deleted."; } } function deleteAllDWSDocVersion($newFileName, $dwsname) { //print "
- Method createDWS"; $this->dwsObj->setwsdlurl($this->server . "/" . $dwsname . "/_vti_bin/Versions.asmx?WSDL"); $this->dwsObj->loadSOAPClient(); $doc = "Shared Documents/$newFileName"; $paramArray = array('fileName' => $doc); $methodName = 'DeleteAllVersions'; $result = $this->dwsObj->callWsMethod($methodName, $paramArray); if ($result) { $xml = $result->DeleteAllVersionsResult->any; // in Result we get string in Xml format $xmlNew = simplexml_load_string($xml); // used to parse string to xml $xmlArray = @G::json_decode(@G::json_encode($xmlNew), 1); // used to convert Objects to array $latestVersion = $xmlArray['result']['@attributes']['version']; return "All Versions are Deleted, except the latest i.e $latestVersion"; } else { return "The Version/ File name/ Dws Name is incorrect"; } } function getDWSFolderItems($dwsname, $strFolderUrl) { $pmTrSharepointClassObj = new pmTrSharepointClass(); //print "
- Method getDWSFolderItems"; $url = $this->server . "/" . $dwsname . "/_vti_bin/SiteData.asmx?WSDL"; $this->dwsObj->setwsdlurl($this->server . "/" . $dwsname . "/_vti_bin/SiteData.asmx?WSDL"); $this->dwsObj->loadSOAPClient(); #$doc = "Shared Documents/$newFileName"; $paramArray = array('strFolderUrl' => $strFolderUrl); $methodName = 'EnumerateFolder'; $result = $this->dwsObj->callWsMethod($methodName, $paramArray); //$newResult = $result->vUrls->_sFPUrl->Url; if (isset($result->vUrls->_sFPUrl->Url)) { $returnContent = $pmTrSharepointClassObj->getFolderUrlContent($result->vUrls->_sFPUrl->Url); $serializeResult = serialize($returnContent); return $serializeResult; } else if (isset($result->vUrls->_sFPUrl)) { $itemCount = count($result->vUrls->_sFPUrl); for ($i = 0; $i < $itemCount; $i++) { $aObjects = $result->vUrls->_sFPUrl[$i]->IsFolder; //$booleanStatus = $aObjects[$i]->IsFolder; if ($aObjects) { $listArr = $result->vUrls->_sFPUrl[$i]->Url; $returnContent[] = $pmTrSharepointClassObj->getFolderUrlContent($listArr) . "(Is a Folder)"; } else { $listArr = $result->vUrls->_sFPUrl[$i]->Url; $returnContent[] = $pmTrSharepointClassObj->getFolderUrlContent($listArr) . "(Is a File)"; } } $serializeResult = serialize($returnContent); return $serializeResult; } return "There is some error"; } function downloadDocumentDWS($dwsname, $fileName, $fileLocation) { //print "
- Method createDWS"; $url = $this->server . "/" . $dwsname . "/_vti_bin/Copy.asmx?WSDL"; $this->dwsObj->setwsdlurl($url); $this->dwsObj->loadSOAPClient(); $CompleteUrl = $this->server . "/" . $dwsname . "/Shared Documents/" . $fileName; $paramArray = array('Url' => $CompleteUrl); $methodName = 'GetItem'; $result = $this->dwsObj->callWsMethod($methodName, $paramArray); $newResult = $result->Stream; //$latestResult = base64_decode($newResult); /** * In the Below line of code, we are coping the files at our local Directory using the php file methods. * */ $imgfile = $fileLocation . "/" . $fileName; $filep = fopen($imgfile, 'w'); //$content = fwrite($filep, $latestResult); $content = fwrite($filep, $newResult); return $content; } function getFolderUrlContent($newResult) { $needleStart = '/'; $needleCount = substr_count($newResult, $needleStart); $urlStartPos = strpos($newResult, $needleStart); $urlStartPos++; if ($needleCount == '2') { $newResultPos = strpos($newResult, $needleStart, $urlStartPos); $newResultPos++; $actualResult = substr($newResult, $newResultPos); return $actualResult; } else{ $actualResult = substr($newResult,$urlStartPos); return $actualResult; } } }