Parent Directory..."; } extract(parse_plugin_cfg('dynamix',true)); $disks = parse_ini_file('state/disks.ini',true); $dir = $_GET['dir']; $path = $_GET['path']; $user = $_GET['user']; $list = []; $all = $docroot.preg_replace('/([\'" &()[\]\\\\])/','\\\\$1',$dir).'/*'; $set = explode('/',str_replace('//','/',$dir))[2]; exec("shopt -s dotglob; stat -L -c'%F|%n|%s|%Y' $all 2>/dev/null",$item); if ($user) { exec("shopt -s dotglob; getfattr --no-dereference --absolute-names --only-values -n system.LOCATIONS $all 2>/dev/null",$loc); $loc = explode("\n",preg_replace("/(disk|cache)/","\n$1",$loc[0])); $i = 0; } echo "TypeNameSizeLast ModifiedLocation"; if ($link = parent_link()) echo "
$link"; echo ""; foreach ($item as $entry) { $attr = explode('|',$entry); $info = pathinfo($attr[1]); $disk = $set; $luks = ''; if ($user) { $disk = $loc[++$i]; $devs = explode(',',$disk); $type = preg_replace('/\d+/','',$devs[0]); $show = false; foreach ($devs as $dev) $show |= strpos($disks[$type.str_replace($type,'',$dev)]['fsType'],'luks:')!==false; if ($show) foreach ($devs as $dev) { switch ($disks[$type.str_replace($type,'',$dev)]['luksState']) { case 0: $luks .= ""; break; case 1: $luks .= ""; break; case 2: $luks .= ""; break; case 3: $luks .= ""; break; default: $luks .= ""; break;} } } $list[] = [ 'type' => $attr[0], 'name' => $info['basename'], 'fext' => strtolower($info['extension']), 'size' => $attr[2], 'time' => $attr[3], 'disk' => my_disk($disk).$luks]; } $dirs=0; $files=0; $total=0; foreach ($list as $entry) { echo ""; if ($entry['type']=='directory') { $dirs++; echo "
"; echo "".htmlspecialchars($entry['name']).""; echo "<DIR>"; echo "".my_time($entry['time'],"%F {$display['time']}").""; echo "{$entry['disk']}"; } else { $files++; $total+=$entry['size']; $type = strpos(',',$entry['disk'])===false ? '' : 'warning'; echo "
"; echo "".htmlspecialchars($entry['name']).""; echo "".my_scale($entry['size'],$unit)." $unit"; echo "".my_time($entry['time'],"%F {$display['time']}").""; echo "{$entry['disk']}"; } echo ""; } echo ""; $objs = $dirs+$files; $objtext = "$objs object".($objs==1?'':'s'); $dirtext = "$dirs director".($dirs==1?'y':'ies'); $filetext = "$files file".($files==1?'':'s'); $totaltext = $files==0 ? '':'('.my_scale($total,$unit).' '.$unit.' total)'; echo "$objtext: $dirtext, $filetext $totaltext";