<?php
/**
 * VFM - veno file manager: ajax/zip.php
 *
 * Generate zip archive
 *
 * 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;
}
@set_time_limit(0);

require_once dirname(__DIR__).'/class/class.gatekeeper.php';
require_once dirname(__DIR__).'/class/class.zipper.php';
require_once dirname(__DIR__).'/class/class.setup.php';
require_once dirname(__DIR__).'/class/class.utils.php';

$setUp = new SetUp();
$zipper = new Zipper();

$getfiles = is_array($_POST['files']) ? filter_var_array($_POST['files'], FILTER_SANITIZE_SPECIAL_CHARS) : false;
$getfolder = filter_input(INPUT_POST, 'folder', FILTER_SANITIZE_SPECIAL_CHARS);
$time = filter_input(INPUT_POST, "time", FILTER_SANITIZE_SPECIAL_CHARS);
$hash = filter_input(INPUT_POST, 'dash', FILTER_SANITIZE_SPECIAL_CHARS);
$onetime = filter_input(INPUT_POST, 'onetime', FILTER_SANITIZE_SPECIAL_CHARS);
// $getfiles = is_array($_POST['files']) ? filter_var_array($_POST['files']) : false;
// $getfolder = htmlspecialchars($_POST['folder']);
// $time = htmlspecialchars($_POST['time']);
// $hash = htmlspecialchars($_POST['dash']);
// $onetime = htmlspecialchars($_POST['onetime']);

$alt = $setUp->getConfig('salt');
$altone = $setUp->getConfig('session_name');

$dozip = false;
$folder = false;
$files = false;

if (!$hash) {
    echo json_encode(array('error'=>$setUp->getString('access_denied')));
    exit;
}

if ($getfolder && $hash === md5($alt.$getfolder.$altone)) {
    $folder = base64_decode($getfolder);
    $filename = $folder;
    $dozip = true;
}

if ($getfiles && $hash === md5($alt.$time)) {
    $files = $getfiles;
    $dozip = true;
}

if ($dozip === true) {
    $zippedfile = $zipper->prepareZip($files, $folder);
    if ($onetime && $onetime !== '0') {
        $sharefile = dirname(__DIR__). '/_content/share/'.$onetime.'.json';
        if (file_exists($sharefile)) {
            unlink($sharefile);
        }
    }
    echo json_encode($zippedfile);
    exit;
}
echo json_encode(array('error'=>$setUp->getString('nothing_found')));
exit;
