Blame view

sources/apps/files_tree/ajax/explore.php 1.34 KB
42e4f8d60   Kload   add all apps
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
  	)
  );