示例#1
0
 /**
  * Get remote folder structure
  *
  * @param	   string	$service		Service name (google or dropbox)
  * @param	   integer	$uid			User ID
  * @param	   array	&$remoteFolders Collector array
  * @param	   string	$path
  *
  * @return	   NULL
  */
 public function getFolderStructure($service = 'google', $uid = 0, &$remoteFolders, $path = '')
 {
     // Get api
     $apiService = $this->getAPI($service, $uid);
     if (!$apiService) {
         if (!$this->getError()) {
             $this->setError(Lang::txt('PLG_PROJECTS_FILES_SYNC_API_UNAVAILABLE'));
         }
         return false;
     }
     if ($service == 'google') {
         // Get remote folder ID
         $folderID = $this->getConfigParam($service, 'remote_dir_id');
         $folderName = $this->getConfigParam($service, 'remote_dir');
         // Check that master folder is there
         try {
             $folder = $apiService->files->get($folderID);
             if ($folder && $folder['labels']['trashed'] == 1) {
                 // Untrash
                 Google::untrashItem($apiService, $folderID);
             }
             if ($folder && $folder['title'] != $folderName) {
                 // Save renamed reference
                 $obj = new \Components\Projects\Tables\Project($this->_db);
                 $obj->saveParam($this->model->get('id'), $service . '_dir', $folder['title']);
             }
         } catch (Exception $e) {
             $this->setError(Lang::txt('PLG_PROJECTS_FILES_SYNC_SERVICE_UNAVAILABLE'));
             return false;
         }
         Google::getFolders($apiService, $folderID, $remoteFolders, $path);
     }
     return true;
 }