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','','&nbsp;<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&nbsp;o</button>','','',93)

oCMenu.makeMenu('top1','','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.file"] ?>','','', <?php echo $PXP_languages[$PXP_language]["menu.itemWidth_file"] ?>)
	oCMenu.makeMenu('sub10','top1','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.upload"] ?>','javascript:uploadFile()')
	oCMenu.makeMenu('sub11','top1','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.get"] ?>','javascript:getFile()')
	oCMenu.makeMenu('sub12','top1','&nbsp;<?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\">&nbsp;&nbsp;" . $PXP_languages[$PXP_language]['filetype.' . $key] . "</nobr>','javascript:newFile(".'"'.$key.'"'.")');";
			
			$itemCounter++;
   	}
	?>//<script>
//	oCMenu.makeMenu('sub13','top1','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.search"] ?>','javascript:search()')
	oCMenu.makeMenu('sub14','top1','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.openDirectory"] ?>','javascript:openFolder()');
	oCMenu.makeMenu('sub15','top1','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.exit"] ?>','javascript:parent.frames["phpXplorerHead"].exit()');
	

oCMenu.makeMenu('top2','','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.edit"] ?>','','', <?php echo $PXP_languages[$PXP_language]["menu.itemWidth_edit"] ?>)
	oCMenu.makeMenu('sub21','top2','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.selection"] ?>','')
		oCMenu.makeMenu('sub80','sub21','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.all"] ?>','javascript:selectAll()')
		oCMenu.makeMenu('sub81','sub21','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.invert"] ?>','javascript:invertSelection()')
		oCMenu.makeMenu('sub82','sub21','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.clear"] ?>','javascript:clearSelection()')
		
  oCMenu.makeMenu('sub22','top2','','',0,0,2)
	oCMenu.makeMenu('sub23','top2','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.cut"] ?>','javascript:cut()')
	oCMenu.makeMenu('sub24','top2','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.copy"] ?>','javascript:copy()')
	oCMenu.makeMenu('sub25','top2','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.paste"] ?>','javascript:paste()')
	oCMenu.makeMenu('sub26','top2','','',0,0,2)
	oCMenu.makeMenu('sub27','top2','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.download"] ?>','javascript:downloadSelection()')
	oCMenu.makeMenu('sub28','top2','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.open"] ?>','javascript:openSelection()')
	oCMenu.makeMenu('sub29','top2','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.edit"] ?>','javascript:editSelection()')
	oCMenu.makeMenu('sub210','top2','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.delete"] ?>','javascript:deleteSelection()')
	oCMenu.makeMenu('sub211','top2','','',0,0,2)
	oCMenu.makeMenu('sub212','top2','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.clipboard"] ?>','')
		oCMenu.makeMenu('sub71','sub212','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.show"] ?>','javascript:showClipboard()')

oCMenu.makeMenu('top3','','&nbsp;<?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','&nbsp;<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','&nbsp;<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','&nbsp;<span'+iS['details']+'><?php echo $PXP_languages[$PXP_language]["menu.details"] ?></span>','javascript:document.frm1.viewMode.value="details";document.frm1.submit()')
	
oCMenu.makeMenu('top4','','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.tree"] ?>','','', <?php echo $PXP_languages[$PXP_language]["menu.itemWidth_tree"] ?>)
	oCMenu.makeMenu('sub41','top4','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.refresh"] ?>','javascript:parent.frames["phpXplorerTree"].location.reload()')
	oCMenu.makeMenu('sub42','top4','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.expandAll"] ?>','javascript:if(parent.frames["phpXplorerTree"].expandAll)parent.frames["phpXplorerTree"].expandAll()')
	oCMenu.makeMenu('sub43','top4','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.cancelExpandAll"] ?>','javascript:if(parent.frames["phpXplorerTree"].cancelExpandAll)parent.frames["phpXplorerTree"].cancelExpandAll()')
	oCMenu.makeMenu('sub44','top4','&nbsp;<?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','','&nbsp;" . $PXP_languages[$PXP_language]["menu.administration"] . "','','', " . $PXP_languages[$PXP_language]["menu.itemWidth_administration"] . ")\n";
		echo "oCMenu.makeMenu('sub51','top5','&nbsp;" . $PXP_languages[$PXP_language]["shares"] . "','javascript:adminShares()')\n";
		echo "oCMenu.makeMenu('sub52','top5','&nbsp;" . $PXP_languages[$PXP_language]["menu.users"] . "','javascript:adminUsers()')\n";
		echo "oCMenu.makeMenu('sub53','top5','&nbsp;" . $PXP_languages[$PXP_language]["roles"] . "','javascript:adminRoles()')\n";
		echo "oCMenu.makeMenu('sub54','top5','&nbsp;" . $PXP_languages[$PXP_language]["menu.systemRights"] . "','javascript:systemRights()')\n";
		echo "oCMenu.makeMenu('sub55','top5','&nbsp;" . $PXP_languages[$PXP_language]["menu.editLanguagefile"] . "','javascript:createLanguagefile()')\n";
		echo "oCMenu.makeMenu('sub56','top5','&nbsp;PHP Info','javascript:phpInfo()')\n";
	}
?>//javascript

oCMenu.makeMenu('top9','','&nbsp;phpXplorer','','', <?php echo $PXP_languages[$PXP_language]["menu.itemWidth_phpxplorer"] ?>)
	oCMenu.makeMenu('sub91','top9','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.info"] ?>','javascript:showInfo()')
	oCMenu.makeMenu('sub92','top9','&nbsp;<?php echo $PXP_languages[$PXP_language]["menu.donate"] ?>','javascript:donate()')
	oCMenu.makeMenu('sub93','top9','&nbsp;<?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">&nbsp;</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">&nbsp;' . $error . '</div>';

?>
</form>
</body>
</html>
<?php
  $time_end = getmicrotime();$time = $time_end - $time_start;echo $time;
?>