* This file is licensed under the Affero General Public License version 3 or * later. * See the COPYING-README file. */ /** * get data from the filecache without checking for updates */ class OC_FileCache_Cached{ public static $savedData=array(); public static function get($path,$root=false){ if($root===false){ $root=OC_Filesystem::getRoot(); } $path=$root.$path; $query=OC_DB::prepare('SELECT path,ctime,mtime,mimetype,size,encrypted,versioned,writable FROM *PREFIX*fscache WHERE path_hash=?'); $result=$query->execute(array(md5($path)))->fetchRow(); if(is_array($result)){ if(isset(self::$savedData[$path])){ $result=array_merge($result,self::$savedData[$path]); } return $result; }else{ if(isset(self::$savedData[$path])){ return self::$savedData[$path]; }else{ return array(); } } } /** * get all files and folders in a folder * @param string path * @param string root (optional) * @return array * * returns an array of assiciative arrays with the following keys: * - path * - name * - size * - mtime * - ctime * - mimetype * - encrypted * - versioned */ public static function getFolderContent($path,$root=false,$mimetype_filter=''){ if($root===false){ $root=OC_Filesystem::getRoot(); } $parent=OC_FileCache::getId($path,$root); if($parent==-1){ return array(); } $query=OC_DB::prepare('SELECT path,name,ctime,mtime,mimetype,size,encrypted,versioned,writable FROM *PREFIX*fscache WHERE parent=? AND (mimetype LIKE ? OR mimetype = ?)'); $result=$query->execute(array($parent, $mimetype_filter.'%', 'httpd/unix-directory'))->fetchAll(); if(is_array($result)){ return $result; }else{ OC_Log::write('files','getFolderContent(): file not found in cache ('.$path.')',OC_Log::DEBUG); return false; } } }