示例#1
0
 /**
  * Create remote folder
  *
  * @param	   integer	$projectid		Project ID
  * @param	   string	$service		Service name (google or dropbox)
  * @param	   integer	$uid			User ID
  * @param	   string	$title			Folder name
  * @param	   string	$path			Path to folder
  * @param	   string	$parentId		Parent folder ID
  * @param	   array	&$remoteFolders Collector array
  *
  * @return	   integer (folder ID)
  */
 public function createRemoteFolder($projectid = NULL, $service = 'google', $uid = 0, $title = '', $path = '', $parentId = 0, &$remoteFolders = array())
 {
     if (!$projectid) {
         $projectid = $this->model->get('id');
     }
     if (!$projectid || !$title || !$parentId || !$path) {
         return false;
     }
     // Get api
     $apiService = $this->getAPI($service, $uid);
     if (!$apiService) {
         $this->setError(Lang::txt('PLG_PROJECTS_FILES_SYNC_API_UNAVAILABLE'));
         return false;
     }
     // Check once again that we don't have this folder already
     if (isset($remoteFolders[$path])) {
         if ($remoteFolders[$path]['status'] == 'D') {
             // Untrash
             if ($service == 'google') {
                 Google::untrashItem($apiService, $remoteFolders[$path]['remoteid']);
             }
         }
         $parentId = $remoteFolders[$path]['remoteid'];
     } else {
         // We do need to create a new folder
         $newParentId = 0;
         // Collector for created folder metadata
         $metadata = array();
         // Perform request
         if ($service == 'google') {
             $newParentId = Google::createFolder($apiService, $title, $parentId, $metadata);
         }
         // Error!
         if (!$newParentId) {
             return NULL;
         }
         // Add newly create folder to remoteFolders array
         $remoteFolders[$path] = array('remoteid' => $newParentId, 'status' => 'A', 'parentid' => $parentId);
         // Update connection record
         $objRFile = new \Components\Projects\Tables\RemoteFile($this->_db);
         $update = $objRFile->updateRecord($projectid, $service, $newParentId, $path, 'folder', $this->_uid, $parentId, $title);
         return $newParentId;
     }
     return $parentId;
 }