$mods = array(); foreach($files as $k=>$v) { $v = $files[$k] = clean($v); $gr = get_group($v); if(!empty($gr)) $groups[$gr] = true; $own = get_group($v); if(!empty($own)) $owners[$own] = true; $mod = get_rights($v); $mods[$mod] = true; if(d_is_file($v)) $fsizes[] = show_size($v, false); else $dsizes[] = show_size($v, false); } light_message('<h3>Properties for selected items</h3> <p>size of '.sizeof($fsizes).' selected files: <b>'.show_size(0,false,array_sum($fsizes)).'</b></p> <p>size of '.sizeof($dsizes).' selected dirs: <b>'.show_size(0,false,array_sum($dsizes)).'</b></p> <p>total size: <b>'.show_size(0,false,array_sum($fsizes)+array_sum($dsizes)).'</b></p> '.(sizeof($mods)==1 ? '<p>mod: <b>'.get_rights($v,false).' ('.get_rights($v).')</b></p>' : '').' '.(sizeof($owners)==1 ? '<p>owner: <b>'.get_owner($v).'</b></p>' : '').' '.(sizeof($groups)==1 ? '<p>group: <b>'.get_group($v).'</b></p>' : '') ); } break; case 'terminal':
/** * Copy not only files, but folders too. See copy() description for details * * @param string $src * @param string $dest * @return bool */ function d_copy($src,$dest) { if(!$src||!$dest) return false; /* this is very important function and must be protected from stupid errors */ $src = abs_path($src,false); $dest = abs_path($dest,false); setwritable(dirname($dest),true); setreadable($src,true); /* we need to have read permissions! */ if(d_is_file($src)) return (!FIX && @copy($src,$dest)) || @d_ftpcom('copy',$src,$dest); if(!d_is_dir($src)) return d_error($src.' does not exist'); $dest.='/'; $src .='/'; if(substr($dest,0,strlen($src))==$src) return d_error('Cannot copy the directory inside itself.'); if(!d_is_dir($dest) && !d_mkdir($dest)) return false; $t = d_filelist_fast($src); foreach(array_merge($t['files'],$t['dirs']) as $f) if(!d_copy($src.basename($f),$dest.basename($f))) $error=true; return !isset($error); }