/** * 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()); } }