. * */ namespace OCA\Documents; class Storage { public static function getDocuments() { $list = array_filter( \OCP\Files::searchByMime('application/vnd.oasis.opendocument.text'), function($item){ //filter Deleted if (strpos($item['path'], '_trashbin')===0){ return false; } return true; } ); return $list; } /** * @brief Retrieve path by fileId * @param int $fileId * @throws \Exception */ public static function getFilePath($fileId){ if (!$fileId){ throw new \Exception('No valid file has been passed'); } $fileInfo = \OC\Files\Cache\Cache::getById($fileId); $path = @$fileInfo[1]; if (!$path){ throw new \Exception('File not found in cache'); } // Strip /files infront of the path $normalizedPath = preg_replace('/^\/?files/', '', $path); if (!\OC\Files\Filesystem::file_exists($path) && \OC\Files\Filesystem::file_exists('/Shared' . $normalizedPath) && \OC\Files\Filesystem::is_file('/Shared' . $normalizedPath) ){ // this file is shared $normalizedPath = '/Shared' . $normalizedPath; } return $normalizedPath; } /** * @brief Cleanup session data on removing the document * @param array * * This function is connected to the delete signal of OC_Filesystem * to delete the related info from database */ public static function onDelete($params) { $info = \OC\Files\Filesystem::getFileInfo($params['path']); $fileId = @$info['fileid']; if (!$fileId){ return; } $session = Session::getSessionByFileId($fileId); if (!is_array($session)){ return; } Session::cleanUp($session['es_id']); } }