Example #1
0
 /**
  * With trailing and leading slashes
  * @param $path1
  * @param $path2
  * @return string
  */
 public static function joinPathsAbsolute($path1, $path2)
 {
     $path = ilCloudUtil::normalizePath(str_replace('//', '/', $path1 . $path2));
     if ($path == "/") {
         return $path;
     } else {
         return "/" . ltrim($path, "/") . "/";
     }
 }
 /**
  * @param string $path
  */
 public function setPath($path = "/")
 {
     $this->path = ilCloudUtil::normalizePath($path, $this->is_dir);
 }
 /**
  * Set root_folder, this may only be changed by the owner of the object. This is due too security constraints.
  * The parameter $no_check could be used by plugins for which these constraint is not an issue.
  *
  * @param    string        root_folder
  */
 function setRootFolder($a_val, $no_check = false)
 {
     if ($this->currentUserIsOwner() || $no_check || $this->getRootFolder() == null) {
         $a_val = ilCloudUtil::normalizePath($a_val);
         $this->root_folder = $a_val;
     } else {
         throw new ilCloudException(ilCloudException::PERMISSION_TO_CHANGE_ROOT_FOLDER_DENIED);
     }
 }
 /**
  * @param null            $path
  * @param ilCloudFileTree $file_tree
  *
  * @return bool
  */
 public function deleteItem($path = NULL, ilCloudFileTree $file_tree = NULL)
 {
     //		throw new ilCloudException(-1, print_r($file_tree, true));
     $path = ilCloudUtil::joinPaths($file_tree->getRootPath(), $path);
     return $this->getClient()->delete($path);
 }
 /**
  * @param null $path
  * @param ilCloudFileTree|null $file_tree
  * @return mixed
  * @throws \Dropbox\Exception_BadResponseCode
  * @throws \Dropbox\Exception_InvalidAccessToken
  * @throws \Dropbox\Exception_RetryLater
  * @throws \Dropbox\Exception_ServerError
  */
 public function deleteItem($path = null, ilCloudFileTree $file_tree = null)
 {
     $path = ilCloudUtil::joinPaths($file_tree->getRootPath(), $path);
     return $this->getServiceObject()->delete($path);
 }
 /**
  * @param $id
  * @param $folder_name
  * @throws ilCloudException
  */
 public function addFolderToService($id, $folder_name)
 {
     try {
         if ($folder_name == null) {
             throw new ilCloudException(ilCloudException::INVALID_INPUT, $folder_name);
         }
         $current_node = $this->getNodeFromId($id);
         $path = ilCloudUtil::joinPaths($current_node->getPath(), ilCloudUtil::normalizePath($folder_name));
         if ($this->getNodeFromPath($path) != null) {
             throw new ilCloudException(ilCloudException::FOLDER_ALREADY_EXISTING_ON_SERVICE, $folder_name);
         }
         $current_node->setLoadingComplete(false);
         $this->storeFileTreeToSession();
         $service = ilCloudConnector::getServiceClass($this->getServiceName(), $this->getId());
         $service->createFolder($path, $this);
         $this->addItemsFromService($current_node->getId());
         $new_path = ilCloudUtil::joinPaths($current_node->getPath(), $folder_name);
         $new_node = $this->getNodeFromPath($new_path);
         return $new_node;
     } catch (Exception $e) {
         if ($e instanceof ilCloudException) {
             throw $e;
         }
         throw new ilCloudException(ilCloudException::FOLDER_CREATION_FAILED, $e->getMessage());
     }
 }