<?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; ?>