Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
Downloads
/
vfm-admin
/
ajax
:
get-filetree.php
Voltar
Back Up
Advanced Editor
Save
<?php /** * VFM - veno file manager: ajax/get-filetree.php * * Display folder tree * * PHP version >= 5.3 * * @category PHP * @package VenoFileManager * @author Nicola Franchini <support@veno.it> * @copyright 2013 Nicola Franchini * @license Exclusively sold on CodeCanyon * @link http://filemanager.veno.it/ */ if (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest') ) { exit; } require_once dirname(__DIR__).'/class/class.utils.php'; require_once dirname(__DIR__).'/class/class.setup.php'; require_once dirname(__DIR__).'/class/class.gatekeeper.php'; require_once dirname(__DIR__).'/class/class.actions.php'; $setUp = new SetUp(); $gateKeeper = new GateKeeper(); $currentdir = base64_decode(filter_input(INPUT_POST, 'currentdir', FILTER_SANITIZE_SPECIAL_CHARS)); $__root = filter_input(INPUT_POST, '__root', FILTER_SANITIZE_SPECIAL_CHARS); $action = filter_input(INPUT_POST, 'action', FILTER_SANITIZE_SPECIAL_CHARS); $checkbox = filter_input(INPUT_POST, 'checkbox', FILTER_SANITIZE_SPECIAL_CHARS); $selected = isset($_POST['selected']) ? json_decode($_POST['selected']) : array(); $starting_dir = $setUp->getConfig('starting_dir'); $href = ($action == 'breadcrumbs') ? true : false; $movelink = ($action == 'breadcrumbs') ? '' : 'movelink'; $getuserDirs = $gateKeeper->getUserInfo('dir'); $output = '<div class="wrap-foldertree"><span class="toggle-all-tree"><i class="bi bi-dash-square-fill tree-toggler"></i></span>'; $output .= '<ul class="foldertree">'; $output .= '<li class="folderoot">'; // check if any folder is assigned to the current user if ($getuserDirs !== null) { $userpatharray = json_decode($getuserDirs, true); $output .= '<i class="bi bi-folder2-open"></i>'; $output .= '<ul>'; // Natural sort order natcasesort($userpatharray); // show all available directories trees foreach ($userpatharray as $userdir) { $path = $starting_dir.$userdir.'/'; $output .= '<li>'; if ($path === $currentdir || $checkbox) { $output .= '<i class="bi bi-folder2-open"></i> <span class="search-highlight">'.$userdir.'</span>'; } else { $output .= '<a href="?dir='.urlencode(ltrim($path, './')).'" data-dest="'.urlencode($path).'" class="'.$movelink.'">'; $output .= '<i class="bi bi-folder"></i> '.$userdir; $output .= '</a>'; } $scansub = glob('../.'.$path.'*', GLOB_ONLYDIR); if (count($scansub) > 0) { $output .= '<span class="toggle-tree"><i class="bi bi-dash-square tree-toggler bg-lighter"></i></span>'; } $output .= Actions::walkDir($path, $currentdir, $href, '../.', $checkbox, $selected); $output .= '</li>'; } $output .= '</ul>'; } else { // No directory assigned, access to all folders $cleandir = substr_replace(substr($starting_dir, 2), '', -1); $cleandir = strlen($cleandir) > 0 ? $cleandir : $__root; if ($starting_dir === $currentdir || $checkbox) { $output .= '<i class="bi bi-folder2-open"></i> <span class="search-highlight">'.$cleandir.'</span>'; } else { $output .= '<a href="?dir='.urlencode(ltrim($starting_dir, './')).'" data-dest="'.urlencode($starting_dir).'" class="'.$movelink.'">'; $output .= '<i class="bi bi-folder"></i> '.$cleandir; $output .= '</a>'; } $output .= Actions::walkDir($starting_dir, $currentdir, $href, '../.', $checkbox, $selected); } $output .= '</li></ul></div>'; echo json_encode($output); exit;