File "directory.php"
Full Path: /home/analogde/www/JAVA/system/directory.php
File size: 19.13 KB
MIME-type: text/x-php
Charset: utf-8
<?php
function getmicrotime(){list($usec, $sec) = explode(" ",microtime());return ((float)$usec + (float)$sec);}$time_start = getmicrotime();
/***************************************************************
* Copyright notice
*
* (c) 2003-2004 Tobias Bender (tobias@phpXplorer.org)
* All rights reserved
*
* This script is part of the phpXplorer project. The phpXplorer project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the textfile GPL.txt distributed with these scripts.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
require(dirname(__FILE__) . "/config.php");
$currentDir = urldecode(getRequestVar("currentDir"));
$currentFile = getRequestVar("currentFile");
if($currentDir == ""){
$currentDir = $PXP_basedir;
}else{
$currentDir = str_replace("http://" . $HTTP_SERVER_VARS["HTTP_HOST"], $HTTP_SERVER_VARS["DOCUMENT_ROOT"], $currentDir);
if(is_file($currentDir)){
$currentFile = basename($currentDir);
$currentDir = dirname($currentDir);
}
}
require(dirname(__FILE__) . "/checkDirectory.php");
require(dirname(__FILE__) . "/checkPermissions.php");
require(dirname(__FILE__) . "/checkFilePermissions.php");
require(dirname(__FILE__) . "/fileSystemFunctions.php");
require(dirname(__FILE__) . "/readFiletypes.php");
require(dirname(__FILE__) . "/getTypeKeyByExtension.php");
$parentDir = dirname($currentDir);
$gridBoxId = getRequestVar("gridBoxId");
$gridIdx = getRequestVar("gridIdx");
$colId = getRequestVar("colId");
$rId = getRequestVar("rId");
$selAction = getRequestVar("selAction");
$viewMode = getRequestVar("viewMode");
$orderBy = getRequestVar("orderBy");
$orderDirection = getRequestVar("orderDirection");
$thumbnailCols = getRequestVar("thumbnailCols");
$newObject = getRequestVar("newObject");
$allowSelection = getRequestVar("allowSelection");
$selectionFilter = getRequestVar("selectionFilter");
$clipboard = getRequestVar("clipboard");
$clipboardAction = getRequestVar("clipboardAction");
$columnWidth["filename"] = getRequestVar("columnWidth_filename");
$columnWidth["bytes"] = getRequestVar("columnWidth_bytes");
$columnWidth["lastChanged"] = getRequestVar("columnWidth_lastChanged");
$columnWidth["type"] = getRequestVar("columnWidth_type");
$columnWidth["permissions"] = getRequestVar("columnWidth_permissions");
$columnWidth["owner"] = getRequestVar("columnWidth_owner");
$columnWidth["group"] = getRequestVar("columnWidth_group");
if($orderBy == "")
$orderBy = "filename";
if($orderDirection == "")
$orderDirection = "asc";
if($viewMode == "")
$viewMode = $PXP_view;
if($columnWidth["filename"] == "")$columnWidth["filename"] = "150";
if($columnWidth["bytes"] == "")$columnWidth["bytes"] = "60";
if($columnWidth["lastChanged"] == "")$columnWidth["lastChanged"] = "110";
if($columnWidth["type"] == "")$columnWidth["type"] = "150";
if($columnWidth["permissions"] == "")$columnWidth["permissions"] = "70";
if($columnWidth["owner"] == "")$columnWidth["owner"] = "60";
if($columnWidth["group"] == "")$columnWidth["group"] = "50";
$selectionFilter = $selectionFilter != "" ? explode(",", $selectionFilter) : Array();
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>phpXplorer</title>
<style type="text/css">
<!--
body{
margin:0px;
padding:0px;
}
-->
</style>
<link rel="stylesheet" type="text/css" href="<?php echo $PXP_url ?>/styles/<?php echo $PXP_style ?>/main.css"/>
<script src="<?php echo $GC_coolmenu_URL ?>/coolmenus4.js" type="text/javascript" language="JavaScript"></script>
<script src="<?php echo $GC_coolmenu_URL ?>/cm_addins.js" type="text/javascript" language="JavaScript"></script>
<script src="<?php echo $PXP_url ?>/phpXplorer.js" type="text/javascript" language="JavaScript"></script>
<script language="JavaScript" type="text/javascript">
<!--
var shareId = "<?php echo $shareId ?>"
var currentDir = "<?php echo urlencode($currentDir) ?>"
var baseDir = "<?php echo urlencode($PXP_basedir) ?>"
var systemBaseDir = "<?php echo urlencode($PXP_dir) ?>"
var visibleDir = "<?php echo str_replace($PXP_basedir, "", $currentDir) ?>"
if(visibleDir == "")
visibleDir = "/"
var parentDir = "<?php echo urlencode($parentDir) ?>"
var currentURL = "<?php echo str_replace($PXP_basedir, $PXP_baseURL, $currentDir) ?>"
var orderBy = "<?php echo $orderBy ?>"
var orderDirection = "<?php echo $orderDirection ?>"
var viewMode = "<?php echo $viewMode ?>"
var language = "<?php echo $PXP_language ?>"
var deleteWarning = "<?php echo $PXP_languages[$PXP_language]['reallyDelete'] ?>"
var cookieValues = new Array()
var oCHead = null
var altDown = false
var strgDown = false
function hdCtl(value){
<?php if($gridBoxId!="")echo " if(opener)opener.$gridBoxId.grids[$gridIdx].aCols['$colId'].hdCtl($rId,value);"; ?>
}
<?php
switch($selAction){
case "delete":
if(isset($HTTP_GET_VARS['folderSelection']))
foreach($HTTP_GET_VARS['folderSelection'] as $item){
if(!(strpos($item, "..") === FALSE))
die($PXP_languages[$PXP_language]['accessDenied'] . " (804)");
$pInfoDelete = checkFilePermissions($item);
if(!$pInfoDelete["allowOpen"] or !$pInfoDelete["allowEdit"])
die($PXP_languages[$PXP_language]["accessDenied"] . " (809)");
if(file_exists($currentDir . "/" . $item)){
rmdirRecursive($currentDir . "/" . $item);
echo "parent.frames['phpXplorerTree'].deleteNode('/|" . str_replace("/", "|", str_replace($PXP_basedir . "/", "", $currentDir . "/" . $item)) ."')\r\n";
}
}
if(isset($HTTP_GET_VARS['fileSelection']))
foreach($HTTP_GET_VARS['fileSelection'] as $item){
if(!(strpos($item, "..") === FALSE))
die($PXP_languages[$PXP_language]['accessDenied'] . " (804)");
$pInfoDelete = checkFilePermissions($item);
if(!$pInfoDelete["allowOpen"] or !$pInfoDelete["allowEdit"])
die($PXP_languages[$PXP_language]["accessDenied"] . " (809)");
if(file_exists($currentDir . "/" . $item))
pxp_unlink($currentDir . "/" . $item);
}
break;
case "paste":
if($clipboard != ""){
$fileList = explode(",", urldecode($clipboard));
foreach($fileList as $file){
if(!(strpos($file, "..") === FALSE))
die($PXP_languages[$PXP_language]['accessDenied'] . " (804)");
$pInfoCopy = checkFilePermissions(basename($file));
if(!$pInfoCopy["allowOpen"] or !$pInfoCopy["allowEdit"])
die($PXP_languages[$PXP_language]["accessDenied"] . " (809)");
copyRecursive($file, $currentDir);
if($clipboardAction == "cut"){
if(is_dir($file)){
rmdirRecursive($file);
}else{
pxp_unlink($file);
}
$clipboard = "";
$clipboardAction = "";
}
}
}
break;
}
?>
//-->
</script>
<script type="text/javascript" language="JavaScript">
<!--
eXTT = new Array()
<?php
foreach($extensionToType as $key => $value)
echo "eXTT['$key'] = '$value';";
?>
//-->
</script>
</head>
<body onLoad="init()"><!-- ooooncontextmenu="return false" onKeydown="bodyKeyDown(event)" onKeyUp="bodyKeyUp(event)" -->
<script src="<?php echo $PXP_url ?>/styles/<?php echo $PXP_style ?>/JSMenu.js" type="text/javascript" language="JavaScript"></script>
<script type="text/javascript" language="JavaScript">
<!--
oCMenu.level[1].arrow="<?php echo $PXP_url ?>/styles/<?php echo $PXP_style ?>/menu_arrow.gif"
/******************************************
Menu item creation:
myCoolMenu.makeMenu(name, parent_name, text, link, target, width, height, regImage, overImage, regClass, overClass , align, rows, nolink, onclick, onmouseover, onmouseout)
*************************************/
oCMenu.makeMenu('top0','',' <button onClick="refreshDir()" style="font-size:8px;width:40px" title="<?php echo $PXP_languages[$PXP_language]["menu.refresh"] ?>">o</button><button id="dirUpButton" onClick="dirUp()" style="font-size:8px;width:40px" title="<?php echo $PXP_languages[$PXP_language]["menu.up"] ?>">o o</button>','','',93)
oCMenu.makeMenu('top1','',' <?php echo $PXP_languages[$PXP_language]["menu.file"] ?>','','', <?php echo $PXP_languages[$PXP_language]["menu.itemWidth_file"] ?>)
oCMenu.makeMenu('sub10','top1',' <?php echo $PXP_languages[$PXP_language]["menu.upload"] ?>','javascript:uploadFile()')
oCMenu.makeMenu('sub11','top1',' <?php echo $PXP_languages[$PXP_language]["menu.get"] ?>','javascript:getFile()')
oCMenu.makeMenu('sub12','top1',' <?php echo $PXP_languages[$PXP_language]["menu.create"] ?>','')
<?php
$itemCounter=0;
asort($TP_group);
foreach($TP_group as $key => $value){
if(!$TP_possibleActions[$key]["new"])
continue;
if(in_array($key, $PXP_user_rightsOpen_byTypekey))
continue;
if(in_array($key, $PXP_user_rightsEdit_byTypekey))
continue;
echo "oCMenu.makeMenu('sub6$itemCounter','sub12','<nobr><img src=\"./filetypes/$key/icon.png\" alt=\"\" align=\"texttop\"> " . $PXP_languages[$PXP_language]['filetype.' . $key] . "</nobr>','javascript:newFile(".'"'.$key.'"'.")');";
$itemCounter++;
}
?>//<script>
// oCMenu.makeMenu('sub13','top1',' <?php echo $PXP_languages[$PXP_language]["menu.search"] ?>','javascript:search()')
oCMenu.makeMenu('sub14','top1',' <?php echo $PXP_languages[$PXP_language]["menu.openDirectory"] ?>','javascript:openFolder()');
oCMenu.makeMenu('sub15','top1',' <?php echo $PXP_languages[$PXP_language]["menu.exit"] ?>','javascript:parent.frames["phpXplorerHead"].exit()');
oCMenu.makeMenu('top2','',' <?php echo $PXP_languages[$PXP_language]["menu.edit"] ?>','','', <?php echo $PXP_languages[$PXP_language]["menu.itemWidth_edit"] ?>)
oCMenu.makeMenu('sub21','top2',' <?php echo $PXP_languages[$PXP_language]["menu.selection"] ?>','')
oCMenu.makeMenu('sub80','sub21',' <?php echo $PXP_languages[$PXP_language]["menu.all"] ?>','javascript:selectAll()')
oCMenu.makeMenu('sub81','sub21',' <?php echo $PXP_languages[$PXP_language]["menu.invert"] ?>','javascript:invertSelection()')
oCMenu.makeMenu('sub82','sub21',' <?php echo $PXP_languages[$PXP_language]["menu.clear"] ?>','javascript:clearSelection()')
oCMenu.makeMenu('sub22','top2','','',0,0,2)
oCMenu.makeMenu('sub23','top2',' <?php echo $PXP_languages[$PXP_language]["menu.cut"] ?>','javascript:cut()')
oCMenu.makeMenu('sub24','top2',' <?php echo $PXP_languages[$PXP_language]["menu.copy"] ?>','javascript:copy()')
oCMenu.makeMenu('sub25','top2',' <?php echo $PXP_languages[$PXP_language]["menu.paste"] ?>','javascript:paste()')
oCMenu.makeMenu('sub26','top2','','',0,0,2)
oCMenu.makeMenu('sub27','top2',' <?php echo $PXP_languages[$PXP_language]["menu.download"] ?>','javascript:downloadSelection()')
oCMenu.makeMenu('sub28','top2',' <?php echo $PXP_languages[$PXP_language]["menu.open"] ?>','javascript:openSelection()')
oCMenu.makeMenu('sub29','top2',' <?php echo $PXP_languages[$PXP_language]["menu.edit"] ?>','javascript:editSelection()')
oCMenu.makeMenu('sub210','top2',' <?php echo $PXP_languages[$PXP_language]["menu.delete"] ?>','javascript:deleteSelection()')
oCMenu.makeMenu('sub211','top2','','',0,0,2)
oCMenu.makeMenu('sub212','top2',' <?php echo $PXP_languages[$PXP_language]["menu.clipboard"] ?>','')
oCMenu.makeMenu('sub71','sub212',' <?php echo $PXP_languages[$PXP_language]["menu.show"] ?>','javascript:showClipboard()')
oCMenu.makeMenu('top3','',' <?php echo $PXP_languages[$PXP_language]["menu.view"] ?>','','', <?php echo $PXP_languages[$PXP_language]["menu.itemWidth_view"] ?>)
var iS=new Array()
iS['details']=""
iS['thumbnails']=""
iS[viewMode]=' class="selectedMenuItem"'
oCMenu.makeMenu('sub30','top3',' <span'+iS['details']+'><?php echo $PXP_languages[$PXP_language]["menu.details"] ?></span>','javascript:document.frm1.viewMode.value="details";document.frm1.submit()')
oCMenu.makeMenu('sub31','top3',' <span'+iS['thumbnails']+'><?php echo $PXP_languages[$PXP_language]["menu.thumbnails"] ?></span>','javascript:document.frm1.viewMode.value="thumbnails";if(parent.frames["basefrm"])document.frm1.thumbnailCols.value=Math.round((((document.all)?parent.frames["basefrm"].document.body.offsetWidth:parent.frames["basefrm"].innerWidth)/140)-0.455555555);document.frm1.submit()')
// oCMenu.makeMenu('sub32','top3',' <span'+iS['details']+'><?php echo $PXP_languages[$PXP_language]["menu.details"] ?></span>','javascript:document.frm1.viewMode.value="details";document.frm1.submit()')
oCMenu.makeMenu('top4','',' <?php echo $PXP_languages[$PXP_language]["menu.tree"] ?>','','', <?php echo $PXP_languages[$PXP_language]["menu.itemWidth_tree"] ?>)
oCMenu.makeMenu('sub41','top4',' <?php echo $PXP_languages[$PXP_language]["menu.refresh"] ?>','javascript:parent.frames["phpXplorerTree"].location.reload()')
oCMenu.makeMenu('sub42','top4',' <?php echo $PXP_languages[$PXP_language]["menu.expandAll"] ?>','javascript:if(parent.frames["phpXplorerTree"].expandAll)parent.frames["phpXplorerTree"].expandAll()')
oCMenu.makeMenu('sub43','top4',' <?php echo $PXP_languages[$PXP_language]["menu.cancelExpandAll"] ?>','javascript:if(parent.frames["phpXplorerTree"].cancelExpandAll)parent.frames["phpXplorerTree"].cancelExpandAll()')
oCMenu.makeMenu('sub44','top4',' <?php echo $PXP_languages[$PXP_language]["menu.collapseAll"] ?>','javascript:if(parent.frames["phpXplorerTree"].closeAll)parent.frames["phpXplorerTree"].closeAll()')
<?php
if($PXP_user == "root" or in_array("administrators", $PXP_user_roles)){
echo "oCMenu.makeMenu('top5','',' " . $PXP_languages[$PXP_language]["menu.administration"] . "','','', " . $PXP_languages[$PXP_language]["menu.itemWidth_administration"] . ")\n";
echo "oCMenu.makeMenu('sub51','top5',' " . $PXP_languages[$PXP_language]["shares"] . "','javascript:adminShares()')\n";
echo "oCMenu.makeMenu('sub52','top5',' " . $PXP_languages[$PXP_language]["menu.users"] . "','javascript:adminUsers()')\n";
echo "oCMenu.makeMenu('sub53','top5',' " . $PXP_languages[$PXP_language]["roles"] . "','javascript:adminRoles()')\n";
echo "oCMenu.makeMenu('sub54','top5',' " . $PXP_languages[$PXP_language]["menu.systemRights"] . "','javascript:systemRights()')\n";
echo "oCMenu.makeMenu('sub55','top5',' " . $PXP_languages[$PXP_language]["menu.editLanguagefile"] . "','javascript:createLanguagefile()')\n";
echo "oCMenu.makeMenu('sub56','top5',' PHP Info','javascript:phpInfo()')\n";
}
?>//javascript
oCMenu.makeMenu('top9','',' phpXplorer','','', <?php echo $PXP_languages[$PXP_language]["menu.itemWidth_phpxplorer"] ?>)
oCMenu.makeMenu('sub91','top9',' <?php echo $PXP_languages[$PXP_language]["menu.info"] ?>','javascript:showInfo()')
oCMenu.makeMenu('sub92','top9',' <?php echo $PXP_languages[$PXP_language]["menu.donate"] ?>','javascript:donate()')
oCMenu.makeMenu('sub93','top9',' <?php echo $PXP_languages[$PXP_language]["menu.update"] ?>','javascript:update()')
//Leave this line - it constructs the menu
oCMenu.construct()
//-->
</script>
<form method="get" action="./directory.php" name="frm1">
<input type="hidden" name="currentDir" value="<?php echo urlencode($currentDir) ?>">
<input type="hidden" name="currentFile" value="<?php echo $currentFile ?>">
<input type="hidden" name="shareId" value="<?php echo $shareId ?>">
<input type="hidden" name="viewMode" value="<?php echo $viewMode ?>">
<input type="hidden" name="orderBy" value="<?php echo $orderBy ?>">
<input type="hidden" name="orderDirection" value="<?php echo $orderDirection ?>">
<input type="hidden" name="thumbnailCols" value="<?php echo $thumbnailCols ?>">
<input type="hidden" name="allowSelection" value="<?php echo $allowSelection ?>">
<input type="hidden" name="selectionFilter" value="<?php echo implode(',', $selectionFilter) ?>">
<input type="hidden" name="clipboard" value="<?php echo $clipboard ?>">
<input type="hidden" name="clipboardAction" value="<?php echo $clipboardAction ?>">
<input type="hidden" name="gridBoxId" value="<?php echo $gridBoxId ?>">
<input type="hidden" name="gridIdx" value="<?php echo $gridIdx ?>">
<input type="hidden" name="colId" value="<?php echo $colId ?>">
<input type="hidden" name="rId" value="<?php echo $rId ?>">
<input type="hidden" name="columnWidth_filename" value="<?php echo $columnWidth['filename'] ?>">
<input type="hidden" name="columnWidth_bytes" value="<?php echo $columnWidth['bytes'] ?>">
<input type="hidden" name="columnWidth_lastChanged" value="<?php echo $columnWidth['lastChanged'] ?>">
<input type="hidden" name="columnWidth_type" value="<?php echo $columnWidth['type'] ?>">
<input type="hidden" name="columnWidth_permissions" value="<?php echo $columnWidth['permissions'] ?>">
<input type="hidden" name="columnWidth_owner" value="<?php echo $columnWidth['owner'] ?>">
<input type="hidden" name="columnWidth_group" value="<?php echo $columnWidth['group'] ?>">
<input type="hidden" name="selAction">
<div style="height:26px"> </div>
<?php
$arrFile = Array();
$arrFolder = Array();
$d = @dir($currentDir);
if($d === FALSE){
$error = $PXP_languages[$PXP_language]['accessDeniedByFilesystem'];
}else{
if($orderBy == "filename"){
while($file = $d->read()){
if($file != "." AND $file != ".."){
if(is_dir($currentDir . "/" . $file)){
array_push($arrFolder, $file);
}else{
array_push($arrFile, $file);
}
}
}
natsort($arrFile);
natsort($arrFolder);
}else{
while($file = $d->read()){
if($file != "." AND $file != ".."){
$bIsDir = is_dir($currentDir . "/" . $file);
switch($orderBy){
case "bytes":
if($bIsDir){
$orderKey = $file;
}else{
$orderKey = filesize($currentDir . "/" . $file);
}
break;
case "changed":
$orderKey = filemtime($currentDir . "/" . $file);
break;
case "type":
if($bIsDir){
$orderKey = 0;
}else{
$extKey = getTypeKeyByExtension($file);
$orderKey = $PXP_languages[$PXP_language]["filetype." . $extKey];
}
break;
case "permissions":
$orderKey = getPermissions(fileperms($currentDir . "/" . $file));
break;
case "owner":
$orderKey = getUnixUserName($currentDir . "/" . $file);
break;
case "group":
$orderKey = getUnixGroupName($currentDir . "/" . $file);
break;
}
if($bIsDir){
$arrFolder[$file] = $orderKey;
}else{
$arrFile[$file] = $orderKey;
}
}
}
natsort($arrFile);
natsort($arrFolder);
$arrFolder = array_keys($arrFolder);
$arrFile = array_keys($arrFile);
}
if($orderDirection == "desc"){
$arrFile = array_reverse($arrFile);
$arrFolder = array_reverse($arrFolder);
}
$d->close();
}
require(dirname(__FILE__) . "/views/$viewMode/index.php");
if(isset($error))
echo '<br><div class="error"> ' . $error . '</div>';
?>
</form>
</body>
</html>
<?php
$time_end = getmicrotime();$time = $time_end - $time_start;echo $time;
?>