Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
JAVA
/
system
:
tree_jsTree_readDir.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /*************************************************************** * 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"); $path = getRequestVar("path"); if(isset($path)){ $path = substr($path, 2); $path = str_replace("|", "/", $path); $path = $path != "" ? $PXP_basedir . "/" . $path : $PXP_basedir; }else{ $path = $PXP_basedir; } require(dirname(__FILE__) . "/checkSharePermission.php"); require(dirname(__FILE__) . "/readFiletypes.php"); require(dirname(__FILE__) . "/getTypeKeyByExtension.php"); if(!checkSharePermission()) die($PXP_languages[$PXP_language]['accessDenied'] . " (805)"); if($PXP_user != "root"){ $PXP_user_rightsOpen_byName = Array(); $PXP_user_rightsOpen_byTypekey = Array(); $PXP_system_rightsOpen_byName = Array(); $PXP_system_rightsOpen_byTypekey = Array(); # include system right files ($PXP_dir/rights.pxrf) first if(is_dir($PXP_dir . "/rights.pxrf")){ $d = dir($PXP_dir . "/rights.pxrf"); while($file = $d->read()) if($file != "." AND $file != "..") if(!is_dir($PXP_dir . "/rights.pxrf/" . $file)){ # is there a right file for everybody ? if(file_exists($PXP_dir . "/rights.pxrf/%.pxr.php")) require($PXP_dir . "/rights.pxrf/%.pxr.php"); # are there right files for all roles of the current user ? foreach($PXP_user_roles as $role) if(file_exists($PXP_dir . "/rights.pxrf/" . $role . ".pxr.php")) require($PXP_dir . "/rights.pxrf/" . $role . ".pxr.php"); # is there a right file for the current user ? if(file_exists($PXP_dir . "/rights.pxrf/" . $PXP_user . ".pxr.php")) require($PXP_dir . "/rights.pxrf/" . $PXP_user . ".pxr.php"); } if(isset($PXP_rightsOpen_byName)) foreach($PXP_rightsOpen_byName as $member => $value) $PXP_system_rightsOpen_byName = array_merge($PXP_system_rightsOpen_byName, $PXP_rightsOpen_byName[$member]); if(isset($PXP_rightsOpen_byTypekey)) foreach($PXP_rightsOpen_byTypekey as $member => $value) $PXP_system_rightsOpen_byTypekey = array_merge($PXP_system_rightsOpen_byTypekey, $PXP_rightsOpen_byTypekey[$member]); $PXP_rightsOpen_byName_inherit = Array(); $PXP_rightsOpen_byName = Array(); $PXP_rightsOpen_byTypekey_inherit = Array(); $PXP_rightsOpen_byTypekey = Array(); $PXP_rightsOpen_byPath_invert = Array(); $PXP_rightsOpen_byPath = Array(); } } function readDirectory($dir, $reload = false){ GLOBAL $PXP_system_rightsOpen_byName, $PXP_system_rightsOpen_byTypekey; GLOBAL $byPathMembers; GLOBAL $PXP_rights_dir, $PXP_user, $PXP_user_roles; GLOBAL $PXP_user_rightsOpen_byName, $PXP_user_rightsOpen_byTypekey; GLOBAL $PXP_rightsOpen_byName, $PXP_rightsOpen_byTypekey; GLOBAL $PXP_rightsOpen_byPath_invert, $PXP_rightsOpen_byPath; GLOBAL $PXP_tree_reload, $PXP_basedir; GLOBAL $PXP_languages, $PXP_language; GLOBAL $TP_possibleActions; GLOBAl $path; if($PXP_user != "root"){ $pxrf = $dir . "/" . $PXP_rights_dir; $PXP_rightsOpen_byPath_invert = Array(); $PXP_rightsOpen_byPath = Array(); $members = Array(); $byPathMembers = Array(); if(is_dir($pxrf)){ # is there a right file for everybody ? if(file_exists($pxrf . "/%.pxr.php")){ require($pxrf . "/%.pxr.php"); array_push($members, "%"); } # are there right files for all roles of the current user ? foreach($PXP_user_roles as $role) if(file_exists($pxrf . "/" . $role . ".pxr.php")){ require($pxrf . "/" . $role . ".pxr.php"); array_push($members, $role); } # is there a right file for the current user ? if(file_exists($pxrf . "/" . $PXP_user . ".pxr.php")){ require($pxrf . "/" . $PXP_user . ".pxr.php"); array_push($members, $PXP_user); } $PXP_user_rightsOpen_byName = Array(); $PXP_user_rightsOpen_byTypekey = Array(); $byPathMembers = Array(); # merge all rights concering the current user to one array foreach($members as $member){ if(!is_array($PXP_rightsOpen_byName[$member]))continue; if(sizeof($PXP_rightsOpen_byPath[$member]) > 0) array_push($byPathMembers, $member); $PXP_user_rightsOpen_byName = array_merge($PXP_user_rightsOpen_byName, $PXP_rightsOpen_byName[$member]); $PXP_user_rightsOpen_byTypekey = array_merge($PXP_user_rightsOpen_byTypekey, $PXP_rightsOpen_byTypekey[$member]); } } $PXP_user_rightsOpen_byName = array_merge($PXP_user_rightsOpen_byName, $PXP_system_rightsOpen_byName); $PXP_user_rightsOpen_byTypekey = array_merge($PXP_user_rightsOpen_byTypekey, $PXP_system_rightsOpen_byTypekey); } $files = Array(); $filesTypes = Array(); $d = @dir($dir); if($d === FALSE){ return "[['" . $PXP_languages[$PXP_language]["accessDeniedByFilesystem"] . "', ['javascript:', '', 'permission_denied']]]"; }else{ while($file = $d->read()){ if($file != "." and $file != ".."){ if(is_dir($dir . "/" . $file)){ $extKey = strpos($file, ".") === false ? "folder" : getTypeKeyByExtension($file); if($PXP_user != "root"){ $allowOpen = true; # $extKey = strpos($file, ".") === false ? "folder" : getTypeKeyByExtension($file); if(in_array($extKey, $PXP_user_rightsOpen_byTypekey) or in_array($file, $PXP_user_rightsOpen_byName)) continue; foreach($byPathMembers as $member){ if($PXP_rightsOpen_byPath_invert[$member]){ $allowOpen = in_array($file, $PXP_rightsOpen_byPath[$member]); }else{ $allowOpen = !in_array($file, $PXP_rightsOpen_byPath[$member]); } } if(!$allowOpen) continue; } array_push($files, $file); $filesTypes[$file] = $extKey; } } } $d->close(); } if($reload) if($dir != $path) return sizeof($files) > 0 ? "[]" : ""; asort($files); if(sizeof($files) > 0){ $arrFiles = Array(); $c = "["; foreach($files as $file){ if($TP_possibleActions[$filesTypes[$file]]["open"]){ array_push($arrFiles, "['$file', ['javascript:changeDir(\"" . urlencode($dir . "/" . $file) . "\")',null,'closed_folder']," . readDirectory($dir . "/" . $file, $reload) . "]"); }else{ array_push($arrFiles, "['$file', ['javascript:var x',null,'closed_folder']," . readDirectory($dir . "/" . $file, $reload) . "]"); } } $c .= implode(",", $arrFiles) . "]"; return $c; } } ?>