<?php /** * VFM - veno file manager: ajax/get-search.php * Deep search inside sub directories * * 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.search.php'; @set_time_limit(0); $setUp = new SetUp(); $gateKeeper = new GateKeeper(); $searchkey = filter_input(INPUT_GET, 's', FILTER_SANITIZE_SPECIAL_CHARS); $final = array(); if (strlen($searchkey) > 1 && $gateKeeper->isAccessAllowed() && $setUp->getConfig('global_search') && $gateKeeper->isAllowed('viewdirs_enable')) { $search = new Search(); $startingdir = $setUp->getConfig('starting_dir'); $basepath = '../.'.$startingdir; $userpatharray = array(0 => ''); $count_total = 0; $count_filtered = 0; // check if any folder is assigned to the current user if ($gateKeeper->getUserInfo('dir') !== null) { $userpatharray = json_decode($gateKeeper->getUserInfo('dir'), true); } $dirlist = array(); $filelist = array(); foreach ($userpatharray as $scandir) { $result = $search->deepSearch($basepath.$scandir, $searchkey); if (isset($result['dirs'])) { $dirlist = array_merge($dirlist, $result['dirs']); } if (isset($result['files'])) { $filelist = array_merge($filelist, $result['files']); } $count_total += $result['count_total']; $count_filtered += $result['count_filtered']; } $final['dirlist'] = $dirlist; $final['filelist'] = $filelist; $final['count_total'] = $count_total; $final['count_filtered'] = $count_filtered; $final['no_items'] = $setUp->getString('nothing_found'); } echo json_encode($final); exit;