182 lines
3.8 KiB
PHP
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();
|
|
?>
|