This will remove:
- leading '/'
- leading 'gollem'
- trailing '/'
The desired end result is the path including VFS backend.
public static stripAPIPath ( string $path ) : string | ||
$path | string | Path as presented to Gollem API. |
return | string | Cleaned path as described above. |
/** * Removes a file or folder from the VFS * * @param string $path Path of file or folder to delete */ public function path_delete($path) { // Clean off the irrelevant portions of the path $path = Gollem::stripAPIPath($path); if ($path == '') { // We are at the root of gollem. Any writes at this level are // disallowed. throw new Gollem_Exception(_("The application folder can not be deleted.")); } $backend_key = $this->_getBackend($path); throw new Gollem_Exception('Permssion checks not implemented yet.'); // Trim off the backend_key (and '/') to get the VFS relative path $fullpath = substr($path, strlen($backend_key) + 1); // Get the VFS-standard $name,$path pair list($name, $path) = Gollem::getVFSPath($fullpath); // Apparently Gollem::verifyDir() (called by deleteF* next) needs to // see a path with a leading '/' $path = $backends[$backend_key]['root'] . $path; $GLOBALS['injector']->getInstance('Gollem_Vfs')->isFolder($path, $name) ? Gollem::deleteFolder($path, $name) : Gollem::deleteFile($path, $name); }