Blame view
sources/apps/files_tree/ajax/explore.php
1.34 KB
|
42e4f8d60
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
<?php
OCP\JSON::callCheck();
$currentdir=$_REQUEST['dir'];
$uid=OCP\User::getUser();
function listdir($dir){
$dir = stripslashes($dir);
$list = \OC\Files\Filesystem::getdirectorycontent($dir);
if(sizeof($list)>0){
$ret='';
foreach( $list as $i ) {
if($i['type']=='dir' && $i['name']!='.') {
$ret.='<li><a href="./?app=files&dir='.$dir.'/'.$i['name'].'" data-pathname="'.$dir.'/'.$i['name'].'">';
$ret.=$i['name'].'</a>';
$ret.=listdir($dir.'/'.$i['name']);
$ret.='</li>';
}
}
if($ret!=''){
$ret= '<ul data-path="'.$dir.'"><li></li>'.$ret.'</ul>';
}
return stripslashes($ret);
}
}
/* Caching results */
$loglist='';
$inilist='';
$dir_cache_file='files_tree_cache';
$cache = new OC_Cache_File;
if(!isset($_REQUEST['refresh']) && null !== $loglist = $cache->get($dir_cache_file)){
$inilist=$loglist;
}
if($loglist==''){
$loglist = listdir('');
}
if($loglist!='' && $inilist==''){
$cache->set($dir_cache_file, $loglist);
\OCP\Util::writeLog('files_tree', 'cache saved to file ' . $dir_cache_file, \OC_Log::DEBUG);
}
/* Sendind results */
$dirs_stat = OCP\Config::getUserValue($uid,'files_tree','dirs_stat','');
if($dirs_stat=='') $dirs_stat=array();
else $dirs_stat=unserialize($dirs_stat);
echo json_encode(
array(
'list'=>$loglist,
'stat'=>$dirs_stat
)
);
|