Files
faveo/public/filemanager/connectors/php/filemanager.php
Bhanu Slathia c710c20b9e Update v1.0.6
2016-02-16 23:22:09 +05:30

182 lines
3.8 KiB
PHP

<?php
// only for debug
// error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// ini_set('display_errors', '1');
/**
* Filemanager PHP connector
*
* filemanager.php
* use for ckeditor filemanager plug-in by Core Five - http://labs.corefive.com/Projects/FileManager/
*
* @license MIT License
* @author Riaan Los <mail (at) riaanlos (dot) nl>
* @author Simon Georget <simon (at) linea21 (dot) com>
* @copyright Authors
*/
require_once('filemanager.class.php');
// for php 5.2 compatibility
if (!function_exists('array_replace_recursive')) {
function array_replace_recursive($array, $array1) {
function recurse($array, $array1) {
foreach($array1 as $key => $value) {
// create new key in $array, if it is empty or not an array
if (!isset($array[$key]) || (isset($array[$key]) && !is_array($array[$key]))) {
$array[$key] = array();
}
// overwrite the value in the base array
if (is_array($value)) {
$value = recurse($array[$key], $value);
}
$array[$key] = $value;
}
return $array;
}
// handle the arguments, merge one by one
$args = func_get_args();
$array = $args[0];
if (!is_array($array)) {
return $array;
}
for ($i = 1; $i < count($args); $i++) {
if (is_array($args[$i])) {
$array = recurse($array, $args[$i]);
}
}
return $array;
}
}
// if user file is defined we include it, else we include the default file
(file_exists('user.config.php')) ? include_once('user.config.php') : include_once('default.config.php');
// auth() function is already defined
// and Filemanager is instantiated as $fm
$response = '';
if(!auth()) {
$fm->error($fm->lang('AUTHORIZATION_REQUIRED'));
}
if(!isset($_GET)) {
$fm->error($fm->lang('INVALID_ACTION'));
} else {
if(isset($_GET['mode']) && $_GET['mode']!='') {
switch($_GET['mode']) {
default:
$fm->error($fm->lang('MODE_ERROR'));
break;
case 'getinfo':
if($fm->getvar('path')) {
$response = $fm->getinfo();
}
break;
case 'getfolder':
if($fm->getvar('path')) {
$response = $fm->getfolder();
}
break;
case 'rename':
if($fm->getvar('old') && $fm->getvar('new')) {
$response = $fm->rename();
}
break;
case 'move':
// allow "../"
if($fm->getvar('old') && $fm->getvar('new') && $fm->getvar('root')) {
$response = $fm->move();
}
break;
case 'editfile':
if($fm->getvar('path')) {
$response = $fm->editfile();
}
break;
case 'delete':
if($fm->getvar('path')) {
$response = $fm->delete();
}
break;
case 'addfolder':
if($fm->getvar('path') && $fm->getvar('name')) {
$response = $fm->addfolder();
}
break;
case 'download':
if($fm->getvar('path')) {
$fm->download();
}
break;
case 'preview':
if($fm->getvar('path')) {
if(isset($_GET['thumbnail'])) {
$thumbnail = true;
} else {
$thumbnail = false;
}
$fm->preview($thumbnail);
}
break;
}
} else if(isset($_POST['mode']) && $_POST['mode']!='') {
switch($_POST['mode']) {
default:
$fm->error($fm->lang('MODE_ERROR'));
break;
case 'add':
if($fm->postvar('currentpath')) {
$fm->add();
}
break;
case 'replace':
if($fm->postvar('newfilepath')) {
$fm->replace();
}
break;
case 'savefile':
if($fm->postvar('content', false) && $fm->postvar('path')) {
$response = $fm->savefile();
}
break;
}
}
}
echo json_encode($response);
die();
?>