12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- /**
- * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
- * 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;
- }
- }
- }
|