VPN-Management-GUI 2.0.3 porting start
This commit is contained in:
241
Modules/Downloads/include/fun_list.php
Executable file
241
Modules/Downloads/include/fun_list.php
Executable file
@@ -0,0 +1,241 @@
|
||||
<?php
|
||||
|
||||
// HELPER FUNCTIONS (USED BY MAIN FUNCTION 'list_dir', SEE BOTTOM)
|
||||
function make_list($_list1, $_list2) { // make list of files
|
||||
$list = array();
|
||||
|
||||
if($GLOBALS["srt"]=="yes") {
|
||||
$list1 = $_list1;
|
||||
$list2 = $_list2;
|
||||
} else {
|
||||
$list1 = $_list2;
|
||||
$list2 = $_list1;
|
||||
}
|
||||
|
||||
if(is_array($list1)) {
|
||||
while (list($key, $val) = each($list1)) {
|
||||
$list[$key] = $val;
|
||||
}
|
||||
}
|
||||
|
||||
if(is_array($list2)) {
|
||||
while (list($key, $val) = each($list2)) {
|
||||
$list[$key] = $val;
|
||||
}
|
||||
}
|
||||
|
||||
return $list;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
function make_tables($dir, &$dir_list, &$file_list, &$tot_file_size, &$num_items)
|
||||
{ // make table of files in dir
|
||||
// make tables & place results in reference-variables passed to function
|
||||
// also 'return' total filesize & total number of items
|
||||
|
||||
$tot_file_size = $num_items = 0;
|
||||
|
||||
// Open directory
|
||||
$handle = @opendir(get_abs_dir($dir));
|
||||
if($handle===false) show_error($dir.": ".$GLOBALS["error_msg"]["opendir"]);
|
||||
|
||||
// Read directory
|
||||
while(($new_item = readdir($handle))!==false) {
|
||||
$abs_new_item = get_abs_item($dir, $new_item);
|
||||
|
||||
if(!@file_exists($abs_new_item)) show_error($dir.": ".$GLOBALS["error_msg"]["readdir"]);
|
||||
if(!get_show_item($dir, $new_item)) continue;
|
||||
|
||||
$new_file_size = filesize($abs_new_item);
|
||||
$tot_file_size += $new_file_size;
|
||||
$num_items++;
|
||||
|
||||
if(get_is_dir($dir, $new_item)) {
|
||||
if($GLOBALS["order"]=="mod") {
|
||||
$dir_list[$new_item] =
|
||||
@filemtime($abs_new_item);
|
||||
} else { // order == "size", "type" or "name"
|
||||
$dir_list[$new_item] = $new_item;
|
||||
}
|
||||
} else {
|
||||
if($GLOBALS["order"]=="size") {
|
||||
$file_list[$new_item] = $new_file_size;
|
||||
} elseif($GLOBALS["order"]=="mod") {
|
||||
$file_list[$new_item] =
|
||||
@filemtime($abs_new_item);
|
||||
} elseif($GLOBALS["order"]=="type") {
|
||||
$file_list[$new_item] =
|
||||
get_mime_type($dir, $new_item, "type");
|
||||
} else { // order == "name"
|
||||
$file_list[$new_item] = $new_item;
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($handle);
|
||||
|
||||
|
||||
// sort
|
||||
if(is_array($dir_list)) {
|
||||
if($GLOBALS["order"]=="mod") {
|
||||
if($GLOBALS["srt"]=="yes") arsort($dir_list);
|
||||
else asort($dir_list);
|
||||
} else { // order == "size", "type" or "name"
|
||||
if($GLOBALS["srt"]=="yes") ksort($dir_list);
|
||||
else krsort($dir_list);
|
||||
}
|
||||
}
|
||||
|
||||
// sort
|
||||
if(is_array($file_list)) {
|
||||
if($GLOBALS["order"]=="mod") {
|
||||
if($GLOBALS["srt"]=="yes") arsort($file_list);
|
||||
else asort($file_list);
|
||||
} elseif($GLOBALS["order"]=="size" || $GLOBALS["order"]=="type") {
|
||||
if($GLOBALS["srt"]=="yes") asort($file_list);
|
||||
else arsort($file_list);
|
||||
} else { // order == "name"
|
||||
if($GLOBALS["srt"]=="yes") ksort($file_list);
|
||||
else krsort($file_list);
|
||||
}
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
function print_table($dir, $list, $allow) { // print table of files
|
||||
if(!is_array($list)) return;
|
||||
|
||||
while(list($item,) = each($list)){
|
||||
// link to dir / file
|
||||
$abs_item=get_abs_item($dir,$item);
|
||||
$target="";
|
||||
//$extra="";
|
||||
//if(is_link($abs_item)) $extra=" -> ".@readlink($abs_item);
|
||||
if(is_dir($abs_item)) {
|
||||
$link = make_link("list",get_rel_item($dir, $item),NULL);
|
||||
} else { //if(get_is_editable($dir,$item) || get_is_image($dir,$item)) {
|
||||
$link = make_link("download",$dir,$item);
|
||||
$target = "_blank";
|
||||
} //else $link = "";
|
||||
|
||||
echo "<TR class=\"rowdata\">\n";
|
||||
// Icon + Link
|
||||
echo "<TD nowrap>";
|
||||
/*if($link!="") */ echo"<A HREF=\"".$link."\">";
|
||||
//else echo "<A>";
|
||||
echo "<IMG border=\"0\" width=\"16\" height=\"16\" ";
|
||||
echo "align=\"ABSMIDDLE\" src=\"/Modules/Downloads/img/".get_mime_type($dir, $item, "img")."\" ALT=\"\"> ";
|
||||
$s_item=$item; if(strlen($s_item)>50) $s_item=substr($s_item,0,47)."...";
|
||||
echo htmlspecialchars($s_item)."</A></TD>\n"; // ...$extra...
|
||||
// Size
|
||||
echo "<TD>".parse_file_size(get_file_size($dir,$item))."</TD>\n";
|
||||
// Type
|
||||
echo "<TD>".get_mime_type($dir, $item, "type")."</TD>\n";
|
||||
// Modified
|
||||
echo "<TD>".parse_file_date(get_file_date($dir,$item))."</TD>\n";
|
||||
// Permissions
|
||||
// echo "<TD>";
|
||||
|
||||
// echo parse_file_type($dir,$item).parse_file_perms(get_file_perms($dir,$item));
|
||||
// if($allow) echo "</A>";
|
||||
// echo "</TD>\n";
|
||||
// Actions
|
||||
echo "<TD>\n<TABLE>\n";
|
||||
// DOWNLOAD
|
||||
if(get_is_file($dir,$item)) {
|
||||
if($allow) {
|
||||
echo "<TD><A HREF=\"".make_link("download",$dir,$item)."\">";
|
||||
echo "<IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" ";
|
||||
echo "src=\"/Modules/Downloads/img/_download.gif\" ALT=\"".$GLOBALS["messages"]["downlink"];
|
||||
echo "\" TITLE=\"".$GLOBALS["messages"]["downlink"]."\"></A></TD>\n";
|
||||
} else if(!$allow) {
|
||||
echo "<TD><IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" ";
|
||||
echo "src=\"/Modules/Downloads/img/_download_.gif\" ALT=\"".$GLOBALS["messages"]["downlink"];
|
||||
echo "\" TITLE=\"".$GLOBALS["messages"]["downlink"]."\"></TD>\n";
|
||||
}
|
||||
} else {
|
||||
echo "<TD><IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" ";
|
||||
echo "src=\"/Modules/Downloads/img/_.gif\" ALT=\"\"></TD>\n";
|
||||
}
|
||||
echo "</TABLE>\n</TD></TR>\n";
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
// MAIN FUNCTION
|
||||
function list_dir($dir) { // list directory contents
|
||||
$allow=($GLOBALS["permissions"]&01)==01;
|
||||
$admin=((($GLOBALS["permissions"]&04)==04) || (($GLOBALS["permissions"]&02)==02));
|
||||
|
||||
$dir_up = dirname($dir);
|
||||
if($dir_up==".") $dir_up = "";
|
||||
|
||||
if(!get_show_item($dir_up,basename($dir))) show_error($dir." : ".$GLOBALS["error_msg"]["accessdir"]);
|
||||
|
||||
// make file & dir tables, & get total filesize & number of items
|
||||
make_tables($dir, $dir_list, $file_list, $tot_file_size, $num_items);
|
||||
|
||||
$s_dir=$dir; if(strlen($s_dir)>50) $s_dir="...".substr($s_dir,-47);
|
||||
echo "Directory: /".get_rel_item("",$s_dir);
|
||||
|
||||
// Javascript functions:
|
||||
include $_SERVER["DOCUMENT_ROOT"]."/Modules/Downloads/include/javascript.php";
|
||||
|
||||
|
||||
// Toolbar
|
||||
echo "<BR><TABLE width=\"95%\"><TR><TD><TABLE><TR>\n";
|
||||
|
||||
// PARENT DIR
|
||||
echo "<TD><A HREF=\"".make_link("list",$dir_up,NULL)."\">";
|
||||
echo "<IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" src=\"/Modules/Downloads/img/_up.gif\" ";
|
||||
echo "ALT=\"".$GLOBALS["messages"]["uplink"]."\" TITLE=\"".$GLOBALS["messages"]["uplink"]."\"></A></TD>\n";
|
||||
// HOME DIR
|
||||
echo "<TD><A HREF=\"".make_link("list",NULL,NULL)."\">";
|
||||
echo "<IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" src=\"/Modules/Downloads/img/_home.gif\" ";
|
||||
echo "ALT=\"".$GLOBALS["messages"]["homelink"]."\" TITLE=\"".$GLOBALS["messages"]["homelink"]."\"></A></TD>\n";
|
||||
// RELOAD
|
||||
echo "<TD><A HREF=\"javascript:location.reload();\"><IMG border=\"0\" width=\"16\" height=\"16\" ";
|
||||
echo "align=\"ABSMIDDLE\" src=\"/Modules/Downloads/img/_refresh.gif\" ALT=\"".$GLOBALS["messages"]["reloadlink"];
|
||||
echo "\" TITLE=\"".$GLOBALS["messages"]["reloadlink"]."\"></A></TD>\n";
|
||||
|
||||
echo "</TR></TABLE></TD>\n";
|
||||
|
||||
echo "</TR></TABLE>\n";
|
||||
|
||||
// End Toolbar
|
||||
|
||||
|
||||
// Begin Table + Form for checkboxes
|
||||
echo"<TABLE WIDTH=\"95%\"><FORM name=\"selform\" method=\"POST\" action=\"".make_link("post",$dir,NULL)."\">\n";
|
||||
|
||||
// Table Header
|
||||
echo "<TR><TD colspan=\"5\"><HR></TD></TR><TR>\n";
|
||||
echo "<TD WIDTH=\"70%\" class=\"header\"><B>\n";
|
||||
echo $GLOBALS["messages"]["nameheader"];
|
||||
echo "</B></TD>\n<TD WIDTH=\"10%\" class=\"header\"><B>";
|
||||
echo $GLOBALS["messages"]["sizeheader"];
|
||||
echo "</B></TD>\n<TD WIDTH=\"10%\" class=\"header\"><B>";
|
||||
echo $GLOBALS["messages"]["typeheader"];
|
||||
echo "</B></TD>\n<TD WIDTH=\"10%\" class=\"header\"><B>";
|
||||
echo $GLOBALS["messages"]["modifheader"];
|
||||
echo "</B></TD>\n";
|
||||
echo "<TD ALIGN=\"right\" WIDTH=\"6%\" class=\"header\"><B>".$GLOBALS["messages"]["actionheader"]."</B></TD></TR>\n";
|
||||
echo "<TR><TD colspan=\"5\"><HR></TD></TR>\n";
|
||||
|
||||
// make & print Table using lists
|
||||
print_table($dir, make_list($dir_list, $file_list), $allow);
|
||||
|
||||
// print number of items & total filesize
|
||||
echo "<TR><TD colspan=\"5\"><HR></TD></TR><TR>\n";
|
||||
echo "<TD WIDTH=\"70%\" class=\"header\">".$num_items." ".$GLOBALS["messages"]["miscitems"]." (";
|
||||
if(function_exists("disk_free_space")) {
|
||||
$free=parse_file_size(disk_free_space(get_abs_dir($dir)));
|
||||
} elseif(function_exists("diskfreespace")) {
|
||||
$free=parse_file_size(diskfreespace(get_abs_dir($dir)));
|
||||
} else $free="?";
|
||||
// echo "Total: ".parse_file_size(disk_total_space(get_abs_dir($dir))).", ";
|
||||
echo $GLOBALS["messages"]["miscfree"].": ".$free.")</TD>\n";
|
||||
echo "<TD WIDTH=\"30%\" class=\"header\">".parse_file_size($tot_file_size)."</TD>\n";
|
||||
for($i=0;$i<3;++$i) echo"<TD class=\"header\"></TD>";
|
||||
echo "</TR>\n<TR><TD colspan=\"5\"><HR></TD></TR></FORM></TABLE>\n";
|
||||
|
||||
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
?>
|
Reference in New Issue
Block a user