ZwiiCMS/core/vendor/filemanager/dialog.php

1364 lines
68 KiB
PHP
Raw Normal View History

2018-04-02 08:29:19 +02:00
<?php
$time = time();
$config = include 'config/config.php';
if (USE_ACCESS_KEYS == true){
2019-01-11 09:59:01 +01:00
if (!isset($_GET['akey'], $config['access_keys']) || empty($config['access_keys'])){
2018-04-02 08:29:19 +02:00
die('Access Denied!');
}
$_GET['akey'] = strip_tags(preg_replace("/[^a-zA-Z0-9\._-]/", '', $_GET['akey']));
2018-04-02 08:29:19 +02:00
2019-01-11 09:59:01 +01:00
if (!in_array($_GET['akey'], $config['access_keys'])){
2018-04-02 08:29:19 +02:00
die('Access Denied!');
}
}
$_SESSION['RF']["verify"] = "RESPONSIVEfilemanager";
if (isset($_POST['submit'])) {
include 'upload.php';
} else {
$available_languages = include 'lang/languages.php';
list($preferred_language) = array_values(array_filter(array(
isset($_GET['lang']) ? $_GET['lang'] : null,
isset($_SESSION['RF']['language']) ? $_SESSION['RF']['language'] : null,
$config['default_language']
)));
if (array_key_exists($preferred_language, $available_languages)) {
$_SESSION['RF']['language'] = $preferred_language;
} else {
$_SESSION['RF']['language'] = $config['default_language'];
}
2018-04-02 08:29:19 +02:00
}
2018-04-02 08:29:19 +02:00
include 'include/utils.php';
$subdir_path = '';
2018-04-02 08:29:19 +02:00
if (isset($_GET['fldr']) && !empty($_GET['fldr'])) {
$subdir_path = rawurldecode(trim(strip_tags($_GET['fldr']), "/"));
} elseif (isset($_SESSION['RF']['fldr']) && !empty($_SESSION['RF']['fldr'])) {
$subdir_path = rawurldecode(trim(strip_tags($_SESSION['RF']['fldr']), "/"));
2018-04-02 08:29:19 +02:00
}
2019-01-11 09:59:01 +01:00
if (checkRelativePath($subdir_path)) {
$subdir = strip_tags($subdir_path) . "/";
$_SESSION['RF']['fldr'] = $subdir_path;
$_SESSION['RF']["filter"] = '';
} else {
$subdir = '';
2018-04-02 08:29:19 +02:00
}
if ($subdir == "") {
if (!empty($_COOKIE['last_position']) && strpos($_COOKIE['last_position'], '.') === FALSE) {
$subdir = trim($_COOKIE['last_position']);
}
2018-04-02 08:29:19 +02:00
}
//remember last position
setcookie('last_position', $subdir, time() + (86400 * 7));
2018-04-02 08:29:19 +02:00
if ($subdir == "/") { $subdir = ""; }
// If hidden folders are specified
if (count($config['hidden_folders'])) {
// If hidden folder appears in the path specified in URL parameter "fldr"
$dirs = explode('/', $subdir);
foreach ($dirs as $dir) {
if ($dir !== '' && in_array($dir, $config['hidden_folders'])) {
// Ignore the path
$subdir = "";
break;
}
}
2018-04-02 08:29:19 +02:00
}
2019-01-11 09:59:01 +01:00
if ($config['show_total_size']) {
list($sizeCurrentFolder, $fileCurrentNum, $foldersCurrentCount) = folder_info($config['current_path'], false);
2018-04-02 08:29:19 +02:00
}
2018-04-02 08:29:19 +02:00
/***
* SUB-DIR CODE
***/
if (!isset($_SESSION['RF']["subfolder"])) {
$_SESSION['RF']["subfolder"] = '';
2018-04-02 08:29:19 +02:00
}
$rfm_subfolder = '';
if (!empty($_SESSION['RF']["subfolder"])
&& strpos($_SESSION['RF']["subfolder"], "/") !== 0
&& strpos($_SESSION['RF']["subfolder"], '.') === FALSE
) {
$rfm_subfolder = $_SESSION['RF']['subfolder'];
2018-04-02 08:29:19 +02:00
}
if ($rfm_subfolder != "" && $rfm_subfolder[strlen($rfm_subfolder) - 1] != "/") {
$rfm_subfolder .= "/";
}
2018-04-02 08:29:19 +02:00
$ftp = ftp_con($config);
2018-04-02 08:29:19 +02:00
if (($ftp && !$ftp->isDir($config['ftp_base_folder'] . $config['upload_dir'] . $rfm_subfolder . $subdir)) || (!$ftp && !file_exists($config['current_path'] . $rfm_subfolder . $subdir))) {
$subdir = '';
$rfm_subfolder = "";
2018-04-02 08:29:19 +02:00
}
2019-01-11 09:59:01 +01:00
$cur_dir = $config['upload_dir'].$rfm_subfolder.$subdir;
$cur_dir_thumb = $config['thumbs_upload_dir'].$rfm_subfolder.$subdir;
$thumbs_path = $config['thumbs_base_path'].$rfm_subfolder.$subdir;
2018-04-02 08:29:19 +02:00
$parent = $rfm_subfolder.$subdir;
if ($ftp) {
$cur_dir = $config['ftp_base_folder'] . $cur_dir;
$cur_dir_thumb = $config['ftp_base_folder'] . $cur_dir_thumb;
$thumbs_path = str_replace(array('/..', '..'), '', $cur_dir_thumb);
$parent = $config['ftp_base_folder'] . $parent;
2018-04-02 08:29:19 +02:00
}
if (!$ftp) {
$cycle = TRUE;
$max_cycles = 50;
$i = 0;
while ($cycle && $i < $max_cycles) {
$i++;
if ($parent == "./") {
$parent = "";
}
if (file_exists($config['current_path'] . $parent . "config.php")) {
$configTemp = include $config['current_path'] . $parent . 'config.php';
$config = array_merge($config, $configTemp);
$cycle = FALSE;
}
if ($parent == "") {
$cycle = FALSE;
} else {
$parent = fix_dirname($parent) . "/";
}
}
2018-04-02 08:29:19 +02:00
if (!is_dir($thumbs_path)) {
create_folder(FALSE, $thumbs_path, $ftp, $config);
}
2018-11-13 18:33:22 +01:00
}
$multiple = null;
if (isset($_GET['multiple'])) {
if ($_GET['multiple'] == 1) {
$multiple = 1;
$config['multiple_selection'] = true;
$config['multiple_selection_action_button'] = true;
} elseif ($_GET['multiple'] == 0) {
$multiple = 0;
$config['multiple_selection'] = false;
$config['multiple_selection_action_button'] = false;
}
2018-04-02 08:29:19 +02:00
}
if (isset($_GET['callback'])) {
$callback = strip_tags($_GET['callback']);
$_SESSION['RF']["callback"] = $callback;
} else {
$callback = 0;
if (isset($_SESSION['RF']["callback"])) {
2018-04-02 08:29:19 +02:00
$callback = $_SESSION['RF']["callback"];
}
}
$popup = isset($_GET['popup']) ? strip_tags($_GET['popup']) : 0;
2018-04-02 08:29:19 +02:00
//Sanitize popup
$popup = !!$popup;
2018-04-02 08:29:19 +02:00
$crossdomain = isset($_GET['crossdomain']) ? strip_tags($_GET['crossdomain']) : 0;
2018-04-02 08:29:19 +02:00
//Sanitize crossdomain
$crossdomain=!!$crossdomain;
//view type
if(!isset($_SESSION['RF']["view_type"]))
{
$view = $config['default_view'];
$_SESSION['RF']["view_type"] = $view;
2018-04-02 08:29:19 +02:00
}
if (isset($_GET['view']))
{
$view = fix_get_params($_GET['view']);
$_SESSION['RF']["view_type"] = $view;
2018-04-02 08:29:19 +02:00
}
$view = $_SESSION['RF']["view_type"];
//filter
$filter = "";
if(isset($_SESSION['RF']["filter"]))
{
$filter = $_SESSION['RF']["filter"];
2018-04-02 08:29:19 +02:00
}
if(isset($_GET["filter"]))
{
$filter = fix_get_params($_GET["filter"]);
2018-04-02 08:29:19 +02:00
}
if (!isset($_SESSION['RF']['sort_by']))
{
$_SESSION['RF']['sort_by'] = 'name';
2018-04-02 08:29:19 +02:00
}
if (isset($_GET["sort_by"])) {
$sort_by = $_SESSION['RF']['sort_by'] = fix_get_params($_GET["sort_by"]);
} else {
$sort_by = $_SESSION['RF']['sort_by'];
}
2018-04-02 08:29:19 +02:00
if (!isset($_SESSION['RF']['descending'])) {
$_SESSION['RF']['descending'] = TRUE;
2018-04-02 08:29:19 +02:00
}
if (isset($_GET["descending"])) {
$descending = $_SESSION['RF']['descending'] = fix_get_params($_GET["descending"]) == 1;
2018-04-02 08:29:19 +02:00
} else {
$descending = $_SESSION['RF']['descending'];
2018-04-02 08:29:19 +02:00
}
$boolarray = array(false => 'false', true => 'true');
2018-04-02 08:29:19 +02:00
$return_relative_url = isset($_GET['relative_url']) && $_GET['relative_url'] == "1" ? true : false;
if (!isset($_GET['type'])) {
$_GET['type'] = 0;
2018-04-02 08:29:19 +02:00
}
$extensions = null;
if (isset($_GET['extensions'])) {
$extensions = json_decode(urldecode($_GET['extensions']));
$ext_tmp = array();
foreach ($extensions as $extension) {
$extension = fix_strtolower($extension);
if (check_file_extension($extension, $config)) {
$ext_tmp[] = $extension;
}
}
if ($extensions) {
$ext = $ext_tmp;
$config['ext'] = $ext_tmp;
$config['show_filter_buttons'] = false;
}
2018-04-02 08:29:19 +02:00
}
if (isset($_GET['editor'])) {
$editor = strip_tags($_GET['editor']);
2018-04-02 08:29:19 +02:00
} else {
$editor = $_GET['type'] == 0 ? null : 'tinymce';
2018-04-02 08:29:19 +02:00
}
2018-11-13 18:33:22 +01:00
$field_id = isset($_GET['field_id']) ? fix_get_params($_GET['field_id']) : null;
2018-04-02 08:29:19 +02:00
$type_param = fix_get_params($_GET['type']);
2018-11-13 18:33:22 +01:00
$apply = null;
if ($multiple) {
$apply = 'apply_multiple';
}
if ($type_param == 1) {
$apply_type = 'apply_img';
} elseif ($type_param == 2) {
$apply_type = 'apply_link';
} elseif ($type_param == 0 && !$field_id) {
$apply_type = 'apply_none';
} elseif ($type_param == 3) {
$apply_type = 'apply_video';
} else {
$apply_type = 'apply';
2018-11-13 18:33:22 +01:00
}
if(!$apply){
$apply = $apply_type;
2018-11-13 18:33:22 +01:00
}
2018-04-02 08:29:19 +02:00
$get_params = array(
'editor' => $editor,
'type' => $type_param,
'lang' => $lang,
'popup' => $popup,
'crossdomain' => $crossdomain,
'extensions' => ($extensions) ? urlencode(json_encode($extensions)) : null ,
'field_id' => $field_id,
'multiple' => $multiple,
'relative_url' => $return_relative_url,
'akey' => (isset($_GET['akey']) && $_GET['akey'] != '' ? $_GET['akey'] : 'key')
2018-04-02 08:29:19 +02:00
);
if (isset($_GET['CKEditorFuncNum'])) {
$get_params['CKEditorFuncNum'] = $_GET['CKEditorFuncNum'];
$get_params['CKEditor'] = (isset($_GET['CKEditor']) ? $_GET['CKEditor'] : '');
2018-04-02 08:29:19 +02:00
}
$get_params['fldr'] ='';
$get_params = http_build_query($get_params);
?>
<!DOCTYPE html>
2019-01-11 09:59:01 +01:00
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="robots" content="noindex,nofollow">
<title>Responsive FileManager</title>
<link rel="shortcut icon" href="img/ico/favicon.ico">
<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
<link rel="stylesheet" href="css/jquery.fileupload.css">
<link rel="stylesheet" href="css/jquery.fileupload-ui.css">
<!-- CSS adjustments for browsers with JavaScript disabled -->
<noscript><link rel="stylesheet" href="css/jquery.fileupload-noscript.css"></noscript>
<noscript><link rel="stylesheet" href="css/jquery.fileupload-ui-noscript.css"></noscript>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jplayer/2.7.1/skin/blue.monday/jplayer.blue.monday.min.css" />
<link rel="stylesheet" href="https://uicdn.toast.com/tui-image-editor/latest/tui-image-editor.css">
<link href="css/style.css?v=<?php echo $version; ?>" rel="stylesheet" type="text/css" />
<!--[if lt IE 8]>
<style>
.img-container span, .img-container-mini span {
display: inline-block;
height: 100%;
}
</style>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
<script src="js/plugins.js?v=<?php echo $version; ?>"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jplayer/2.9.2/jplayer/jquery.jplayer.min.js"></script>
<link type="text/css" href="https://uicdn.toast.com/tui-color-picker/v2.2.0/tui-color-picker.css" rel="stylesheet">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.7/fabric.js"></script>
<script type="text/javascript" src="https://uicdn.toast.com/tui.code-snippet/v1.5.0/tui-code-snippet.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script>
<script type="text/javascript" src="https://uicdn.toast.com/tui-color-picker/v2.2.0/tui-color-picker.js"></script>
<script src="https://uicdn.toast.com/tui-image-editor/latest/tui-image-editor.js"></script>
<script src="js/modernizr.custom.js"></script>
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.6.2/html5shiv.js"></script>
<![endif]-->
<script type="text/javascript">
var ext_img=new Array('<?php echo implode("','", $config['ext_img'])?>');
var image_editor= <?php echo $config['tui_active']?"true":"false";?>;
</script>
<script src="js/include.js?v=<?php echo $version; ?>"></script>
2018-04-02 08:29:19 +02:00
</head>
<body>
<!-- The Templates plugin is included to render the upload/download listings -->
<script src="//blueimp.github.io/JavaScript-Templates/js/tmpl.min.js"></script>
<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
2020-06-02 14:13:24 +02:00
<script src="//cdnjs.cloudflare.com/ajax/libs/blueimp-load-image/2.18.0/load-image.all.min.js"></script>
<!-- The Canvas to Blob plugin is included for image resizing functionality -->
<script src="//blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
<script src="js/jquery.iframe-transport.js"></script>
<!-- The basic File Upload plugin -->
<script src="js/jquery.fileupload.js"></script>
<!-- The File Upload processing plugin -->
<script src="js/jquery.fileupload-process.js"></script>
<!-- The File Upload image preview & resize plugin -->
<script src="js/jquery.fileupload-image.js"></script>
<!-- The File Upload audio preview plugin -->
<script src="js/jquery.fileupload-audio.js"></script>
<!-- The File Upload video preview plugin -->
<script src="js/jquery.fileupload-video.js"></script>
<!-- The File Upload validation plugin -->
<script src="js/jquery.fileupload-validate.js"></script>
<!-- The File Upload user interface plugin -->
<script src="js/jquery.fileupload-ui.js"></script>
<input type="hidden" id="ftp" value="<?php echo !!$ftp; ?>" />
<input type="hidden" id="popup" value="<?php echo $popup;?>" />
<input type="hidden" id="callback" value="<?php echo $callback; ?>" />
<input type="hidden" id="crossdomain" value="<?php echo $crossdomain;?>" />
<input type="hidden" id="editor" value="<?php echo $editor;?>" />
<input type="hidden" id="view" value="<?php echo $view;?>" />
<input type="hidden" id="subdir" value="<?php echo $subdir;?>" />
<input type="hidden" id="field_id" value="<?php echo $field_id;?>" />
<input type="hidden" id="multiple" value="<?php echo $multiple;?>" />
<input type="hidden" id="type_param" value="<?php echo $type_param;?>" />
<input type="hidden" id="upload_dir" value="<?php echo $config['upload_dir'];?>" />
<input type="hidden" id="cur_dir" value="<?php echo $cur_dir;?>" />
<input type="hidden" id="cur_dir_thumb" value="<?php echo $cur_dir_thumb;?>" />
<input type="hidden" id="insert_folder_name" value="<?php echo trans('Insert_Folder_Name');?>" />
<input type="hidden" id="rename_existing_folder" value="<?php echo trans('Rename_existing_folder');?>" />
<input type="hidden" id="new_folder" value="<?php echo trans('New_Folder');?>" />
<input type="hidden" id="ok" value="<?php echo trans('OK');?>" />
<input type="hidden" id="cancel" value="<?php echo trans('Cancel');?>" />
<input type="hidden" id="rename" value="<?php echo trans('Rename');?>" />
<input type="hidden" id="lang_duplicate" value="<?php echo trans('Duplicate');?>" />
<input type="hidden" id="duplicate" value="<?php if($config['duplicate_files']) echo 1; else echo 0;?>" />
<input type="hidden" id="base_url" value="<?php echo $config['base_url']?>"/>
<input type="hidden" id="ftp_base_url" value="<?php echo $config['ftp_base_url']?>"/>
<input type="hidden" id="fldr_value" value="<?php echo $subdir;?>"/>
<input type="hidden" id="sub_folder" value="<?php echo $rfm_subfolder;?>"/>
<input type="hidden" id="return_relative_url" value="<?php echo $return_relative_url == true ? 1 : 0;?>"/>
<input type="hidden" id="file_number_limit_js" value="<?php echo $config['file_number_limit_js'];?>" />
<input type="hidden" id="sort_by" value="<?php echo $sort_by;?>" />
<input type="hidden" id="descending" value="<?php echo $descending?1:0;?>" />
<input type="hidden" id="current_url" value="<?php echo str_replace(array('&filter='.$filter,'&sort_by='.$sort_by,'&descending='.intval($descending)),array(''),$config['base_url'].htmlspecialchars($_SERVER['REQUEST_URI']));?>" />
<input type="hidden" id="lang_show_url" value="<?php echo trans('Show_url');?>" />
<input type="hidden" id="copy_cut_files_allowed" value="<?php if($config['copy_cut_files']) echo 1; else echo 0;?>" />
<input type="hidden" id="copy_cut_dirs_allowed" value="<?php if($config['copy_cut_dirs']) echo 1; else echo 0;?>" />
<input type="hidden" id="copy_cut_max_size" value="<?php echo $config['copy_cut_max_size'];?>" />
<input type="hidden" id="copy_cut_max_count" value="<?php echo $config['copy_cut_max_count'];?>" />
<input type="hidden" id="lang_copy" value="<?php echo trans('Copy');?>" />
<input type="hidden" id="lang_cut" value="<?php echo trans('Cut');?>" />
<input type="hidden" id="lang_paste" value="<?php echo trans('Paste');?>" />
<input type="hidden" id="lang_paste_here" value="<?php echo trans('Paste_Here');?>" />
<input type="hidden" id="lang_paste_confirm" value="<?php echo trans('Paste_Confirm');?>" />
<input type="hidden" id="lang_files" value="<?php echo trans('Files');?>" />
<input type="hidden" id="lang_folders" value="<?php echo trans('Folders');?>" />
<input type="hidden" id="lang_files_on_clipboard" value="<?php echo trans('Files_ON_Clipboard');?>" />
<input type="hidden" id="clipboard" value="<?php echo ((isset($_SESSION['RF']['clipboard']['path']) && trim($_SESSION['RF']['clipboard']['path']) != null) ? 1 : 0);?>" />
<input type="hidden" id="lang_clear_clipboard_confirm" value="<?php echo trans('Clear_Clipboard_Confirm');?>" />
<input type="hidden" id="lang_file_permission" value="<?php echo trans('File_Permission');?>" />
<input type="hidden" id="chmod_files_allowed" value="<?php if($config['chmod_files']) echo 1; else echo 0;?>" />
<input type="hidden" id="chmod_dirs_allowed" value="<?php if($config['chmod_dirs']) echo 1; else echo 0;?>" />
<input type="hidden" id="lang_lang_change" value="<?php echo trans('Lang_Change');?>" />
<input type="hidden" id="edit_text_files_allowed" value="<?php if($config['edit_text_files']) echo 1; else echo 0;?>" />
<input type="hidden" id="lang_edit_file" value="<?php echo trans('Edit_File');?>" />
<input type="hidden" id="lang_new_file" value="<?php echo trans('New_File');?>" />
<input type="hidden" id="lang_filename" value="<?php echo trans('Filename');?>" />
<input type="hidden" id="lang_file_info" value="<?php echo fix_strtoupper(trans('File_info'));?>" />
<input type="hidden" id="lang_edit_image" value="<?php echo trans('Edit_image');?>" />
<input type="hidden" id="lang_error_upload" value="<?php echo trans('Error_Upload');?>" />
<input type="hidden" id="lang_select" value="<?php echo trans('Select');?>" />
<input type="hidden" id="lang_extract" value="<?php echo trans('Extract');?>" />
<input type="hidden" id="extract_files" value="<?php if($config['extract_files']) echo 1; else echo 0;?>" />
<input type="hidden" id="transliteration" value="<?php echo $config['transliteration']?"true":"false";?>" />
<input type="hidden" id="convert_spaces" value="<?php echo $config['convert_spaces']?"true":"false";?>" />
<input type="hidden" id="replace_with" value="<?php echo $config['convert_spaces']? $config['replace_with'] : "";?>" />
<input type="hidden" id="lower_case" value="<?php echo $config['lower_case']?"true":"false";?>" />
<input type="hidden" id="show_folder_size" value="<?php echo $config['show_folder_size'];?>" />
<input type="hidden" id="add_time_to_img" value="<?php echo $config['add_time_to_img'];?>" />
2019-01-11 09:59:01 +01:00
<?php if($config['upload_files']){ ?>
2018-04-02 08:29:19 +02:00
<!-- uploader div start -->
<div class="uploader">
<div class="flex">
<div class="text-center">
<button class="btn btn-inverse close-uploader"><i class="icon-backward icon-white"></i> <?php echo trans('Return_Files_List')?></button>
</div>
<div class="space10"></div>
<div class="tabbable upload-tabbable"> <!-- Only required for left/right tabs -->
<div class="container1">
<ul class="nav nav-tabs">
<li class="active"><a href="#baseUpload" data-toggle="tab"><?php echo trans('Upload_base');?></a></li>
<?php if($config['url_upload']){ ?>
<li><a href="#urlUpload" data-toggle="tab"><?php echo trans('Upload_url');?></a></li>
<?php } ?>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="baseUpload">
<!-- The file upload form used as target for the file upload widget -->
<form id="fileupload" action="" method="POST" enctype="multipart/form-data">
<div class="container2">
<div class="fileupload-buttonbar">
<!-- The global progress state -->
<div class="fileupload-progress">
<!-- The global progress bar -->
<div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100">
<div class="bar bar-success" style="width:0%;"></div>
</div>
<!-- The extended global progress state -->
<div class="progress-extended"></div>
</div>
<div class="text-center">
<!-- The fileinput-button span is used to style the file input field as button -->
<span class="btn btn-success fileinput-button">
<i class="glyphicon glyphicon-plus"></i>
<span><?php echo trans('Upload_add_files');?></span>
<input type="file" name="files[]" multiple="multiple">
</span>
<button type="submit" class="btn btn-primary start">
<i class="glyphicon glyphicon-upload"></i>
<span><?php echo trans('Upload_start');?></span>
</button>
<!-- The global file processing state -->
<span class="fileupload-process"></span>
</div>
</div>
<!-- The table listing the files available for upload/download -->
<div id="filesTable">
<table role="presentation" class="table table-striped table-condensed small"><tbody class="files"></tbody></table>
</div>
<div class="upload-help"><?php echo trans('Upload_base_help');?></div>
</div>
</form>
<!-- The template to display files available for upload -->
<script id="template-upload" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-upload">
<td>
<span class="preview"></span>
</td>
<td>
<p class="name">{%=file.relativePath%}{%=file.name%}</p>
<strong class="error text-danger"></strong>
</td>
<td>
<p class="size">Processing...</p>
<div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="bar bar-success" style="width:0%;"></div></div>
</td>
<td>
{% if (!i && !o.options.autoUpload) { %}
<button class="btn btn-primary start" disabled style="display:none">
<i class="glyphicon glyphicon-upload"></i>
<span>Start</span>
</button>
{% } %}
{% if (!i) { %}
<button class="btn btn-link cancel">
<i class="icon-remove"></i>
</button>
{% } %}
</td>
</tr>
{% } %}
</script>
<!-- The template to display files available for download -->
<script id="template-download" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-download">
<td>
<span class="preview">
{% if (file.error) { %}
<i class="icon icon-remove"></i>
{% } else { %}
<i class="icon icon-ok"></i>
{% } %}
</span>
</td>
<td>
<p class="name">
{% if (file.url) { %}
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?'data-gallery':''%}>{%=file.name%}</a>
{% } else { %}
<span>{%=file.name%}</span>
{% } %}
</p>
{% if (file.error) { %}
<div><span class="label label-danger">Error</span> {%=file.error%}</div>
{% } %}
</td>
<td>
<span class="size">{%=o.formatFileSize(file.size)%}</span>
</td>
<td></td>
</tr>
{% } %}
</script>
</div>
<?php if($config['url_upload']){ ?>
<div class="tab-pane" id="urlUpload">
<br/>
<form class="form-horizontal">
<div class="control-group">
<label class="control-label" for="url"><?php echo trans('Upload_url');?></label>
<div class="controls">
<input type="text" class="input-block-level" id="url" placeholder="<?php echo trans('Upload_url');?>">
</div>
</div>
<div class="control-group">
<div class="controls">
<button class="btn btn-primary" id="uploadURL"><?php echo trans('Upload_file');?></button>
</div>
</div>
</form>
</div>
<?php } ?>
</div>
</div>
</div>
</div>
2018-04-02 08:29:19 +02:00
</div>
<!-- uploader div end -->
<?php } ?>
<div class="container-fluid">
2018-04-02 08:29:19 +02:00
<?php
$class_ext = '';
$src = '';
if ($ftp) {
try {
$files = $ftp->scanDir($config['ftp_base_folder'] . $config['upload_dir'] . $rfm_subfolder . $subdir);
if (!$ftp->isDir($config['ftp_base_folder'] . $config['ftp_thumbs_dir'] . $rfm_subfolder . $subdir)) {
create_folder(false, $config['ftp_base_folder'] . $config['ftp_thumbs_dir'] . $rfm_subfolder . $subdir, $ftp, $config);
}
} catch (FtpClient\FtpException $e) {
echo "Error: ";
echo $e->getMessage();
echo "<br/>Please check configurations";
die();
}
} else {
$files = scandir($config['current_path'] . $rfm_subfolder . $subdir);
2018-04-02 08:29:19 +02:00
}
$n_files = count($files);
2018-04-02 08:29:19 +02:00
//php sorting
$sorted = array();
2018-04-02 08:29:19 +02:00
//$current_folder=array();
//$prev_folder=array();
$current_files_number = 0;
$current_folders_number = 0;
foreach ($files as $k => $file) {
if ($ftp) {
$date = strtotime($file['day'] . " " . $file['month'] . " " . date('Y') . " " . $file['time']);
$size = $file['size'];
if ($file['type'] == 'file') {
$current_files_number++;
$file_ext = substr(strrchr($file['name'], '.'), 1);
$is_dir = false;
} else {
$current_folders_number++;
$file_ext = trans('Type_dir');
$is_dir = true;
}
$sorted[$k] = array(
'is_dir' => $is_dir,
'file' => $file['name'],
'file_lcase' => strtolower($file['name']),
'date' => $date,
'size' => $size,
'permissions' => $file['permissions'],
'extension' => fix_strtolower($file_ext)
);
} else {
if ($file != "." && $file != "..") {
if (is_dir($config['current_path'] . $rfm_subfolder . $subdir . $file)) {
$date = filemtime($config['current_path'] . $rfm_subfolder . $subdir . $file);
$current_folders_number++;
if ($config['show_folder_size']) {
list($size, $nfiles, $nfolders) = folder_info($config['current_path'] . $rfm_subfolder . $subdir . $file, false);
} else {
$size = 0;
}
$file_ext = trans('Type_dir');
$sorted[$k] = array(
'is_dir' => true,
'file' => $file,
'file_lcase' => strtolower($file),
'date' => $date,
'size' => $size,
'permissions' => '',
'extension' => fix_strtolower($file_ext)
);
if ($config['show_folder_size']) {
$sorted[$k]['nfiles'] = $nfiles;
$sorted[$k]['nfolders'] = $nfolders;
}
} else {
$current_files_number++;
$file_path = $config['current_path'] . $rfm_subfolder . $subdir . $file;
$date = filemtime($file_path);
$size = filesize($file_path);
$file_ext = substr(strrchr($file, '.'), 1);
$sorted[$k] = array(
'is_dir' => false,
'file' => $file,
'file_lcase' => strtolower($file),
'date' => $date,
'size' => $size,
'permissions' => '',
'extension' => strtolower($file_ext)
);
}
}
}
2018-04-02 08:29:19 +02:00
}
function filenameSort($x, $y)
{
global $descending;
if ($x['is_dir'] !== $y['is_dir']) {
return $y['is_dir'];
} else {
return ($descending)
? $x['file_lcase'] < $y['file_lcase']
: $x['file_lcase'] >= $y['file_lcase'];
}
2018-04-02 08:29:19 +02:00
}
2019-01-11 09:59:01 +01:00
function dateSort($x, $y)
{
global $descending;
if ($x['is_dir'] !== $y['is_dir']) {
return $y['is_dir'];
} else {
return ($descending)
? $x['date'] < $y['date']
: $x['date'] >= $y['date'];
}
2018-04-02 08:29:19 +02:00
}
2019-01-11 09:59:01 +01:00
function sizeSort($x, $y)
{
global $descending;
if ($x['is_dir'] !== $y['is_dir']) {
return $y['is_dir'];
} else {
return ($descending)
? $x['size'] < $y['size']
: $x['size'] >= $y['size'];
}
2018-04-02 08:29:19 +02:00
}
2019-01-11 09:59:01 +01:00
function extensionSort($x, $y)
{
global $descending;
if ($x['is_dir'] !== $y['is_dir']) {
return $y['is_dir'];
} else {
return ($descending)
? $x['extension'] < $y['extension']
: $x['extension'] >= $y['extension'];
}
2018-04-02 08:29:19 +02:00
}
switch ($sort_by) {
case 'date':
usort($sorted, 'dateSort');
break;
case 'size':
usort($sorted, 'sizeSort');
break;
case 'extension':
usort($sorted, 'extensionSort');
break;
default:
usort($sorted, 'filenameSort');
break;
2018-04-02 08:29:19 +02:00
}
if ($subdir != "") {
$sorted = array_merge(array(array('file' => '..')), $sorted);
2018-04-02 08:29:19 +02:00
}
2019-01-11 09:59:01 +01:00
$files = $sorted;
2018-04-02 08:29:19 +02:00
?>
<!-- header div start -->
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container-fluid">
<button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="brand"><?php echo trans('Toolbar');?></div>
<div class="nav-collapse collapse">
<div class="filters">
<div class="row-fluid">
<div class="span4 half">
<?php if($config['upload_files']){ ?>
<button class="tip btn upload-btn" title="<?php echo trans('Upload_file');?>"><i class="rficon-upload"></i></button>
<?php } ?>
<?php if($config['create_text_files']){ ?>
<button class="tip btn create-file-btn" title="<?php echo trans('New_File');?>"><i class="icon-plus"></i><i class="icon-file"></i></button>
<?php } ?>
<?php if($config['create_folders']){ ?>
<button class="tip btn new-folder" title="<?php echo trans('New_Folder')?>"><i class="icon-plus"></i><i class="icon-folder-open"></i></button>
<?php } ?>
<?php if($config['copy_cut_files'] || $config['copy_cut_dirs']){ ?>
<button class="tip btn paste-here-btn" title="<?php echo trans('Paste_Here');?>"><i class="rficon-clipboard-apply"></i></button>
<button class="tip btn clear-clipboard-btn" title="<?php echo trans('Clear_Clipboard');?>"><i class="rficon-clipboard-clear"></i></button>
<?php } ?>
<div id="multiple-selection" style="display:none;">
<?php if($config['multiple_selection']){ ?>
<?php if($config['delete_files']){ ?>
<button class="tip btn multiple-delete-btn" title="<?php echo trans('Erase');?>" data-confirm="<?php echo trans('Confirm_del');?>"><i class="icon-trash"></i></button>
<?php } ?>
<button class="tip btn multiple-select-btn" title="<?php echo trans('Select_All');?>"><i class="icon-check"></i></button>
<button class="tip btn multiple-deselect-btn" title="<?php echo trans('Deselect_All');?>"><i class="icon-ban-circle"></i></button>
<?php if($apply_type!="apply_none" && $config['multiple_selection_action_button']){ ?>
<button class="btn multiple-action-btn btn-inverse" data-function="<?php echo $apply_type;?>"><?php echo trans('Select'); ?></button>
<?php } ?>
<?php } ?>
</div>
</div>
<div class="span2 half view-controller">
<button class="btn tip<?php if($view==0) echo " btn-inverse";?>" id="view0" data-value="0" title="<?php echo trans('View_boxes');?>"><i class="icon-th <?php if($view==0) echo "icon-white";?>"></i></button>
<button class="btn tip<?php if($view==1) echo " btn-inverse";?>" id="view1" data-value="1" title="<?php echo trans('View_list');?>"><i class="icon-align-justify <?php if($view==1) echo "icon-white";?>"></i></button>
<button class="btn tip<?php if($view==2) echo " btn-inverse";?>" id="view2" data-value="2" title="<?php echo trans('View_columns_list');?>"><i class="icon-fire <?php if($view==2) echo "icon-white";?>"></i></button>
</div>
<div class="span6 entire types">
<span><?php echo trans('Filters');?>:</span>
<?php if($_GET['type']!=1 && $_GET['type']!=3 && $config['show_filter_buttons']){ ?>
<?php if(count($config['ext_file'])>0 or false){ ?>
<input id="select-type-1" name="radio-sort" type="radio" data-item="ff-item-type-1" checked="checked" class="hide" />
<label id="ff-item-type-1" title="<?php echo trans('Files');?>" for="select-type-1" class="tip btn ff-label-type-1"><i class="icon-file"></i></label>
<?php } ?>
<?php if(count($config['ext_img'])>0 or false){ ?>
<input id="select-type-2" name="radio-sort" type="radio" data-item="ff-item-type-2" class="hide" />
<label id="ff-item-type-2" title="<?php echo trans('Images');?>" for="select-type-2" class="tip btn ff-label-type-2"><i class="icon-picture"></i></label>
<?php } ?>
<?php if(count($config['ext_misc'])>0 or false){ ?>
<input id="select-type-3" name="radio-sort" type="radio" data-item="ff-item-type-3" class="hide" />
<label id="ff-item-type-3" title="<?php echo trans('Archives');?>" for="select-type-3" class="tip btn ff-label-type-3"><i class="icon-inbox"></i></label>
<?php } ?>
<?php if(count($config['ext_video'])>0 or false){ ?>
<input id="select-type-4" name="radio-sort" type="radio" data-item="ff-item-type-4" class="hide" />
<label id="ff-item-type-4" title="<?php echo trans('Videos');?>" for="select-type-4" class="tip btn ff-label-type-4"><i class="icon-film"></i></label>
<?php } ?>
<?php if(count($config['ext_music'])>0 or false){ ?>
<input id="select-type-5" name="radio-sort" type="radio" data-item="ff-item-type-5" class="hide" />
<label id="ff-item-type-5" title="<?php echo trans('Music');?>" for="select-type-5" class="tip btn ff-label-type-5"><i class="icon-music"></i></label>
<?php } ?>
<?php } ?>
<input accesskey="f" type="text" class="filter-input <?php echo (($_GET['type']!=1 && $_GET['type']!=3) ? '' : 'filter-input-notype');?>" id="filter-input" name="filter" placeholder="<?php echo fix_strtolower(trans('Text_filter'));?>..." value="<?php echo $filter;?>"/><?php if($n_files>$config['file_number_limit_js']){ ?><label id="filter" class="btn"><i class="icon-play"></i></label><?php } ?>
<input id="select-type-all" name="radio-sort" type="radio" data-item="ff-item-type-all" class="hide" />
<label id="ff-item-type-all" title="<?php echo trans('All');?>" <?php if($_GET['type']==1 || $_GET['type']==3){ ?>style="visibility: hidden;" <?php } ?> data-item="ff-item-type-all" for="select-type-all" style="margin-rigth:0px;" class="tip btn btn-inverse ff-label-type-all"><?php echo trans('All');?></label>
</div>
</div>
</div>
</div>
</div>
</div>
2018-04-02 08:29:19 +02:00
</div>
<!-- header div end -->
<!-- breadcrumb div start -->
<div class="row-fluid">
<?php
$link = "dialog.php?" . $get_params;
?>
<ul class="breadcrumb">
<li class="pull-left"><a href="<?php echo $link?>/"><i class="icon-home"></i></a></li>
<li><span class="divider">/</span></li>
<?php
$bc=explode("/",$subdir);
$tmp_path='';
if(!empty($bc))
foreach($bc as $k=>$b){
$tmp_path.=$b."/";
if($k==count($bc)-2){
?> <li class="active"><?php echo $b?></li><?php
}elseif($b!=""){ ?>
<li><a href="<?php echo $link.$tmp_path?>"><?php echo $b?></a></li><li><span class="divider"><?php echo "/";?></span></li>
<?php }
}
?>
2018-04-02 08:29:19 +02:00
<li class="pull-right"><a class="btn-small" href="javascript:void('')" id="info"><i class="icon-question-sign"></i></a></li>
<?php if($config['show_language_selection']){ ?>
<li class="pull-right"><a class="btn-small" href="javascript:void('')" id="change_lang_btn"><i class="icon-globe"></i></a></li>