diff --git a/Application/Controller/Admin/TinyFileManager.php b/Application/Controller/Admin/TinyFileManager.php new file mode 100755 index 0000000..1280dd3 --- /dev/null +++ b/Application/Controller/Admin/TinyFileManager.php @@ -0,0 +1,10 @@ +setCharset($this->getCharSet()); + $oOutput->setOutputFormat(oxOutput::OUTPUT_FORMAT_JSON); + $oOutput->sendHeaders(); + $oOutput->output('errors', $this->_errors); + $oOutput->output('content', $this->_content); + exit; + } + +} diff --git a/Application/Core/.ide-helper.php b/Application/Core/.ide-helper.php new file mode 100755 index 0000000..6afb7bf --- /dev/null +++ b/Application/Core/.ide-helper.php @@ -0,0 +1,6 @@ + 'Password', 'Username2' => 'Password2', ...) +// Generate secure password hash - https://tinyfilemanager.github.io/docs/pwd.html +$auth_users = array( + 'admin' => '$2y$10$/K.hjNr84lLNDt8fTXjoI.DBp6PpeyoJ.mGwrrLuCZfAwfSAGqhOW', //admin@123 + 'user' => '$2y$10$Fg6Dz8oH9fPoZ2jJan5tZuv6Z4Kp7avtQ9bDfrdRntXtPeiMAZyGO' //12345 +); + +// Readonly users +// e.g. array('users', 'guest', ...) +$readonly_users = array( + 'user' +); + +// Enable highlight.js (https://highlightjs.org/) on view's page +$use_highlightjs = true; + +// highlight.js style +// for dark theme use 'ir-black' +$highlightjs_style = 'vs'; + +// Enable ace.js (https://ace.c9.io/) on view's page +$edit_files = true; + +// Default timezone for date() and time() +// Doc - http://php.net/manual/en/timezones.php +$default_timezone = 'Etc/UTC'; // UTC + +// Root path for file manager +// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder' +$root_path = $_SERVER['DOCUMENT_ROOT']; + +// Root url for links in file manager.Relative to $http_host. Variants: '', 'path/to/subfolder' +// Will not working if $root_path will be outside of server document root +$root_url = ''; + +// Server hostname. Can set manually if wrong +$http_host = $_SERVER['HTTP_HOST']; + +// user specific directories +// array('Username' => 'Directory path', 'Username2' => 'Directory path', ...) +$directories_users = array(); + +// input encoding for iconv +$iconv_input_encoding = 'UTF-8'; + +// date() format for file modification date +// Doc - https://www.php.net/manual/en/function.date.php +$datetime_format = 'd.m.y H:i'; + +// Allowed file extensions for create and rename files +// e.g. 'txt,html,css,js' +$allowed_file_extensions = ''; + +// Allowed file extensions for upload files +// e.g. 'gif,png,jpg,html,txt' +$allowed_upload_extensions = ''; + +// Favicon path. This can be either a full url to an .PNG image, or a path based on the document root. +// full path, e.g http://example.com/favicon.png +// local path, e.g images/icons/favicon.png +$favicon_path = ''; + +// Files and folders to excluded from listing +// e.g. array('myfile.html', 'personal-folder', '*.php', ...) +$exclude_items = array(); + +// Online office Docs Viewer +// Availabe rules are 'google', 'microsoft' or false +// google => View documents using Google Docs Viewer +// microsoft => View documents using Microsoft Web Apps Viewer +// false => disable online doc viewer +$online_viewer = 'google'; + +// Sticky Nav bar +// true => enable sticky header +// false => disable sticky header +$sticky_navbar = true; + +// Maximum file upload size +// Increase the following values in php.ini to work properly +// memory_limit, upload_max_filesize, post_max_size +$max_upload_size_bytes = 5000; + +// Possible rules are 'OFF', 'AND' or 'OR' +// OFF => Don't check connection IP, defaults to OFF +// AND => Connection must be on the whitelist, and not on the blacklist +// OR => Connection must be on the whitelist, or not on the blacklist +$ip_ruleset = 'OFF'; + +// Should users be notified of their block? +$ip_silent = true; + +// IP-addresses, both ipv4 and ipv6 +$ip_whitelist = array( + '127.0.0.1', // local ipv4 + '::1' // local ipv6 +); + +// IP-addresses, both ipv4 and ipv6 +$ip_blacklist = array( + '0.0.0.0', // non-routable meta ipv4 + '::' // non-routable meta ipv6 +); + +// if User has the customized config file, try to use it to override the default config above +$config_file = __DIR__.'/config.php'; +if (is_readable($config_file)) { + @include($config_file); +} + +// --- EDIT BELOW CAREFULLY OR DO NOT EDIT AT ALL --- + +// max upload file size +define('MAX_UPLOAD_SIZE', $max_upload_size_bytes); + +// private key and session name to store to the session +if ( !defined( 'FM_SESSION_ID')) { + define('FM_SESSION_ID', 'filemanager'); +} + +// Configuration +$cfg = new FM_Config(); + +// Default language +$lang = isset($cfg->data['lang']) ? $cfg->data['lang'] : 'en'; + +// Show or hide files and folders that starts with a dot +$show_hidden_files = isset($cfg->data['show_hidden']) ? $cfg->data['show_hidden'] : true; + +// PHP error reporting - false = Turns off Errors, true = Turns on Errors +$report_errors = isset($cfg->data['error_reporting']) ? $cfg->data['error_reporting'] : true; + +// Hide Permissions and Owner cols in file-listing +$hide_Cols = isset($cfg->data['hide_Cols']) ? $cfg->data['hide_Cols'] : true; + +// Show directory size: true or speedup output: false +$calc_folder = isset($cfg->data['calc_folder']) ? $cfg->data['calc_folder'] : true; + +// Theme +$theme = isset($cfg->data['theme']) ? $cfg->data['theme'] : 'light'; + +define('FM_THEME', $theme); + +//available languages +$lang_list = array( + 'en' => 'English' +); + +if ($report_errors == true) { + @ini_set('error_reporting', E_ALL); + @ini_set('display_errors', 1); +} else { + @ini_set('error_reporting', E_ALL); + @ini_set('display_errors', 0); +} + +// if fm included +if (defined('FM_EMBED')) { + $use_auth = false; + $sticky_navbar = false; +} else { + @set_time_limit(600); + + date_default_timezone_set($default_timezone); + + ini_set('default_charset', 'UTF-8'); + if (version_compare(PHP_VERSION, '5.6.0', '<') && function_exists('mb_internal_encoding')) { + mb_internal_encoding('UTF-8'); + } + if (function_exists('mb_regex_encoding')) { + mb_regex_encoding('UTF-8'); + } + + session_cache_limiter(''); + session_name(FM_SESSION_ID ); + function session_error_handling_function($code, $msg, $file, $line) { + // Permission denied for default session, try to create a new one + if ($code == 2) { + session_abort(); + session_id(session_create_id()); + @session_start(); + } + } + set_error_handler('session_error_handling_function'); + session_start(); + restore_error_handler(); +} + +if (empty($auth_users)) { + $use_auth = false; +} + +$is_https = isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) + || isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'; + +// update $root_url based on user specific directories +if (isset($_SESSION[FM_SESSION_ID]['logged']) && !empty($directories_users[$_SESSION[FM_SESSION_ID]['logged']])) { + $wd = fm_clean_path(dirname($_SERVER['PHP_SELF'])); + $root_url = $root_url.$wd.DIRECTORY_SEPARATOR.$directories_users[$_SESSION[FM_SESSION_ID]['logged']]; +} +// clean $root_url +$root_url = fm_clean_path($root_url); + +// abs path for site +defined('FM_ROOT_URL') || define('FM_ROOT_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . (!empty($root_url) ? '/' . $root_url : '')); +defined('FM_SELF_URL') || define('FM_SELF_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . $_SERVER['PHP_SELF']); + +// update root path +if ($use_auth && isset($_SESSION[FM_SESSION_ID]['logged'])) { + $root_path = isset($directories_users[$_SESSION[FM_SESSION_ID]['logged']]) ? $directories_users[$_SESSION[FM_SESSION_ID]['logged']] : $root_path; +} + +// clean and check $root_path +$root_path = rtrim($root_path, '\\/'); +$root_path = str_replace('\\', '/', $root_path); +if (!@is_dir($root_path)) { + echo "

".lng('Root path')." \"{$root_path}\" ".lng('not found!')."

"; + exit; +} + +defined('FM_SHOW_HIDDEN') || define('FM_SHOW_HIDDEN', $show_hidden_files); +defined('FM_ROOT_PATH') || define('FM_ROOT_PATH', $root_path); +defined('FM_LANG') || define('FM_LANG', $lang); +defined('FM_FILE_EXTENSION') || define('FM_FILE_EXTENSION', $allowed_file_extensions); +defined('FM_UPLOAD_EXTENSION') || define('FM_UPLOAD_EXTENSION', $allowed_upload_extensions); +defined('FM_EXCLUDE_ITEMS') || define('FM_EXCLUDE_ITEMS', (version_compare(PHP_VERSION, '7.0.0', '<') ? serialize($exclude_items) : $exclude_items)); +defined('FM_DOC_VIEWER') || define('FM_DOC_VIEWER', $online_viewer); +define('FM_READONLY', $use_auth && !empty($readonly_users) && isset($_SESSION[FM_SESSION_ID]['logged']) && in_array($_SESSION[FM_SESSION_ID]['logged'], $readonly_users)); +define('FM_IS_WIN', DIRECTORY_SEPARATOR == '\\'); + +// always use ?p= +if (!isset($_GET['p']) && empty($_FILES)) { + fm_redirect(FM_SELF_URL . '?p='); +} + +// get path +$p = isset($_GET['p']) ? $_GET['p'] : (isset($_POST['p']) ? $_POST['p'] : ''); + +// clean path +$p = fm_clean_path($p); + +// for ajax request - save +$input = file_get_contents('php://input'); +$_POST = (strpos($input, 'ajax') != FALSE && strpos($input, 'save') != FALSE) ? json_decode($input, true) : $_POST; + +// instead globals vars +define('FM_PATH', $p); +define('FM_USE_AUTH', $use_auth); +define('FM_EDIT_FILE', $edit_files); +defined('FM_ICONV_INPUT_ENC') || define('FM_ICONV_INPUT_ENC', $iconv_input_encoding); +defined('FM_USE_HIGHLIGHTJS') || define('FM_USE_HIGHLIGHTJS', $use_highlightjs); +defined('FM_HIGHLIGHTJS_STYLE') || define('FM_HIGHLIGHTJS_STYLE', $highlightjs_style); +defined('FM_DATETIME_FORMAT') || define('FM_DATETIME_FORMAT', $datetime_format); + +unset($p, $use_auth, $iconv_input_encoding, $use_highlightjs, $highlightjs_style); + +/*************************** ACTIONS ***************************/ + +// AJAX Request +if (isset($_POST['ajax']) && !FM_READONLY) { + + // save + if (isset($_POST['type']) && $_POST['type'] == "save") { + // get current path + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + // check path + if (!is_dir($path)) { + fm_redirect(FM_SELF_URL . '?p='); + } + $file = $_GET['edit']; + $file = fm_clean_path($file); + $file = str_replace('/', '', $file); + if ($file == '' || !is_file($path . '/' . $file)) { + fm_set_msg(lng('File not found'), 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + header('X-XSS-Protection:0'); + $file_path = $path . '/' . $file; + + $writedata = $_POST['content']; + $fd = fopen($file_path, "w"); + $write_results = @fwrite($fd, $writedata); + fclose($fd); + if ($write_results === false){ + header("HTTP/1.1 500 Internal Server Error"); + die("Could Not Write File! - Check Permissions / Ownership"); + } + die(true); + } + + //search : get list of files from the current folder + if(isset($_POST['type']) && $_POST['type']=="search") { + $dir = FM_ROOT_PATH; + $response = scan(fm_clean_path($_POST['path']), $_POST['content']); + echo json_encode($response); + exit(); + } + + // backup files + if (isset($_POST['type']) && $_POST['type'] == "backup" && !empty($_POST['file'])) { + $fileName = $_POST['file']; + $fullPath = FM_ROOT_PATH . '/'; + if (!empty($_POST['path'])) { + $relativeDirPath = fm_clean_path($_POST['path']); + $fullPath .= "{$relativeDirPath}/"; + } + $date = date("dMy-His"); + $newFileName = "{$fileName}-{$date}.bak"; + $fullyQualifiedFileName = $fullPath . $fileName; + try { + if (!file_exists($fullyQualifiedFileName)) { + throw new Exception("File {$fileName} not found"); + } + if (copy($fullyQualifiedFileName, $fullPath . $newFileName)) { + echo "Backup {$newFileName} created"; + } else { + throw new Exception("Could not copy file {$fileName}"); + } + } catch (Exception $e) { + echo $e->getMessage(); + } + } + + // Save Config + if (isset($_POST['type']) && $_POST['type'] == "settings") { + global $cfg, $lang, $report_errors, $show_hidden_files, $lang_list, $hide_Cols, $calc_folder, $theme; + $newLng = $_POST['js-language']; + fm_get_translations([]); + if (!array_key_exists($newLng, $lang_list)) { + $newLng = 'en'; + } + + $erp = isset($_POST['js-error-report']) && $_POST['js-error-report'] == "true" ? true : false; + $shf = isset($_POST['js-show-hidden']) && $_POST['js-show-hidden'] == "true" ? true : false; + $hco = isset($_POST['js-hide-cols']) && $_POST['js-hide-cols'] == "true" ? true : false; + $caf = isset($_POST['js-calc-folder']) && $_POST['js-calc-folder'] == "true" ? true : false; + $te3 = $_POST['js-theme-3']; + + if ($cfg->data['lang'] != $newLng) { + $cfg->data['lang'] = $newLng; + $lang = $newLng; + } + if ($cfg->data['error_reporting'] != $erp) { + $cfg->data['error_reporting'] = $erp; + $report_errors = $erp; + } + if ($cfg->data['show_hidden'] != $shf) { + $cfg->data['show_hidden'] = $shf; + $show_hidden_files = $shf; + } + if ($cfg->data['show_hidden'] != $shf) { + $cfg->data['show_hidden'] = $shf; + $show_hidden_files = $shf; + } + if ($cfg->data['hide_Cols'] != $hco) { + $cfg->data['hide_Cols'] = $hco; + $hide_Cols = $hco; + } + if ($cfg->data['calc_folder'] != $caf) { + $cfg->data['calc_folder'] = $caf; + $calc_folder = $caf; + } + if ($cfg->data['theme'] != $te3) { + $cfg->data['theme'] = $te3; + $theme = $te3; + } + $cfg->save(); + echo true; + } + + // new password hash + if (isset($_POST['type']) && $_POST['type'] == "pwdhash") { + $res = isset($_POST['inputPassword2']) && !empty($_POST['inputPassword2']) ? password_hash($_POST['inputPassword2'], PASSWORD_DEFAULT) : ''; + echo $res; + } + + //upload using url + if(isset($_POST['type']) && $_POST['type'] == "upload" && !empty($_REQUEST["uploadurl"])) { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + function event_callback ($message) { + global $callback; + echo json_encode($message); + } + + function get_file_path () { + global $path, $fileinfo, $temp_file; + return $path."/".basename($fileinfo->name); + } + + $url = !empty($_REQUEST["uploadurl"]) && preg_match("|^http(s)?://.+$|", stripslashes($_REQUEST["uploadurl"])) ? stripslashes($_REQUEST["uploadurl"]) : null; + + //prevent 127.* domain and known ports + $domain = parse_url($url, PHP_URL_HOST); + $port = parse_url($url, PHP_URL_PORT); + $knownPorts = [22, 23, 25, 3306]; + + if (preg_match("/^localhost$|^127(?:\.[0-9]+){0,2}\.[0-9]+$|^(?:0*\:)*?:?0*1$/i", $domain) || in_array($port, $knownPorts)) { + $err = array("message" => "URL is not allowed"); + event_callback(array("fail" => $err)); + exit(); + } + + $use_curl = false; + $temp_file = tempnam(sys_get_temp_dir(), "upload-"); + $fileinfo = new stdClass(); + $fileinfo->name = trim(basename($url), ".\x00..\x20"); + + $allowed = (FM_UPLOAD_EXTENSION) ? explode(',', FM_UPLOAD_EXTENSION) : false; + $ext = strtolower(pathinfo($fileinfo->name, PATHINFO_EXTENSION)); + $isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true; + + $err = false; + + if(!$isFileAllowed) { + $err = array("message" => "File extension is not allowed"); + event_callback(array("fail" => $err)); + exit(); + } + + if (!$url) { + $success = false; + } else if ($use_curl) { + @$fp = fopen($temp_file, "w"); + @$ch = curl_init($url); + curl_setopt($ch, CURLOPT_NOPROGRESS, false ); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); + curl_setopt($ch, CURLOPT_FILE, $fp); + @$success = curl_exec($ch); + $curl_info = curl_getinfo($ch); + if (!$success) { + $err = array("message" => curl_error($ch)); + } + @curl_close($ch); + fclose($fp); + $fileinfo->size = $curl_info["size_download"]; + $fileinfo->type = $curl_info["content_type"]; + } else { + $ctx = stream_context_create(); + @$success = copy($url, $temp_file, $ctx); + if (!$success) { + $err = error_get_last(); + } + } + + if ($success) { + $success = rename($temp_file, get_file_path()); + } + + if ($success) { + event_callback(array("done" => $fileinfo)); + } else { + unlink($temp_file); + if (!$err) { + $err = array("message" => "Invalid url parameter"); + } + event_callback(array("fail" => $err)); + } + } + + exit(); +} + +// Delete file / folder +if (isset($_GET['del']) && !FM_READONLY) { + $del = str_replace( '/', '', fm_clean_path( $_GET['del'] ) ); + if ($del != '' && $del != '..' && $del != '.') { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + $is_dir = is_dir($path . '/' . $del); + if (fm_rdelete($path . '/' . $del)) { + $msg = $is_dir ? lng('Folder').' %s '.lng('Deleted') : lng('File').' %s '.lng('Deleted'); + fm_set_msg(sprintf($msg, fm_enc($del))); + } else { + $msg = $is_dir ? lng('Folder').' %s '.lng('not deleted') : lng('File').' %s '.lng('not deleted'); + fm_set_msg(sprintf($msg, fm_enc($del)), 'error'); + } + } else { + fm_set_msg(lng('Invalid file or folder name'), 'error'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Create folder +if (isset($_GET['new']) && isset($_GET['type']) && !FM_READONLY) { + $type = $_GET['type']; + $new = str_replace( '/', '', fm_clean_path( strip_tags( $_GET['new'] ) ) ); + if (fm_isvalid_filename($new) && $new != '' && $new != '..' && $new != '.') { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + if ($_GET['type'] == "file") { + if (!file_exists($path . '/' . $new)) { + if(fm_is_valid_ext($new)) { + @fopen($path . '/' . $new, 'w') or die('Cannot open file: ' . $new); + fm_set_msg(sprintf(lng('File').' %s '.lng('Created'), fm_enc($new))); + } else { + fm_set_msg(lng('File extension is not allowed'), 'error'); + } + } else { + fm_set_msg(sprintf(lng('File').' %s '.lng('already exists'), fm_enc($new)), 'alert'); + } + } else { + if (fm_mkdir($path . '/' . $new, false) === true) { + fm_set_msg(sprintf(lng('Folder').' %s '.lng('Created'), $new)); + } elseif (fm_mkdir($path . '/' . $new, false) === $path . '/' . $new) { + fm_set_msg(sprintf(lng('Folder').' %s '.lng('already exists'), fm_enc($new)), 'alert'); + } else { + fm_set_msg(sprintf(lng('Folder').' %s '.lng('not created'), fm_enc($new)), 'error'); + } + } + } else { + fm_set_msg(lng('Invalid characters in file or folder name'), 'error'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Copy folder / file +if (isset($_GET['copy'], $_GET['finish']) && !FM_READONLY) { + // from + $copy = $_GET['copy']; + $copy = fm_clean_path($copy); + // empty path + if ($copy == '') { + fm_set_msg(lng('Source path not defined'), 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + // abs path from + $from = FM_ROOT_PATH . '/' . $copy; + // abs path to + $dest = FM_ROOT_PATH; + if (FM_PATH != '') { + $dest .= '/' . FM_PATH; + } + $dest .= '/' . basename($from); + // move? + $move = isset($_GET['move']); + // copy/move/duplicate + if ($from != $dest) { + $msg_from = trim(FM_PATH . '/' . basename($from), '/'); + if ($move) { // Move and to != from so just perform move + $rename = fm_rename($from, $dest); + if ($rename) { + fm_set_msg(sprintf(lng('Moved from').' %s '.lng('to').' %s', fm_enc($copy), fm_enc($msg_from))); + } elseif ($rename === null) { + fm_set_msg(lng('File or folder with this path already exists'), 'alert'); + } else { + fm_set_msg(sprintf(lng('Error while moving from').' %s '.lng('to').' %s', fm_enc($copy), fm_enc($msg_from)), 'error'); + } + } else { // Not move and to != from so copy with original name + if (fm_rcopy($from, $dest)) { + fm_set_msg(sprintf(lng('Copied from').' %s '.lng('to').' %s', fm_enc($copy), fm_enc($msg_from))); + } else { + fm_set_msg(sprintf(lng('Error while copying from').' %s '.lng('to').' %s', fm_enc($copy), fm_enc($msg_from)), 'error'); + } + } + } else { + if (!$move){ //Not move and to = from so duplicate + $msg_from = trim(FM_PATH . '/' . basename($from), '/'); + $fn_parts = pathinfo($from); + $extension_suffix = ''; + if(!is_dir($from)){ + $extension_suffix = '.'.$fn_parts['extension']; + } + //Create new name for duplicate + $fn_duplicate = $fn_parts['dirname'].'/'.$fn_parts['filename'].'-'.date('YmdHis').$extension_suffix; + $loop_count = 0; + $max_loop = 1000; + // Check if a file with the duplicate name already exists, if so, make new name (edge case...) + while(file_exists($fn_duplicate) & $loop_count < $max_loop){ + $fn_parts = pathinfo($fn_duplicate); + $fn_duplicate = $fn_parts['dirname'].'/'.$fn_parts['filename'].'-copy'.$extension_suffix; + $loop_count++; + } + if (fm_rcopy($from, $fn_duplicate, False)) { + fm_set_msg(sprintf('Copyied from %s to %s', fm_enc($copy), fm_enc($fn_duplicate))); + } else { + fm_set_msg(sprintf('Error while copying from %s to %s', fm_enc($copy), fm_enc($fn_duplicate)), 'error'); + } + } + else{ + fm_set_msg(lng('Paths must be not equal'), 'alert'); + } + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Mass copy files/ folders +if (isset($_POST['file'], $_POST['copy_to'], $_POST['finish']) && !FM_READONLY) { + // from + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + // to + $copy_to_path = FM_ROOT_PATH; + $copy_to = fm_clean_path($_POST['copy_to']); + if ($copy_to != '') { + $copy_to_path .= '/' . $copy_to; + } + if ($path == $copy_to_path) { + fm_set_msg(lng('Paths must be not equal'), 'alert'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + if (!is_dir($copy_to_path)) { + if (!fm_mkdir($copy_to_path, true)) { + fm_set_msg('Unable to create destination folder', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + } + // move? + $move = isset($_POST['move']); + // copy/move + $errors = 0; + $files = $_POST['file']; + if (is_array($files) && count($files)) { + foreach ($files as $f) { + if ($f != '') { + // abs path from + $from = $path . '/' . $f; + // abs path to + $dest = $copy_to_path . '/' . $f; + // do + if ($move) { + $rename = fm_rename($from, $dest); + if ($rename === false) { + $errors++; + } + } else { + if (!fm_rcopy($from, $dest)) { + $errors++; + } + } + } + } + if ($errors == 0) { + $msg = $move ? 'Selected files and folders moved' : 'Selected files and folders copied'; + fm_set_msg($msg); + } else { + $msg = $move ? 'Error while moving items' : 'Error while copying items'; + fm_set_msg($msg, 'error'); + } + } else { + fm_set_msg(lng('Nothing selected'), 'alert'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Rename +if (isset($_GET['ren'], $_GET['to']) && !FM_READONLY) { + // old name + $old = $_GET['ren']; + $old = fm_clean_path($old); + $old = str_replace('/', '', $old); + // new name + $new = $_GET['to']; + $new = fm_clean_path(strip_tags($new)); + $new = str_replace('/', '', $new); + // path + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + // rename + if (fm_isvalid_filename($new) && $old != '' && $new != '') { + if (fm_rename($path . '/' . $old, $path . '/' . $new)) { + fm_set_msg(sprintf(lng('Renamed from').' %s '. lng('to').' %s', fm_enc($old), fm_enc($new))); + } else { + fm_set_msg(sprintf(lng('Error while renaming from').' %s '. lng('to').' %s', fm_enc($old), fm_enc($new)), 'error'); + } + } else { + fm_set_msg(lng('Invalid characters in file name'), 'error'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Download +if (isset($_GET['dl'])) { + $dl = $_GET['dl']; + $dl = fm_clean_path($dl); + $dl = str_replace('/', '', $dl); + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + if ($dl != '' && is_file($path . '/' . $dl)) { + fm_download_file($path . '/' . $dl, $dl, 1024); + exit; + } else { + fm_set_msg(lng('File not found'), 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } +} + +// Upload +if (!empty($_FILES) && !FM_READONLY) { + $override_file_name = false; + $f = $_FILES; + $path = FM_ROOT_PATH; + $ds = DIRECTORY_SEPARATOR; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + $errors = 0; + $uploads = 0; + $allowed = (FM_UPLOAD_EXTENSION) ? explode(',', FM_UPLOAD_EXTENSION) : false; + $response = array ( + 'status' => 'error', + 'info' => 'Oops! Try again' + ); + + $filename = $f['file']['name']; + $tmp_name = $f['file']['tmp_name']; + $ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); + $isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true; + + if(!fm_isvalid_filename($filename) && !fm_isvalid_filename($_REQUEST['fullpath'])) { + $response = array ( + 'status' => 'error', + 'info' => "Invalid File name!", + ); + echo json_encode($response); exit(); + } + + $targetPath = $path . $ds; + if ( is_writable($targetPath) ) { + $fullPath = $path . '/' . $_REQUEST['fullpath']; + $folder = substr($fullPath, 0, strrpos($fullPath, "/")); + + if(file_exists ($fullPath) && !$override_file_name) { + $ext_1 = $ext ? '.'.$ext : ''; + $fullPath = str_replace($ext_1, '', $fullPath) .'_'. date('ymdHis'). $ext_1; + } + + if (!is_dir($folder)) { + $old = umask(0); + mkdir($folder, 0777, true); + umask($old); + } + + if (empty($f['file']['error']) && !empty($tmp_name) && $tmp_name != 'none' && $isFileAllowed) { + if (move_uploaded_file($tmp_name, $fullPath)) { + // Be sure that the file has been uploaded + if ( file_exists($fullPath) ) { + $response = array ( + 'status' => 'success', + 'info' => "file upload successful" + ); + } else { + $response = array ( + 'status' => 'error', + 'info' => 'Couldn\'t upload the requested file.' + ); + } + } else { + $response = array ( + 'status' => 'error', + 'info' => "Error while uploading files. Uploaded files $uploads", + ); + } + } + } else { + $response = array ( + 'status' => 'error', + 'info' => 'The specified folder for upload isn\'t writeable.' + ); + } + // Return the response + echo json_encode($response); + exit(); +} + +// Mass deleting +if (isset($_POST['group'], $_POST['delete']) && !FM_READONLY) { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + $errors = 0; + $files = $_POST['file']; + if (is_array($files) && count($files)) { + foreach ($files as $f) { + if ($f != '') { + $new_path = $path . '/' . $f; + if (!fm_rdelete($new_path)) { + $errors++; + } + } + } + if ($errors == 0) { + fm_set_msg(lng('Selected files and folder deleted')); + } else { + fm_set_msg(lng('Error while deleting items'), 'error'); + } + } else { + fm_set_msg(lng('Nothing selected'), 'alert'); + } + + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Pack files +if (isset($_POST['group']) && (isset($_POST['zip']) || isset($_POST['tar'])) && !FM_READONLY) { + $path = FM_ROOT_PATH; + $ext = 'zip'; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + //set pack type + $ext = isset($_POST['tar']) ? 'tar' : 'zip'; + + + if (($ext == "zip" && !class_exists('ZipArchive')) || ($ext == "tar" && !class_exists('PharData'))) { + fm_set_msg(lng('Operations with archives are not available'), 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + + $files = $_POST['file']; + if (!empty($files)) { + chdir($path); + + if (count($files) == 1) { + $one_file = reset($files); + $one_file = basename($one_file); + $zipname = $one_file . '_' . date('ymd_His') . '.'.$ext; + } else { + $zipname = 'archive_' . date('ymd_His') . '.'.$ext; + } + + if($ext == 'zip') { + $zipper = new FM_Zipper(); + $res = $zipper->create($zipname, $files); + } elseif ($ext == 'tar') { + $tar = new FM_Zipper_Tar(); + $res = $tar->create($zipname, $files); + } + + if ($res) { + fm_set_msg(sprintf(lng('Archive').' %s '.lng('Created'), fm_enc($zipname))); + } else { + fm_set_msg(lng('Archive not created'), 'error'); + } + } else { + fm_set_msg(lng('Nothing selected'), 'alert'); + } + + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Unpack +if (isset($_GET['unzip']) && !FM_READONLY) { + $unzip = $_GET['unzip']; + $unzip = fm_clean_path($unzip); + $unzip = str_replace('/', '', $unzip); + $isValid = false; + + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + if ($unzip != '' && is_file($path . '/' . $unzip)) { + $zip_path = $path . '/' . $unzip; + $ext = pathinfo($zip_path, PATHINFO_EXTENSION); + $isValid = true; + } else { + fm_set_msg(lng('File not found'), 'error'); + } + + + if (($ext == "zip" && !class_exists('ZipArchive')) || ($ext == "tar" && !class_exists('PharData'))) { + fm_set_msg(lng('Operations with archives are not available'), 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + + if ($isValid) { + //to folder + $tofolder = ''; + if (isset($_GET['tofolder'])) { + $tofolder = pathinfo($zip_path, PATHINFO_FILENAME); + if (fm_mkdir($path . '/' . $tofolder, true)) { + $path .= '/' . $tofolder; + } + } + + if($ext == "zip") { + $zipper = new FM_Zipper(); + $res = $zipper->unzip($zip_path, $path); + } elseif ($ext == "tar") { + try { + $gzipper = new PharData($zip_path); + if (@$gzipper->extractTo($path,null, true)) { + $res = true; + } else { + $res = false; + } + } catch (Exception $e) { + //TODO:: need to handle the error + $res = true; + } + } + + if ($res) { + fm_set_msg(lng('Archive unpacked')); + } else { + fm_set_msg(lng('Archive not unpacked'), 'error'); + } + + } else { + fm_set_msg(lng('File not found'), 'error'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Change Perms (not for Windows) +if (isset($_POST['chmod']) && !FM_READONLY && !FM_IS_WIN) { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + $file = $_POST['chmod']; + $file = fm_clean_path($file); + $file = str_replace('/', '', $file); + if ($file == '' || (!is_file($path . '/' . $file) && !is_dir($path . '/' . $file))) { + fm_set_msg(lng('File not found'), 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + + $mode = 0; + if (!empty($_POST['ur'])) { + $mode |= 0400; + } + if (!empty($_POST['uw'])) { + $mode |= 0200; + } + if (!empty($_POST['ux'])) { + $mode |= 0100; + } + if (!empty($_POST['gr'])) { + $mode |= 0040; + } + if (!empty($_POST['gw'])) { + $mode |= 0020; + } + if (!empty($_POST['gx'])) { + $mode |= 0010; + } + if (!empty($_POST['or'])) { + $mode |= 0004; + } + if (!empty($_POST['ow'])) { + $mode |= 0002; + } + if (!empty($_POST['ox'])) { + $mode |= 0001; + } + + if (@chmod($path . '/' . $file, $mode)) { + fm_set_msg(lng('Permissions changed')); + } else { + fm_set_msg(lng('Permissions not changed'), 'error'); + } + + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +/*************************** /ACTIONS ***************************/ + +// get current path +$path = FM_ROOT_PATH; +if (FM_PATH != '') { + $path .= '/' . FM_PATH; +} + +// check path +if (!is_dir($path)) { + fm_redirect(FM_SELF_URL . '?p='); +} + +// get parent folder +$parent = fm_get_parent_path(FM_PATH); + +$objects = is_readable($path) ? scandir($path) : array(); +$folders = array(); +$files = array(); +$current_path = array_slice(explode("/",$path), -1)[0]; +if (is_array($objects) && fm_is_exclude_items($current_path)) { + foreach ($objects as $file) { + if ($file == '.' || $file == '..') { + continue; + } + if (!FM_SHOW_HIDDEN && substr($file, 0, 1) === '.') { + continue; + } + $new_path = $path . '/' . $file; + if (@is_file($new_path) && fm_is_exclude_items($file)) { + $files[] = $file; + } elseif (@is_dir($new_path) && $file != '.' && $file != '..' && fm_is_exclude_items($file)) { + $folders[] = $file; + } + } +} + +if (!empty($files)) { + natcasesort($files); +} +if (!empty($folders)) { + natcasesort($folders); +} + +// upload form +if (isset($_GET['upload']) && !FM_READONLY) { + fm_show_header(); // HEADER + fm_show_nav_path(FM_PATH); // current path + //get the allowed file extensions + function getUploadExt() { + $extArr = explode(',', FM_UPLOAD_EXTENSION); + if(FM_UPLOAD_EXTENSION && $extArr) { + array_walk($extArr, function(&$x) {$x = ".$x";}); + return implode(',', $extArr); + } + return ''; + } + ?> + + +
+ +
+
+ +
+
+

+ + : +

+ +
+ + +
+ +
+
+ + +
+
+
+ + + +
+
+
+
+
+
+
+ + + ' . PHP_EOL; + } + ?> +

: , ', $copy_files) ?>

+

:
+ + / +

+

+

+   + +

+ +
+
+
+ +
+

Copying

+

+ Source path:
+ Destination folder: +

+

+ Copy   + Move   + Cancel +

+

+ +
+ + +
+
+
+ + +
+
+
+ +
+ +
+ +
+
+ +
+ +
+
+ + +
+
+
+ +
+ +
+
+ + +
+
+
+ +
+ +
+
+ + +
+
+
+ +
+ +
+
+ + +
+
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ + +
+
+
+ + +
+
+
+
+

Tiny File Manager

+

Author: Prasath Mani

+

Mail Us: ccpprogrammers[at]gmail.com

+
+
+
+ +
+
+
+ +
+
+
+ +
+
+ +

""

+

+ Full path:
+ File size:
+ MIME-type:
+ + Files in archive:
+ Total size:
+ Size in archive:
+ Compression: %
+ '; + } + // Text info + if ($is_text) { + $is_utf8 = fm_is_utf8($content); + if (function_exists('iconv')) { + if (!$is_utf8) { + $content = iconv(FM_ICONV_INPUT_ENC, 'UTF-8//IGNORE', $content); + } + } + echo 'Charset: ' . ($is_utf8 ? 'utf-8' : '8 bit') . '
'; + } + ?> +

+

+   + +   + +   + +   + + +   + +   + + +

+ '; + } else if($online_viewer == 'microsoft') { + echo ''; + } + } elseif ($is_zip) { + // ZIP content + if ($filenames !== false) { + echo ''; + foreach ($filenames as $fn) { + if ($fn['folder']) { + echo '' . fm_enc($fn['name']) . '
'; + } else { + echo $fn['name'] . ' (' . fm_get_filesize($fn['filesize']) . ')
'; + } + } + echo '
'; + } else { + echo '

'.lng('Error while fetching archive info').'

'; + } + } elseif ($is_image) { + // Image content + if (in_array($ext, array('gif', 'jpg', 'jpeg', 'png', 'bmp', 'ico', 'svg', 'webp', 'avif'))) { + echo '

'; + } + } elseif ($is_audio) { + // Audio content + echo '

'; + } elseif ($is_video) { + // Video content + echo '
'; + } elseif ($is_text) { + if (FM_USE_HIGHLIGHTJS) { + // highlight + $hljs_classes = array( + 'shtml' => 'xml', + 'htaccess' => 'apache', + 'phtml' => 'php', + 'lock' => 'json', + 'svg' => 'xml', + ); + $hljs_class = isset($hljs_classes[$ext]) ? 'lang-' . $hljs_classes[$ext] : 'lang-' . $ext; + if (empty($ext) || in_array(strtolower($file), fm_get_text_names()) || preg_match('#\.min\.(css|js)$#i', $file)) { + $hljs_class = 'nohighlight'; + } + $content = '
' . fm_enc($content) . '
'; + } elseif (in_array($ext, array('php', 'php4', 'php5', 'phtml', 'phps'))) { + // php highlight + $content = highlight_string($content, true); + } else { + $content = '
' . fm_enc($content) . '
'; + } + echo $content; + } + ?> +
+
+ +
+
+
+ +
+
+ + + + + + + + + + + +
+
+ ' . htmlspecialchars($content) . ''; + } elseif ($is_text) { + echo '
' . htmlspecialchars($content) . '
'; + } else { + fm_set_msg(lng('FILE EXTENSION HAS NOT SUPPORTED'), 'error'); + } + ?> +
+ +
+
+
+ +
+
+

+ Full path:
+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

+   + +

+
+
+
+
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + '?'); + $group = array('name' => '?'); + } + ?> + + + + + + + + + + + + + '?'); + $group = array('name' => '?'); + } + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
..
+
+ + +
+
+
+ ' . readlink($path . '/' . $f) . '' : '') ?>
+
"> + + + + + + + + +
+
+ + +
+
+
+ + + + + + + + + ' . readlink($path . '/' . $f) . '' : '') ?> +
+
"> + + + + + + + + + + + +
+ '.fm_get_filesize($all_files_size).'' ?> + '.$num_files.'' ?> + '.$num_folders.'' ?> + '.fm_get_filesize(@disk_free_space($path)) .' '.lng('FreeOf').' '.fm_get_filesize(@disk_total_space($path)).''; ?> +
+
+ +
+ +
+ +
+ + + + +
+ +
+ += $time1 && $upd) { + return false; + } + } + $ok = copy($f1, $f2); + if ($ok) { + touch($f2, $time1); + } + return $ok; +} + +/** + * Get mime type + * @param string $file_path + * @return mixed|string + */ +function fm_get_mime_type($file_path) +{ + if (function_exists('finfo_open')) { + $finfo = finfo_open(FILEINFO_MIME_TYPE); + $mime = finfo_file($finfo, $file_path); + finfo_close($finfo); + return $mime; + } elseif (function_exists('mime_content_type')) { + return mime_content_type($file_path); + } elseif (!stristr(ini_get('disable_functions'), 'shell_exec')) { + $file = escapeshellarg($file_path); + $mime = shell_exec('file -bi ' . $file); + return $mime; + } else { + return '--'; + } +} + +/** + * HTTP Redirect + * @param string $url + * @param int $code + */ +function fm_redirect($url, $code = 302) +{ + header('Location: ' . $url, true, $code); + exit; +} + +/** + * Path traversal prevention and clean the url + * It replaces (consecutive) occurrences of / and \\ with whatever is in DIRECTORY_SEPARATOR, and processes /. and /.. fine. + * @param $path + * @return string + */ +function get_absolute_path($path) { + $path = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $path); + $parts = array_filter(explode(DIRECTORY_SEPARATOR, $path), 'strlen'); + $absolutes = array(); + foreach ($parts as $part) { + if ('.' == $part) continue; + if ('..' == $part) { + array_pop($absolutes); + } else { + $absolutes[] = $part; + } + } + return implode(DIRECTORY_SEPARATOR, $absolutes); +} + +/** + * Clean path + * @param string $path + * @return string + */ +function fm_clean_path($path, $trim = true) +{ + $path = $trim ? trim($path) : $path; + $path = trim($path, '\\/'); + $path = str_replace(array('../', '..\\'), '', $path); + $path = get_absolute_path($path); + if ($path == '..') { + $path = ''; + } + return str_replace('\\', '/', $path); +} + +/** + * Get parent path + * @param string $path + * @return bool|string + */ +function fm_get_parent_path($path) +{ + $path = fm_clean_path($path); + if ($path != '') { + $array = explode('/', $path); + if (count($array) > 1) { + $array = array_slice($array, 0, -1); + return implode('/', $array); + } + return ''; + } + return false; +} + +/** + * Check file is in exclude list + * @param string $file + * @return bool + */ +function fm_is_exclude_items($file) { + $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); + if (isset($exclude_items) and sizeof($exclude_items)) { + unset($exclude_items); + } + + $exclude_items = FM_EXCLUDE_ITEMS; + if (version_compare(PHP_VERSION, '7.0.0', '<')) { + $exclude_items = unserialize($exclude_items); + } + if (!in_array($file, $exclude_items) && !in_array("*.$ext", $exclude_items)) { + return true; + } + return false; +} + +/** + * get language translations from json file + * @param int $tr + * @return array + */ +function fm_get_translations($tr) { + try { + $content = @file_get_contents('translation.json'); + if($content !== FALSE) { + $lng = json_decode($content, TRUE); + global $lang_list; + foreach ($lng["language"] as $key => $value) + { + $code = $value["code"]; + $lang_list[$code] = $value["name"]; + if ($tr) + $tr[$code] = $value["translation"]; + } + return $tr; + } + + } + catch (Exception $e) { + echo $e; + } +} + +/** + * @param $file + * Recover all file sizes larger than > 2GB. + * Works on php 32bits and 64bits and supports linux + * @return int|string + */ +function fm_get_size($file) +{ + static $iswin; + static $isdarwin; + if (!isset($iswin)) { + $iswin = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN'); + } + if (!isset($isdarwin)) { + $isdarwin = (strtoupper(substr(PHP_OS, 0)) == "DARWIN"); + } + + static $exec_works; + if (!isset($exec_works)) { + $exec_works = (function_exists('exec') && !ini_get('safe_mode') && @exec('echo EXEC') == 'EXEC'); + } + + // try a shell command + if ($exec_works) { + $arg = escapeshellarg($file); + $cmd = ($iswin) ? "for %F in (\"$file\") do @echo %~zF" : ($isdarwin ? "stat -f%z $arg" : "stat -c%s $arg"); + @exec($cmd, $output); + if (is_array($output) && ctype_digit($size = trim(implode("\n", $output)))) { + return $size; + } + } + + // try the Windows COM interface + if ($iswin && class_exists("COM")) { + try { + $fsobj = new COM('Scripting.FileSystemObject'); + $f = $fsobj->GetFile( realpath($file) ); + $size = $f->Size; + } catch (Exception $e) { + $size = null; + } + if (ctype_digit($size)) { + return $size; + } + } + + // if all else fails + return filesize($file); +} + +/** + * Get nice filesize + * @param int $size + * @return string + */ +function fm_get_filesize($size) +{ + $size = (float) $size; + $units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'); + $power = $size > 0 ? floor(log($size, 1024)) : 0; + return sprintf('%s %s', round($size / pow(1024, $power), 2), $units[$power]); +} + +/** + * Get director total size + * @param string $directory + * @return int + */ +function fm_get_directorysize($directory) { + global $calc_folder; + if ($calc_folder==true) { // Slower output + $size = 0; $count= 0; $dirCount= 0; + foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory)) as $file) + if ($file->isFile()) + { $size+=$file->getSize(); + $count++; + } + else if ($file->isDir()) { $dirCount++; } + // return [$size, $count, $dirCount]; + return $size; + } + else return 'Folder'; // Quick output +} + +/** + * Get info about zip archive + * @param string $path + * @return array|bool + */ +function fm_get_zif_info($path, $ext) { + if ($ext == 'zip' && function_exists('zip_open')) { + $arch = zip_open($path); + if ($arch) { + $filenames = array(); + while ($zip_entry = zip_read($arch)) { + $zip_name = zip_entry_name($zip_entry); + $zip_folder = substr($zip_name, -1) == '/'; + $filenames[] = array( + 'name' => $zip_name, + 'filesize' => zip_entry_filesize($zip_entry), + 'compressed_size' => zip_entry_compressedsize($zip_entry), + 'folder' => $zip_folder + //'compression_method' => zip_entry_compressionmethod($zip_entry), + ); + } + zip_close($arch); + return $filenames; + } + } elseif($ext == 'tar' && class_exists('PharData')) { + $archive = new PharData($path); + $filenames = array(); + foreach(new RecursiveIteratorIterator($archive) as $file) { + $parent_info = $file->getPathInfo(); + $zip_name = str_replace("phar://".$path, '', $file->getPathName()); + $zip_name = substr($zip_name, ($pos = strpos($zip_name, '/')) !== false ? $pos + 1 : 0); + $zip_folder = $parent_info->getFileName(); + $zip_info = new SplFileInfo($file); + $filenames[] = array( + 'name' => $zip_name, + 'filesize' => $zip_info->getSize(), + 'compressed_size' => $file->getCompressedSize(), + 'folder' => $zip_folder + ); + } + return $filenames; + } + return false; +} + +/** + * Encode html entities + * @param string $text + * @return string + */ +function fm_enc($text) +{ + return htmlspecialchars($text, ENT_QUOTES, 'UTF-8'); +} + +/** + * Prevent XSS attacks + * @param string $text + * @return string + */ +function fm_isvalid_filename($text) { + return (strpbrk($text, '/?%*:|"<>') === FALSE) ? true : false; +} + +/** + * Save message in session + * @param string $msg + * @param string $status + */ +function fm_set_msg($msg, $status = 'ok') +{ + $_SESSION[FM_SESSION_ID]['message'] = $msg; + $_SESSION[FM_SESSION_ID]['status'] = $status; +} + +/** + * Check if string is in UTF-8 + * @param string $string + * @return int + */ +function fm_is_utf8($string) +{ + return preg_match('//u', $string); +} + +/** + * Convert file name to UTF-8 in Windows + * @param string $filename + * @return string + */ +function fm_convert_win($filename) +{ + if (FM_IS_WIN && function_exists('iconv')) { + $filename = iconv(FM_ICONV_INPUT_ENC, 'UTF-8//IGNORE', $filename); + } + return $filename; +} + +/** + * @param $obj + * @return array + */ +function fm_object_to_array($obj) +{ + if (!is_object($obj) && !is_array($obj)) { + return $obj; + } + if (is_object($obj)) { + $obj = get_object_vars($obj); + } + return array_map('fm_object_to_array', $obj); +} + +/** + * Get CSS classname for file + * @param string $path + * @return string + */ +function fm_get_file_icon_class($path) +{ + // get extension + $ext = strtolower(pathinfo($path, PATHINFO_EXTENSION)); + + switch ($ext) { + case 'ico': + case 'gif': + case 'jpg': + case 'jpeg': + case 'jpc': + case 'jp2': + case 'jpx': + case 'xbm': + case 'wbmp': + case 'png': + case 'bmp': + case 'tif': + case 'tiff': + case 'webp': + case 'avif': + case 'svg': + $img = 'fa fa-picture-o'; + break; + case 'passwd': + case 'ftpquota': + case 'sql': + case 'js': + case 'json': + case 'sh': + case 'config': + case 'twig': + case 'tpl': + case 'md': + case 'gitignore': + case 'c': + case 'cpp': + case 'cs': + case 'py': + case 'rs': + case 'map': + case 'lock': + case 'dtd': + $img = 'fa fa-file-code-o'; + break; + case 'txt': + case 'ini': + case 'conf': + case 'log': + case 'htaccess': + $img = 'fa fa-file-text-o'; + break; + case 'css': + case 'less': + case 'sass': + case 'scss': + $img = 'fa fa-css3'; + break; + case 'bz2': + case 'zip': + case 'rar': + case 'gz': + case 'tar': + case '7z': + case 'xz': + $img = 'fa fa-file-archive-o'; + break; + case 'php': + case 'php4': + case 'php5': + case 'phps': + case 'phtml': + $img = 'fa fa-code'; + break; + case 'htm': + case 'html': + case 'shtml': + case 'xhtml': + $img = 'fa fa-html5'; + break; + case 'xml': + case 'xsl': + $img = 'fa fa-file-excel-o'; + break; + case 'wav': + case 'mp3': + case 'mp2': + case 'm4a': + case 'aac': + case 'ogg': + case 'oga': + case 'wma': + case 'mka': + case 'flac': + case 'ac3': + case 'tds': + $img = 'fa fa-music'; + break; + case 'm3u': + case 'm3u8': + case 'pls': + case 'cue': + case 'xspf': + $img = 'fa fa-headphones'; + break; + case 'avi': + case 'mpg': + case 'mpeg': + case 'mp4': + case 'm4v': + case 'flv': + case 'f4v': + case 'ogm': + case 'ogv': + case 'mov': + case 'mkv': + case '3gp': + case 'asf': + case 'wmv': + $img = 'fa fa-file-video-o'; + break; + case 'eml': + case 'msg': + $img = 'fa fa-envelope-o'; + break; + case 'xls': + case 'xlsx': + case 'ods': + $img = 'fa fa-file-excel-o'; + break; + case 'csv': + $img = 'fa fa-file-text-o'; + break; + case 'bak': + case 'swp': + $img = 'fa fa-clipboard'; + break; + case 'doc': + case 'docx': + case 'odt': + $img = 'fa fa-file-word-o'; + break; + case 'ppt': + case 'pptx': + $img = 'fa fa-file-powerpoint-o'; + break; + case 'ttf': + case 'ttc': + case 'otf': + case 'woff': + case 'woff2': + case 'eot': + case 'fon': + $img = 'fa fa-font'; + break; + case 'pdf': + $img = 'fa fa-file-pdf-o'; + break; + case 'psd': + case 'ai': + case 'eps': + case 'fla': + case 'swf': + $img = 'fa fa-file-image-o'; + break; + case 'exe': + case 'msi': + $img = 'fa fa-file-o'; + break; + case 'bat': + $img = 'fa fa-terminal'; + break; + default: + $img = 'fa fa-info-circle'; + } + + return $img; +} + +/** + * Get image files extensions + * @return array + */ +function fm_get_image_exts() +{ + return array('ico', 'gif', 'jpg', 'jpeg', 'jpc', 'jp2', 'jpx', 'xbm', 'wbmp', 'png', 'bmp', 'tif', 'tiff', 'psd', 'svg', 'webp', 'avif'); +} + +/** + * Get video files extensions + * @return array + */ +function fm_get_video_exts() +{ + return array('avi', 'webm', 'wmv', 'mp4', 'm4v', 'ogm', 'ogv', 'mov', 'mkv'); +} + +/** + * Get audio files extensions + * @return array + */ +function fm_get_audio_exts() +{ + return array('wav', 'mp3', 'ogg', 'm4a'); +} + +/** + * Get text file extensions + * @return array + */ +function fm_get_text_exts() +{ + return array( + 'txt', 'css', 'ini', 'conf', 'log', 'htaccess', 'passwd', 'ftpquota', 'sql', 'js', 'json', 'sh', 'config', + 'php', 'php4', 'php5', 'phps', 'phtml', 'htm', 'html', 'shtml', 'xhtml', 'xml', 'xsl', 'm3u', 'm3u8', 'pls', 'cue', + 'eml', 'msg', 'csv', 'bat', 'twig', 'tpl', 'md', 'gitignore', 'less', 'sass', 'scss', 'c', 'cpp', 'cs', 'py', + 'map', 'lock', 'dtd', 'svg', 'scss', 'asp', 'aspx', 'asx', 'asmx', 'ashx', 'jsx', 'jsp', 'jspx', 'cfm', 'cgi' + ); +} + +/** + * Get mime types of text files + * @return array + */ +function fm_get_text_mimes() +{ + return array( + 'application/xml', + 'application/javascript', + 'application/x-javascript', + 'image/svg+xml', + 'message/rfc822', + ); +} + +/** + * Get file names of text files w/o extensions + * @return array + */ +function fm_get_text_names() +{ + return array( + 'license', + 'readme', + 'authors', + 'contributors', + 'changelog', + ); +} + +/** + * Get online docs viewer supported files extensions + * @return array + */ +function fm_get_onlineViewer_exts() +{ + return array('doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'ai', 'psd', 'dxf', 'xps', 'rar', 'odt', 'ods'); +} + +function fm_get_file_mimes($extension) +{ + $fileTypes['swf'] = 'application/x-shockwave-flash'; + $fileTypes['pdf'] = 'application/pdf'; + $fileTypes['exe'] = 'application/octet-stream'; + $fileTypes['zip'] = 'application/zip'; + $fileTypes['doc'] = 'application/msword'; + $fileTypes['xls'] = 'application/vnd.ms-excel'; + $fileTypes['ppt'] = 'application/vnd.ms-powerpoint'; + $fileTypes['gif'] = 'image/gif'; + $fileTypes['png'] = 'image/png'; + $fileTypes['jpeg'] = 'image/jpg'; + $fileTypes['jpg'] = 'image/jpg'; + $fileTypes['webp'] = 'image/webp'; + $fileTypes['avif'] = 'image/avif'; + $fileTypes['rar'] = 'application/rar'; + + $fileTypes['ra'] = 'audio/x-pn-realaudio'; + $fileTypes['ram'] = 'audio/x-pn-realaudio'; + $fileTypes['ogg'] = 'audio/x-pn-realaudio'; + + $fileTypes['wav'] = 'video/x-msvideo'; + $fileTypes['wmv'] = 'video/x-msvideo'; + $fileTypes['avi'] = 'video/x-msvideo'; + $fileTypes['asf'] = 'video/x-msvideo'; + $fileTypes['divx'] = 'video/x-msvideo'; + + $fileTypes['mp3'] = 'audio/mpeg'; + $fileTypes['mp4'] = 'audio/mpeg'; + $fileTypes['mpeg'] = 'video/mpeg'; + $fileTypes['mpg'] = 'video/mpeg'; + $fileTypes['mpe'] = 'video/mpeg'; + $fileTypes['mov'] = 'video/quicktime'; + $fileTypes['swf'] = 'video/quicktime'; + $fileTypes['3gp'] = 'video/quicktime'; + $fileTypes['m4a'] = 'video/quicktime'; + $fileTypes['aac'] = 'video/quicktime'; + $fileTypes['m3u'] = 'video/quicktime'; + + $fileTypes['php'] = ['application/x-php']; + $fileTypes['html'] = ['text/html']; + $fileTypes['txt'] = ['text/plain']; + //Unknown mime-types should be 'application/octet-stream' + if(empty($fileTypes[$extension])) { + $fileTypes[$extension] = ['application/octet-stream']; + } + return $fileTypes[$extension]; +} + +/** + * This function scans the files and folder recursively, and return matching files + * @param string $dir + * @param string $filter + * @return json + */ +function scan($dir, $filter = '') { + $path = FM_ROOT_PATH.'/'.$dir; + if($dir) { + $ite = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)); + $rii = new RegexIterator($ite, "/(" . $filter . ")/i"); + + $files = array(); + foreach ($rii as $file) { + if (!$file->isDir()) { + $fileName = $file->getFilename(); + $location = str_replace(FM_ROOT_PATH, '', $file->getPath()); + $files[] = array( + "name" => $fileName, + "type" => "file", + "path" => $location, + ); + } + } + return $files; + } +} + +/* +Parameters: downloadFile(File Location, File Name, +max speed, is streaming +If streaming - videos will show as videos, images as images +instead of download prompt +https://stackoverflow.com/a/13821992/1164642 +*/ + +function fm_download_file($fileLocation, $fileName, $chunkSize = 1024) +{ + if (connection_status() != 0) + return (false); + $extension = pathinfo($fileName, PATHINFO_EXTENSION); + + $contentType = fm_get_file_mimes($extension); + header("Cache-Control: public"); + header("Content-Transfer-Encoding: binary\n"); + header('Content-Type: $contentType'); + + $contentDisposition = 'attachment'; + + + if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) { + $fileName = preg_replace('/\./', '%2e', $fileName, substr_count($fileName, '.') - 1); + header("Content-Disposition: $contentDisposition;filename=\"$fileName\""); + } else { + header("Content-Disposition: $contentDisposition;filename=\"$fileName\""); + } + + header("Accept-Ranges: bytes"); + $range = 0; + $size = filesize($fileLocation); + + if (isset($_SERVER['HTTP_RANGE'])) { + list($a, $range) = explode("=", $_SERVER['HTTP_RANGE']); + str_replace($range, "-", $range); + $size2 = $size - 1; + $new_length = $size - $range; + header("HTTP/1.1 206 Partial Content"); + header("Content-Length: $new_length"); + header("Content-Range: bytes $range$size2/$size"); + } else { + $size2 = $size - 1; + header("Content-Range: bytes 0-$size2/$size"); + header("Content-Length: " . $size); + } + + if ($size == 0) { + die('Zero byte file! Aborting download'); + } + @ini_set('magic_quotes_runtime', 0); + $fp = fopen("$fileLocation", "rb"); + + fseek($fp, $range); + + while (!feof($fp) and (connection_status() == 0)) { + set_time_limit(0); + print(@fread($fp, 1024*$chunkSize)); + flush(); + ob_flush(); + // sleep(1); + } + fclose($fp); + + return ((connection_status() == 0) and !connection_aborted()); +} + +function fm_get_theme() { + $result = ''; + if(FM_THEME == "dark") { + $result = "text-white bg-dark"; + } + return $result; +} + +/** + * Class to work with zip files (using ZipArchive) + */ +class FM_Zipper +{ + private $zip; + + public function __construct() + { + $this->zip = new ZipArchive(); + } + + /** + * Create archive with name $filename and files $files (RELATIVE PATHS!) + * @param string $filename + * @param array|string $files + * @return bool + */ + public function create($filename, $files) + { + $res = $this->zip->open($filename, ZipArchive::CREATE); + if ($res !== true) { + return false; + } + if (is_array($files)) { + foreach ($files as $f) { + if (!$this->addFileOrDir($f)) { + $this->zip->close(); + return false; + } + } + $this->zip->close(); + return true; + } else { + if ($this->addFileOrDir($files)) { + $this->zip->close(); + return true; + } + return false; + } + } + + /** + * Extract archive $filename to folder $path (RELATIVE OR ABSOLUTE PATHS) + * @param string $filename + * @param string $path + * @return bool + */ + public function unzip($filename, $path) + { + $res = $this->zip->open($filename); + if ($res !== true) { + return false; + } + if ($this->zip->extractTo($path)) { + $this->zip->close(); + return true; + } + return false; + } + + /** + * Add file/folder to archive + * @param string $filename + * @return bool + */ + private function addFileOrDir($filename) + { + if (is_file($filename)) { + return $this->zip->addFile($filename); + } elseif (is_dir($filename)) { + return $this->addDir($filename); + } + return false; + } + + /** + * Add folder recursively + * @param string $path + * @return bool + */ + private function addDir($path) + { + if (!$this->zip->addEmptyDir($path)) { + return false; + } + $objects = scandir($path); + if (is_array($objects)) { + foreach ($objects as $file) { + if ($file != '.' && $file != '..') { + if (is_dir($path . '/' . $file)) { + if (!$this->addDir($path . '/' . $file)) { + return false; + } + } elseif (is_file($path . '/' . $file)) { + if (!$this->zip->addFile($path . '/' . $file)) { + return false; + } + } + } + } + return true; + } + return false; + } +} + +/** + * Class to work with Tar files (using PharData) + */ +class FM_Zipper_Tar +{ + private $tar; + + public function __construct() + { + $this->tar = null; + } + + /** + * Create archive with name $filename and files $files (RELATIVE PATHS!) + * @param string $filename + * @param array|string $files + * @return bool + */ + public function create($filename, $files) + { + $this->tar = new PharData($filename); + if (is_array($files)) { + foreach ($files as $f) { + if (!$this->addFileOrDir($f)) { + return false; + } + } + return true; + } else { + if ($this->addFileOrDir($files)) { + return true; + } + return false; + } + } + + /** + * Extract archive $filename to folder $path (RELATIVE OR ABSOLUTE PATHS) + * @param string $filename + * @param string $path + * @return bool + */ + public function unzip($filename, $path) + { + $res = $this->tar->open($filename); + if ($res !== true) { + return false; + } + if ($this->tar->extractTo($path)) { + return true; + } + return false; + } + + /** + * Add file/folder to archive + * @param string $filename + * @return bool + */ + private function addFileOrDir($filename) + { + if (is_file($filename)) { + try { + $this->tar->addFile($filename); + return true; + } catch (Exception $e) { + return false; + } + } elseif (is_dir($filename)) { + return $this->addDir($filename); + } + return false; + } + + /** + * Add folder recursively + * @param string $path + * @return bool + */ + private function addDir($path) + { + $objects = scandir($path); + if (is_array($objects)) { + foreach ($objects as $file) { + if ($file != '.' && $file != '..') { + if (is_dir($path . '/' . $file)) { + if (!$this->addDir($path . '/' . $file)) { + return false; + } + } elseif (is_file($path . '/' . $file)) { + try { + $this->tar->addFile($path . '/' . $file); + } catch (Exception $e) { + return false; + } + } + } + } + return true; + } + return false; + } +} + + + +/** + * Save Configuration + */ +class FM_Config +{ + var $data; + + function __construct() + { + global $root_path, $root_url, $CONFIG; + $fm_url = $root_url.$_SERVER["PHP_SELF"]; + $this->data = array( + 'lang' => 'en', + 'error_reporting' => true, + 'show_hidden' => true + ); + $data = false; + if (strlen($CONFIG)) { + $data = fm_object_to_array(json_decode($CONFIG)); + } else { + $msg = 'Tiny File Manager
Error: Cannot load configuration'; + if (substr($fm_url, -1) == '/') { + $fm_url = rtrim($fm_url, '/'); + $msg .= '
'; + $msg .= '
Seems like you have a trailing slash on the URL.'; + $msg .= '
Try this link: ' . $fm_url . ''; + } + die($msg); + } + if (is_array($data) && count($data)) $this->data = $data; + else $this->save(); + } + + function save() + { + $fm_file = __FILE__; + $var_name = '$CONFIG'; + $var_value = var_export(json_encode($this->data), true); + $config_string = " + + ' . $_SESSION[FM_SESSION_ID]['message'] . '

'; + unset($_SESSION[FM_SESSION_ID]['message']); + unset($_SESSION[FM_SESSION_ID]['status']); + } +} + +/** + * Show page header in Login Form + */ +function fm_show_header_login() +{ + $sprites_ver = '20160315'; + header("Content-Type: text/html; charset=utf-8"); + header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); + header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); + header("Pragma: no-cache"); + + global $lang, $root_url, $favicon_path; + ?> + + + + + + + + + + '; } ?> + <?php echo fm_enc(APP_TITLE) ?> + + + + "> +
+ + +
+ + + + + + + + + + + + + + + '; } ?> + <?php echo fm_enc(APP_TITLE) ?> + + + + + + + + + + + + "> +
+ + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + \ No newline at end of file diff --git a/Application/Core/ViewConfig.php b/Application/Core/ViewConfig.php old mode 100644 new mode 100755 index 3b27b28..5968cd7 --- a/Application/Core/ViewConfig.php +++ b/Application/Core/ViewConfig.php @@ -13,8 +13,16 @@ * You should have received a copy of the GNU General Public License along with this program; if not, see */ -namespace VanillaThunder\TinymceModule\Application\Core; +namespace VanillaThunder\TinyMCE\Application\Core; use \OxidEsales\Eshop\Core\Registry; +use OxidEsales\Eshop\Core\UtilsServer; + +/** funtion for adding quotes to config variables + * @param $string + * @return string + */ +function q($string) { return '"'.addslashes($string).'"'; } + /** * ViewConfig class wrapper for TinyMCE module. * @@ -25,74 +33,97 @@ class ViewConfig extends ViewConfig_parent public function loadTinyMce() { $cfg = Registry::getConfig(); - $oLang = Registry::getLang(); - if (!in_array($this->getActiveClassName(), $cfg->getConfigParam("aTinyMCE_classes"))) { - return false; - } - $aPlainCmsPages = $cfg->getConfigParam("aTinyMCE_plaincms"); + // is tinymce enabled for current controller? + $aEnabledClasses = $cfg->getConfigParam("aTinyMCE_classes") ?? []; + if (!in_array($this->getActiveClassName(), $aEnabledClasses)) return ''; + + $oLang = Registry::getLang(); + + // filter plain cms pages $oEditObject = $cfg->getActiveView()->getViewDataElement("edit"); $sCoreTableName = $oEditObject->getCoreTableName(); - if ($sCoreTableName === "oxcontents" && !in_array($oEditObject->getLoadUd(), $aPlainCmsPages)) { + $aPlainCmsPages = $cfg->getConfigParam("aTinyMCE_plaincms") ?? []; + if ($sCoreTableName === "oxcontents" && in_array($oEditObject->getLoadId(), $aPlainCmsPages)) { return $oLang->translateString("BLA_TINYMCE_PLAINCMS"); } - $blFilemanager = false; //$cfg->getConfigParam("blTinyMCE_filemanager"); - // @todo: $blFilemanager wiederherstellen + // ******************** TinyMCE Config ******************** - // processing editor config & other stuff - $sLang = $oLang->getLanguageAbbr($oLang->getTplLanguage()); - // array to assign shop lang abbreviations to lang file names of tinymce: shopLang => langfile (without .js ) + // array to assign shop lang abbreviations to lang files of tinymce: shopLang => langfile (without .js ) $aLang = array( "cs" => "cs", "da" => "da", "de" => "de", + "es" => "es_419", "fr" => "fr_FR", - "it" => "it", + "it" => "it_IT", "nl" => "nl", "ru" => "ru" ); + $sLang = $aLang[$oLang->getLanguageAbbr($oLang->getTplLanguage())] ?? "en"; - // default config + + // processing editor config & other stuff + + // default config, updated on 2021-10-10 according to $aConfig = array( - 'force_br_newlines' => 'false', - 'force_p_newlines' => 'false', - 'forced_root_block' => '""', + // integration options https://www.tiny.cloud/docs/configure/integration-and-setup/ + // 'auto_focus' => '', // don't think we need me, maybe for cms pages? + 'base_url' => q($this->getBaseDir().'modules/vt/TinyMCE/out/tinymce/'), + 'cache_suffix' => q('?v=20211010'), 'selector' => '"textarea:not(.mceNoEditor)"', - 'language' => '"' . (in_array($sLang, $aLang) ? $aLang[$sLang] : 'en') . '"', + + // gui options https://www.tiny.cloud/docs/configure/editor-appearance/ + 'contextmenu' => 'false', q("link linkchecker image imagetools table"), + 'min_height' => 350, + 'max_height' => q('90%'), + 'max_width' => q('90%'), + 'menubar' => 'false', + 'toolbar_sticky' => 'true', + + // content appearance https://www.tiny.cloud/docs/configure/content-appearance/ + 'content_css' => q('/out/wave/src/css/styles.min.css'), // hardcoded, for testing purposes + + // content filtering https://www.tiny.cloud/docs/configure/content-filtering/ + 'entity_encoding' => q('raw'), + 'protect' => '[ /\[\{((?!\}\]).)+\}\]/gm ]', // holy shit, this is like Weihnachten and Geburtstag all at once + + // content formatting https://www.tiny.cloud/docs/configure/content-formatting/ + + // localization https://www.tiny.cloud/docs/configure/localization/ + 'language' => q($sLang), + + // URL handling https://www.tiny.cloud/docs/configure/url-handling/ + 'document_base_url' => q($this->getBaseDir()), + 'relative_urls' => 'true', + + // plugins + 'image_advtab' => 'true' + + +/* + // old //'spellchecker_language' => '"' . (in_array($sLang, $aLang) ? $aLang[$sLang] : 'en') . '"', 'nowrap' => 'false', - 'entity_encoding' => '"raw"', // http://www.tinymce.com/wiki.php/Configuration:entity_encoding - 'height' => 300, - 'menubar' => 'false', - 'document_base_url' => '"' . $this->getBaseDir() . '"', // http://www.tinymce.com/wiki.php/Configuration:document_base_url - 'relative_urls' => 'false', // http://www.tinymce.com/wiki.php/Configuration:relative_urls 'plugin_preview_width' => 'window.innerWidth', 'plugin_preview_height' => 'window.innerHeight-90', 'code_dialog_width' => 'window.innerWidth-50', 'code_dialog_height' => 'window.innerHeight-130', - 'image_advtab' => 'true', 'imagetools_toolbar' => '"rotateleft rotateright | flipv fliph | editimage imageoptions"', 'moxiemanager_fullscreen' => 'true', 'insertdatetime_formats' => '[ "%d.%m.%Y", "%H:%M" ]', 'nonbreaking_force_tab' => 'true', // http://www.tinymce.com/wiki.php/Plugin:nonbreaking - 'autoresize_max_height' => '400', 'urlconverter_callback' => '"urlconverter"', 'filemanager_access_key' => '"' . md5($_SERVER['DOCUMENT_ROOT']) . '"', 'tinymcehelper' => '"' . $this->getSelfActionLink() . 'renderPartial=1"' + */ ); - if ($blFilemanager) { - $aDefaultConfig['external_filemanager_path'] = '"../modules/bla/bla-tinymce/fileman/"'; - $aDefaultConfig['filemanager_access_key'] = '"' . md5($_SERVER['HTTP_HOST']) . '"'; - $oUS = Registry::get("oxUtilsServer"); - $oUS->setOxCookie("filemanagerkey", md5($_SERVER['DOCUMENT_ROOT'] . $oUS->getOxCookie("admin_sid"))); - } - //merging with onfig override $aOverrideCfg = $this->_getTinyCustConfig(); if (!empty($aOverrideCfg) && is_array($aOverrideCfg)) { @@ -102,17 +133,15 @@ class ViewConfig extends ViewConfig_parent // default plugins and their buttons $aPlugins = array( - 'advlist' => '', // '' = plugin has no buttons + //'advlist' => '', // '' = plugin has no buttons 'anchor' => 'anchor', 'autolink' => '', 'autoresize' => '', 'charmap' => 'charmap', 'code' => 'code', - 'colorpicker' => '', 'hr' => 'hr', 'image' => 'image', - 'imagetools' => '', - 'insertdatetime' => 'insertdatetime', + // 'imagetools' => '', // das hier klingt sehr kompliziert 'link' => 'link unlink', 'lists' => '', 'media' => 'media', @@ -120,11 +149,10 @@ class ViewConfig extends ViewConfig_parent 'pagebreak' => 'pagebreak', 'paste' => 'pastetext', 'preview' => 'preview', + 'quickbars' => '',//'quicklink quickimage quicktable', 'searchreplace' => 'searchreplace', 'table' => 'table', - 'textcolor' => 'forecolor backcolor', - 'visualblocks' => '', - //'visualchars' => 'visualchars', + 'visualblocks' => 'visualblocks', 'wordcount' => '', 'oxfullscreen' => 'fullscreen', //custom fullscreen plugin //'oxwidget' => 'widget' @@ -132,8 +160,8 @@ class ViewConfig extends ViewConfig_parent ); // plugins for newsletter emails - if ($this->getActiveClassName() == "newsletter_main") { - $aPlugins["legacyoutput"] = "false"; + if ($this->getActiveClassName() === "newsletter_main") { + $aPlugins["legacyoutput"] = ""; $aPlugins["fullpage"] = "fullpage"; } @@ -156,20 +184,21 @@ class ViewConfig extends ViewConfig_parent 'out/plugins/oxfullscreen/plugin.js' ) . '" '; //$aConfig['external_plugins'] .= ', "oxwidget":"' . $this->getModuleUrl('bla-tinymce', 'plugins/oxwidget/plugin.js') . '" '; - if ($blFilemanager) { - $aConfig['external_plugins'] .= ',"roxy":"' . $this->getModuleUrl( + + + $blFilemanager = $cfg->getConfigParam("blTinyMCE_filemanager"); + // @todo: $blFilemanager wiederherstellen + if ($blFilemanager) + { + $aConfig['filemanager_url'] = q(str_replace('&','&',$this->getSslSelfLink())."cl=tinyfilemanager"); + $sFilemanagerKey = md5_file(Registry::getConfig()->getConfigParam("sShopDir")."/config.inc.php"); + //$aConfig['filemanager_access_key'] = q($sFilemanagerKey); + Registry::get(UtilsServer::class)->setOxCookie("filemanagerkey", $sFilemanagerKey); + + $aConfig['external_plugins'] .= ',"roxy":' . q($this->getModuleUrl( 'vt-tinymce', 'out/plugins/roxy/plugin.js' - ) . '" '; - } - - $blN1ED = false; - if ($blN1ED) { - $aConfig['apiKey'] = "'MK2RDFLT'"; - $aConfig['external_plugins'] .= ',"n1ed":"' . $this->getModuleUrl( - 'vt-tinymce', - 'out/plugins/n1ed/plugin.js' - ) . '" '; + )); } //$aConfig['external_plugins'] .= ',"oxgetseourl":"' . $this->getModuleUrl('bla-tinymce', 'plugins/oxgetseourl/plugin.js') . '" '; @@ -184,8 +213,9 @@ class ViewConfig extends ViewConfig_parent // default toolbar buttons $aDefaultButtons = array( - "undo redo |", + "undo redo", //"cut copy paste", + "forecolor backcolor", "bold italic underline strikethrough", "alignleft aligncenter alignright alignjustify", "bullist numlist", @@ -195,10 +225,10 @@ class ViewConfig extends ViewConfig_parent "superscript", "formatselect", //"fontselect", - "fontsizeselect", + //"fontsizeselect", "removeformat" ); - $aOverrideButtons = Registry::getConfig()->getConfigParam("aTinyMCE_buttons"); + $aOverrideButtons = $cfg->getConfigParam("aTinyMCE_buttons"); $aButtons = (empty($aOverrideButtons) || !is_array($aOverrideButtons)) ? $aDefaultButtons : $aOverrideButtons; // plugin buttons @@ -208,7 +238,7 @@ class ViewConfig extends ViewConfig_parent $aCustomButtons = $this->_getTinyToolbarControls(); $aButtons = array_merge(array_filter($aButtons), [" | "], array_filter($aPluginButtons), array_filter($aCustomButtons)); - $aConfig['toolbar'] = '["' . implode(" ", $aButtons) . '"]'; + $aConfig['toolbar'] = '["' . implode(" | ", $aButtons) . '"]'; // compile the whole config stuff diff --git a/Application/Core/security.inc.php b/Application/Core/config.php old mode 100644 new mode 100755 similarity index 100% rename from Application/Core/security.inc.php rename to Application/Core/config.php diff --git a/Application/controllers/admin/tinymcehelper.php b/Application/controllers/admin/tinymcehelper.php deleted file mode 100644 index 48e66ab..0000000 --- a/Application/controllers/admin/tinymcehelper.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * Marat Bedoev - */ - -class tinymcehelper extends oxAdminView -{ - protected $_errors; - protected $_content; - - public function render() - { - $oOutput = oxRegistry::get("oxOutput"); - $oOutput->setCharset($this->getCharSet()); - $oOutput->setOutputFormat(oxOutput::OUTPUT_FORMAT_JSON); - $oOutput->sendHeaders(); - $oOutput->output('errors', $this->_errors); - $oOutput->output('content', $this->_content); - exit; - } - - public function search() - { - $cfg = oxRegistry::getConfig(); - - $what = $cfg->getRequestParameter("what"); - $where = $cfg->getRequestParameter("where"); - - $this->_content = $what . ' + '. $where; - } - - public function getCMS() - { - $oList = oxNew("oxlist"); - $oList->init("oxcontent"); - $oListObject = $oList->getBaseObject(); - $sViewName = $oListObject->getViewName(); - $sActiveSnippet = $oListObject->getSqlActiveSnippet(); - $sSQL = "SELECT OXID, OXLOADID, OXTITLE FROM {$sViewName} WHERE {$sActiveSnippet} AND {$sViewName}.oxfolder != 'CMSFOLDER_EMAILS'"; - - $aPages = oxDB::getDb()->getAssoc($sSQL); - $this->_content = $aPages; - } - - public function oxgetseourl() - { - $cfg = oxRegistry::getConfig(); - - $type = ($cfg->getRequestParameter("type") ? $cfg->getRequestParameter("type") : "oxcontent"); - $oxid = ($cfg->getRequestParameter("oxid") ? $cfg->getRequestParameter("oxid") : "oximpressum"); - } - -} diff --git a/out/fileman/LICENSE.txt b/Application/fileman/LICENSE.txt old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/LICENSE.txt rename to Application/fileman/LICENSE.txt diff --git a/out/fileman/Uploads/Images/DSC_2987.jpg b/Application/fileman/Uploads/Images/DSC_2987.jpg old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/Uploads/Images/DSC_2987.jpg rename to Application/fileman/Uploads/Images/DSC_2987.jpg diff --git a/out/fileman/Uploads/Images/DSC_5744.jpg b/Application/fileman/Uploads/Images/DSC_5744.jpg old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/Uploads/Images/DSC_5744.jpg rename to Application/fileman/Uploads/Images/DSC_5744.jpg diff --git a/out/fileman/Uploads/LICENSE.txt b/Application/fileman/Uploads/LICENSE.txt old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/Uploads/LICENSE.txt rename to Application/fileman/Uploads/LICENSE.txt diff --git a/out/fileman/Uploads/roxy-fileman-logo.gif b/Application/fileman/Uploads/roxy-fileman-logo.gif old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/Uploads/roxy-fileman-logo.gif rename to Application/fileman/Uploads/roxy-fileman-logo.gif diff --git a/Application/fileman/conf.json b/Application/fileman/conf.json new file mode 100755 index 0000000..31e83c8 --- /dev/null +++ b/Application/fileman/conf.json @@ -0,0 +1,35 @@ +{ + "FILES_ROOT": "/out/pictures/wysiwigpro", + "RETURN_URL_PREFIX": "", + "SESSION_PATH_KEY": "", + "THUMBS_VIEW_WIDTH": "140", + "THUMBS_VIEW_HEIGHT": "120", + "PREVIEW_THUMB_WIDTH": "100", + "PREVIEW_THUMB_HEIGHT": "100", + "MAX_IMAGE_WIDTH": "2000", + "MAX_IMAGE_HEIGHT": "2000", + "INTEGRATION": "tinymce4", + "DIRLIST": "php/dirtree.php", + "CREATEDIR": "php/createdir.php", + "DELETEDIR": "php/deletedir.php", + "MOVEDIR": "php/movedir.php", + "COPYDIR": "php/copydir.php", + "RENAMEDIR": "php/renamedir.php", + "FILESLIST": "php/fileslist.php", + "UPLOAD": "php/upload.php", + "DOWNLOAD": "php/download.php", + "DOWNLOADDIR": "php/downloaddir.php", + "DELETEFILE": "php/deletefile.php", + "MOVEFILE": "php/movefile.php", + "COPYFILE": "php/copyfile.php", + "RENAMEFILE": "php/renamefile.php", + "GENERATETHUMB": "php/thumb.php", + "DEFAULTVIEW": "list", + "FORBIDDEN_UPLOADS": "zip js jsp jsb mhtml mht xhtml xht php phtml php3 php4 php5 phps shtml jhtml pl sh py cgi exe application gadget hta cpl msc jar vb jse ws wsf wsc wsh ps1 ps2 psc1 psc2 msh msh1 msh2 inf reg scf msp scr dll msi vbs bat com pif cmd vxd cpl htpasswd htaccess", + "ALLOWED_UPLOADS": "", + "FILEPERMISSIONS": "0644", + "DIRPERMISSIONS": "0755", + "LANG": "auto", + "DATEFORMAT": "dd.MM.yyyy HH:mm", + "OPEN_LAST_DIR": "yes" +} \ No newline at end of file diff --git a/out/fileman/css/images/animated-overlay.gif b/Application/fileman/css/images/animated-overlay.gif old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/images/animated-overlay.gif rename to Application/fileman/css/images/animated-overlay.gif diff --git a/out/fileman/css/images/ui-bg_flat_0_aaaaaa_40x100.png b/Application/fileman/css/images/ui-bg_flat_0_aaaaaa_40x100.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/images/ui-bg_flat_0_aaaaaa_40x100.png rename to Application/fileman/css/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/out/fileman/css/images/ui-bg_flat_75_ffffff_40x100.png b/Application/fileman/css/images/ui-bg_flat_75_ffffff_40x100.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/images/ui-bg_flat_75_ffffff_40x100.png rename to Application/fileman/css/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/out/fileman/css/images/ui-bg_glass_55_fbf9ee_1x400.png b/Application/fileman/css/images/ui-bg_glass_55_fbf9ee_1x400.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/images/ui-bg_glass_55_fbf9ee_1x400.png rename to Application/fileman/css/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/out/fileman/css/images/ui-bg_glass_65_ffffff_1x400.png b/Application/fileman/css/images/ui-bg_glass_65_ffffff_1x400.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/images/ui-bg_glass_65_ffffff_1x400.png rename to Application/fileman/css/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/out/fileman/css/images/ui-bg_glass_75_dadada_1x400.png b/Application/fileman/css/images/ui-bg_glass_75_dadada_1x400.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/images/ui-bg_glass_75_dadada_1x400.png rename to Application/fileman/css/images/ui-bg_glass_75_dadada_1x400.png diff --git a/out/fileman/css/images/ui-bg_glass_75_e6e6e6_1x400.png b/Application/fileman/css/images/ui-bg_glass_75_e6e6e6_1x400.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/images/ui-bg_glass_75_e6e6e6_1x400.png rename to Application/fileman/css/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/out/fileman/css/images/ui-bg_glass_95_fef1ec_1x400.png b/Application/fileman/css/images/ui-bg_glass_95_fef1ec_1x400.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/images/ui-bg_glass_95_fef1ec_1x400.png rename to Application/fileman/css/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/out/fileman/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/Application/fileman/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png rename to Application/fileman/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/out/fileman/css/images/ui-icons_222222_256x240.png b/Application/fileman/css/images/ui-icons_222222_256x240.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/images/ui-icons_222222_256x240.png rename to Application/fileman/css/images/ui-icons_222222_256x240.png diff --git a/out/fileman/css/images/ui-icons_2e83ff_256x240.png b/Application/fileman/css/images/ui-icons_2e83ff_256x240.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/images/ui-icons_2e83ff_256x240.png rename to Application/fileman/css/images/ui-icons_2e83ff_256x240.png diff --git a/out/fileman/css/images/ui-icons_454545_256x240.png b/Application/fileman/css/images/ui-icons_454545_256x240.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/images/ui-icons_454545_256x240.png rename to Application/fileman/css/images/ui-icons_454545_256x240.png diff --git a/out/fileman/css/images/ui-icons_888888_256x240.png b/Application/fileman/css/images/ui-icons_888888_256x240.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/images/ui-icons_888888_256x240.png rename to Application/fileman/css/images/ui-icons_888888_256x240.png diff --git a/out/fileman/css/images/ui-icons_cd0a0a_256x240.png b/Application/fileman/css/images/ui-icons_cd0a0a_256x240.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/images/ui-icons_cd0a0a_256x240.png rename to Application/fileman/css/images/ui-icons_cd0a0a_256x240.png diff --git a/out/fileman/css/jquery-ui-1.10.4.custom.css b/Application/fileman/css/jquery-ui-1.10.4.custom.css old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/jquery-ui-1.10.4.custom.css rename to Application/fileman/css/jquery-ui-1.10.4.custom.css diff --git a/out/fileman/css/jquery-ui-1.10.4.custom.min.css b/Application/fileman/css/jquery-ui-1.10.4.custom.min.css old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/jquery-ui-1.10.4.custom.min.css rename to Application/fileman/css/jquery-ui-1.10.4.custom.min.css diff --git a/out/fileman/css/main.css b/Application/fileman/css/main.css old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/main.css rename to Application/fileman/css/main.css diff --git a/out/fileman/css/main.min.css b/Application/fileman/css/main.min.css old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/css/main.min.css rename to Application/fileman/css/main.min.css diff --git a/out/fileman/dev.html b/Application/fileman/dev.html old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/dev.html rename to Application/fileman/dev.html diff --git a/out/fileman/images/action-folder-paste.png b/Application/fileman/images/action-folder-paste.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/action-folder-paste.png rename to Application/fileman/images/action-folder-paste.png diff --git a/out/fileman/images/action-folder-rename.png b/Application/fileman/images/action-folder-rename.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/action-folder-rename.png rename to Application/fileman/images/action-folder-rename.png diff --git a/out/fileman/images/arrow_down.png b/Application/fileman/images/arrow_down.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/arrow_down.png rename to Application/fileman/images/arrow_down.png diff --git a/out/fileman/images/arrow_up.png b/Application/fileman/images/arrow_up.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/arrow_up.png rename to Application/fileman/images/arrow_up.png diff --git a/out/fileman/images/blank.gif b/Application/fileman/images/blank.gif old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/blank.gif rename to Application/fileman/images/blank.gif diff --git a/out/fileman/images/copy.png b/Application/fileman/images/copy.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/copy.png rename to Application/fileman/images/copy.png diff --git a/out/fileman/images/cut.png b/Application/fileman/images/cut.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/cut.png rename to Application/fileman/images/cut.png diff --git a/out/fileman/images/dir-minus.png b/Application/fileman/images/dir-minus.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/dir-minus.png rename to Application/fileman/images/dir-minus.png diff --git a/out/fileman/images/dir-plus.png b/Application/fileman/images/dir-plus.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/dir-plus.png rename to Application/fileman/images/dir-plus.png diff --git a/out/fileman/images/file-add.png b/Application/fileman/images/file-add.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/file-add.png rename to Application/fileman/images/file-add.png diff --git a/out/fileman/images/file-delete.png b/Application/fileman/images/file-delete.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/file-delete.png rename to Application/fileman/images/file-delete.png diff --git a/out/fileman/images/file-download.png b/Application/fileman/images/file-download.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/file-download.png rename to Application/fileman/images/file-download.png diff --git a/out/fileman/images/file-duplicate.png b/Application/fileman/images/file-duplicate.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/file-duplicate.png rename to Application/fileman/images/file-duplicate.png diff --git a/out/fileman/images/file-upload.png b/Application/fileman/images/file-upload.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/file-upload.png rename to Application/fileman/images/file-upload.png diff --git a/out/fileman/images/filetypes/big/file_extension_3gp.png b/Application/fileman/images/filetypes/big/file_extension_3gp.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_3gp.png rename to Application/fileman/images/filetypes/big/file_extension_3gp.png diff --git a/out/fileman/images/filetypes/big/file_extension_7z.png b/Application/fileman/images/filetypes/big/file_extension_7z.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_7z.png rename to Application/fileman/images/filetypes/big/file_extension_7z.png diff --git a/out/fileman/images/filetypes/big/file_extension_ace.png b/Application/fileman/images/filetypes/big/file_extension_ace.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_ace.png rename to Application/fileman/images/filetypes/big/file_extension_ace.png diff --git a/out/fileman/images/filetypes/big/file_extension_ai.png b/Application/fileman/images/filetypes/big/file_extension_ai.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_ai.png rename to Application/fileman/images/filetypes/big/file_extension_ai.png diff --git a/out/fileman/images/filetypes/big/file_extension_aif.png b/Application/fileman/images/filetypes/big/file_extension_aif.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_aif.png rename to Application/fileman/images/filetypes/big/file_extension_aif.png diff --git a/out/fileman/images/filetypes/big/file_extension_aiff.png b/Application/fileman/images/filetypes/big/file_extension_aiff.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_aiff.png rename to Application/fileman/images/filetypes/big/file_extension_aiff.png diff --git a/out/fileman/images/filetypes/big/file_extension_amr.png b/Application/fileman/images/filetypes/big/file_extension_amr.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_amr.png rename to Application/fileman/images/filetypes/big/file_extension_amr.png diff --git a/out/fileman/images/filetypes/big/file_extension_asf.png b/Application/fileman/images/filetypes/big/file_extension_asf.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_asf.png rename to Application/fileman/images/filetypes/big/file_extension_asf.png diff --git a/out/fileman/images/filetypes/big/file_extension_asx.png b/Application/fileman/images/filetypes/big/file_extension_asx.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_asx.png rename to Application/fileman/images/filetypes/big/file_extension_asx.png diff --git a/out/fileman/images/filetypes/big/file_extension_bat.png b/Application/fileman/images/filetypes/big/file_extension_bat.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_bat.png rename to Application/fileman/images/filetypes/big/file_extension_bat.png diff --git a/out/fileman/images/filetypes/big/file_extension_bin.png b/Application/fileman/images/filetypes/big/file_extension_bin.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_bin.png rename to Application/fileman/images/filetypes/big/file_extension_bin.png diff --git a/out/fileman/images/filetypes/big/file_extension_bmp.png b/Application/fileman/images/filetypes/big/file_extension_bmp.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_bmp.png rename to Application/fileman/images/filetypes/big/file_extension_bmp.png diff --git a/out/fileman/images/filetypes/big/file_extension_bup.png b/Application/fileman/images/filetypes/big/file_extension_bup.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_bup.png rename to Application/fileman/images/filetypes/big/file_extension_bup.png diff --git a/out/fileman/images/filetypes/big/file_extension_cab.png b/Application/fileman/images/filetypes/big/file_extension_cab.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_cab.png rename to Application/fileman/images/filetypes/big/file_extension_cab.png diff --git a/out/fileman/images/filetypes/big/file_extension_cbr.png b/Application/fileman/images/filetypes/big/file_extension_cbr.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_cbr.png rename to Application/fileman/images/filetypes/big/file_extension_cbr.png diff --git a/out/fileman/images/filetypes/big/file_extension_cda.png b/Application/fileman/images/filetypes/big/file_extension_cda.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_cda.png rename to Application/fileman/images/filetypes/big/file_extension_cda.png diff --git a/out/fileman/images/filetypes/big/file_extension_cdl.png b/Application/fileman/images/filetypes/big/file_extension_cdl.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_cdl.png rename to Application/fileman/images/filetypes/big/file_extension_cdl.png diff --git a/out/fileman/images/filetypes/big/file_extension_cdr.png b/Application/fileman/images/filetypes/big/file_extension_cdr.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_cdr.png rename to Application/fileman/images/filetypes/big/file_extension_cdr.png diff --git a/out/fileman/images/filetypes/big/file_extension_chm.png b/Application/fileman/images/filetypes/big/file_extension_chm.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_chm.png rename to Application/fileman/images/filetypes/big/file_extension_chm.png diff --git a/out/fileman/images/filetypes/big/file_extension_dat.png b/Application/fileman/images/filetypes/big/file_extension_dat.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_dat.png rename to Application/fileman/images/filetypes/big/file_extension_dat.png diff --git a/out/fileman/images/filetypes/big/file_extension_divx.png b/Application/fileman/images/filetypes/big/file_extension_divx.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_divx.png rename to Application/fileman/images/filetypes/big/file_extension_divx.png diff --git a/out/fileman/images/filetypes/big/file_extension_dll.png b/Application/fileman/images/filetypes/big/file_extension_dll.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_dll.png rename to Application/fileman/images/filetypes/big/file_extension_dll.png diff --git a/out/fileman/images/filetypes/big/file_extension_dmg.png b/Application/fileman/images/filetypes/big/file_extension_dmg.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_dmg.png rename to Application/fileman/images/filetypes/big/file_extension_dmg.png diff --git a/out/fileman/images/filetypes/big/file_extension_doc.png b/Application/fileman/images/filetypes/big/file_extension_doc.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_doc.png rename to Application/fileman/images/filetypes/big/file_extension_doc.png diff --git a/out/fileman/images/filetypes/big/file_extension_dss.png b/Application/fileman/images/filetypes/big/file_extension_dss.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_dss.png rename to Application/fileman/images/filetypes/big/file_extension_dss.png diff --git a/out/fileman/images/filetypes/big/file_extension_dvf.png b/Application/fileman/images/filetypes/big/file_extension_dvf.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_dvf.png rename to Application/fileman/images/filetypes/big/file_extension_dvf.png diff --git a/out/fileman/images/filetypes/big/file_extension_dwg.png b/Application/fileman/images/filetypes/big/file_extension_dwg.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_dwg.png rename to Application/fileman/images/filetypes/big/file_extension_dwg.png diff --git a/out/fileman/images/filetypes/big/file_extension_eml.png b/Application/fileman/images/filetypes/big/file_extension_eml.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_eml.png rename to Application/fileman/images/filetypes/big/file_extension_eml.png diff --git a/out/fileman/images/filetypes/big/file_extension_eps.png b/Application/fileman/images/filetypes/big/file_extension_eps.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_eps.png rename to Application/fileman/images/filetypes/big/file_extension_eps.png diff --git a/out/fileman/images/filetypes/big/file_extension_exe.png b/Application/fileman/images/filetypes/big/file_extension_exe.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_exe.png rename to Application/fileman/images/filetypes/big/file_extension_exe.png diff --git a/out/fileman/images/filetypes/big/file_extension_fla.png b/Application/fileman/images/filetypes/big/file_extension_fla.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_fla.png rename to Application/fileman/images/filetypes/big/file_extension_fla.png diff --git a/out/fileman/images/filetypes/big/file_extension_flv.png b/Application/fileman/images/filetypes/big/file_extension_flv.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_flv.png rename to Application/fileman/images/filetypes/big/file_extension_flv.png diff --git a/out/fileman/images/filetypes/big/file_extension_gif.png b/Application/fileman/images/filetypes/big/file_extension_gif.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_gif.png rename to Application/fileman/images/filetypes/big/file_extension_gif.png diff --git a/out/fileman/images/filetypes/big/file_extension_gz.png b/Application/fileman/images/filetypes/big/file_extension_gz.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_gz.png rename to Application/fileman/images/filetypes/big/file_extension_gz.png diff --git a/out/fileman/images/filetypes/big/file_extension_hqx.png b/Application/fileman/images/filetypes/big/file_extension_hqx.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_hqx.png rename to Application/fileman/images/filetypes/big/file_extension_hqx.png diff --git a/out/fileman/images/filetypes/big/file_extension_htm.png b/Application/fileman/images/filetypes/big/file_extension_htm.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_htm.png rename to Application/fileman/images/filetypes/big/file_extension_htm.png diff --git a/out/fileman/images/filetypes/big/file_extension_html.png b/Application/fileman/images/filetypes/big/file_extension_html.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_html.png rename to Application/fileman/images/filetypes/big/file_extension_html.png diff --git a/out/fileman/images/filetypes/big/file_extension_ifo.png b/Application/fileman/images/filetypes/big/file_extension_ifo.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_ifo.png rename to Application/fileman/images/filetypes/big/file_extension_ifo.png diff --git a/out/fileman/images/filetypes/big/file_extension_indd.png b/Application/fileman/images/filetypes/big/file_extension_indd.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_indd.png rename to Application/fileman/images/filetypes/big/file_extension_indd.png diff --git a/out/fileman/images/filetypes/big/file_extension_iso.png b/Application/fileman/images/filetypes/big/file_extension_iso.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_iso.png rename to Application/fileman/images/filetypes/big/file_extension_iso.png diff --git a/out/fileman/images/filetypes/big/file_extension_jar.png b/Application/fileman/images/filetypes/big/file_extension_jar.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_jar.png rename to Application/fileman/images/filetypes/big/file_extension_jar.png diff --git a/out/fileman/images/filetypes/big/file_extension_jpeg.png b/Application/fileman/images/filetypes/big/file_extension_jpeg.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_jpeg.png rename to Application/fileman/images/filetypes/big/file_extension_jpeg.png diff --git a/out/fileman/images/filetypes/big/file_extension_jpg.png b/Application/fileman/images/filetypes/big/file_extension_jpg.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_jpg.png rename to Application/fileman/images/filetypes/big/file_extension_jpg.png diff --git a/out/fileman/images/filetypes/big/file_extension_lnk.png b/Application/fileman/images/filetypes/big/file_extension_lnk.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_lnk.png rename to Application/fileman/images/filetypes/big/file_extension_lnk.png diff --git a/out/fileman/images/filetypes/big/file_extension_log.png b/Application/fileman/images/filetypes/big/file_extension_log.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_log.png rename to Application/fileman/images/filetypes/big/file_extension_log.png diff --git a/out/fileman/images/filetypes/big/file_extension_m4a.png b/Application/fileman/images/filetypes/big/file_extension_m4a.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_m4a.png rename to Application/fileman/images/filetypes/big/file_extension_m4a.png diff --git a/out/fileman/images/filetypes/big/file_extension_m4b.png b/Application/fileman/images/filetypes/big/file_extension_m4b.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_m4b.png rename to Application/fileman/images/filetypes/big/file_extension_m4b.png diff --git a/out/fileman/images/filetypes/big/file_extension_m4p.png b/Application/fileman/images/filetypes/big/file_extension_m4p.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_m4p.png rename to Application/fileman/images/filetypes/big/file_extension_m4p.png diff --git a/out/fileman/images/filetypes/big/file_extension_m4v.png b/Application/fileman/images/filetypes/big/file_extension_m4v.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_m4v.png rename to Application/fileman/images/filetypes/big/file_extension_m4v.png diff --git a/out/fileman/images/filetypes/big/file_extension_mcd.png b/Application/fileman/images/filetypes/big/file_extension_mcd.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_mcd.png rename to Application/fileman/images/filetypes/big/file_extension_mcd.png diff --git a/out/fileman/images/filetypes/big/file_extension_mdb.png b/Application/fileman/images/filetypes/big/file_extension_mdb.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_mdb.png rename to Application/fileman/images/filetypes/big/file_extension_mdb.png diff --git a/out/fileman/images/filetypes/big/file_extension_mid.png b/Application/fileman/images/filetypes/big/file_extension_mid.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_mid.png rename to Application/fileman/images/filetypes/big/file_extension_mid.png diff --git a/out/fileman/images/filetypes/big/file_extension_mov.png b/Application/fileman/images/filetypes/big/file_extension_mov.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_mov.png rename to Application/fileman/images/filetypes/big/file_extension_mov.png diff --git a/out/fileman/images/filetypes/big/file_extension_mp2.png b/Application/fileman/images/filetypes/big/file_extension_mp2.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_mp2.png rename to Application/fileman/images/filetypes/big/file_extension_mp2.png diff --git a/out/fileman/images/filetypes/big/file_extension_mp3.png b/Application/fileman/images/filetypes/big/file_extension_mp3.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_mp3.png rename to Application/fileman/images/filetypes/big/file_extension_mp3.png diff --git a/out/fileman/images/filetypes/big/file_extension_mp4.png b/Application/fileman/images/filetypes/big/file_extension_mp4.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_mp4.png rename to Application/fileman/images/filetypes/big/file_extension_mp4.png diff --git a/out/fileman/images/filetypes/big/file_extension_mpeg.png b/Application/fileman/images/filetypes/big/file_extension_mpeg.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_mpeg.png rename to Application/fileman/images/filetypes/big/file_extension_mpeg.png diff --git a/out/fileman/images/filetypes/big/file_extension_mpg.png b/Application/fileman/images/filetypes/big/file_extension_mpg.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_mpg.png rename to Application/fileman/images/filetypes/big/file_extension_mpg.png diff --git a/out/fileman/images/filetypes/big/file_extension_msi.png b/Application/fileman/images/filetypes/big/file_extension_msi.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_msi.png rename to Application/fileman/images/filetypes/big/file_extension_msi.png diff --git a/out/fileman/images/filetypes/big/file_extension_mswmm.png b/Application/fileman/images/filetypes/big/file_extension_mswmm.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_mswmm.png rename to Application/fileman/images/filetypes/big/file_extension_mswmm.png diff --git a/out/fileman/images/filetypes/big/file_extension_ogg.png b/Application/fileman/images/filetypes/big/file_extension_ogg.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_ogg.png rename to Application/fileman/images/filetypes/big/file_extension_ogg.png diff --git a/out/fileman/images/filetypes/big/file_extension_pdf.png b/Application/fileman/images/filetypes/big/file_extension_pdf.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_pdf.png rename to Application/fileman/images/filetypes/big/file_extension_pdf.png diff --git a/out/fileman/images/filetypes/big/file_extension_png.png b/Application/fileman/images/filetypes/big/file_extension_png.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_png.png rename to Application/fileman/images/filetypes/big/file_extension_png.png diff --git a/out/fileman/images/filetypes/big/file_extension_pps.png b/Application/fileman/images/filetypes/big/file_extension_pps.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_pps.png rename to Application/fileman/images/filetypes/big/file_extension_pps.png diff --git a/out/fileman/images/filetypes/big/file_extension_ps.png b/Application/fileman/images/filetypes/big/file_extension_ps.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_ps.png rename to Application/fileman/images/filetypes/big/file_extension_ps.png diff --git a/out/fileman/images/filetypes/big/file_extension_psd.png b/Application/fileman/images/filetypes/big/file_extension_psd.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_psd.png rename to Application/fileman/images/filetypes/big/file_extension_psd.png diff --git a/out/fileman/images/filetypes/big/file_extension_pst.png b/Application/fileman/images/filetypes/big/file_extension_pst.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_pst.png rename to Application/fileman/images/filetypes/big/file_extension_pst.png diff --git a/out/fileman/images/filetypes/big/file_extension_ptb.png b/Application/fileman/images/filetypes/big/file_extension_ptb.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_ptb.png rename to Application/fileman/images/filetypes/big/file_extension_ptb.png diff --git a/out/fileman/images/filetypes/big/file_extension_pub.png b/Application/fileman/images/filetypes/big/file_extension_pub.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_pub.png rename to Application/fileman/images/filetypes/big/file_extension_pub.png diff --git a/out/fileman/images/filetypes/big/file_extension_qbb.png b/Application/fileman/images/filetypes/big/file_extension_qbb.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_qbb.png rename to Application/fileman/images/filetypes/big/file_extension_qbb.png diff --git a/out/fileman/images/filetypes/big/file_extension_qbw.png b/Application/fileman/images/filetypes/big/file_extension_qbw.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_qbw.png rename to Application/fileman/images/filetypes/big/file_extension_qbw.png diff --git a/out/fileman/images/filetypes/big/file_extension_qxd.png b/Application/fileman/images/filetypes/big/file_extension_qxd.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_qxd.png rename to Application/fileman/images/filetypes/big/file_extension_qxd.png diff --git a/out/fileman/images/filetypes/big/file_extension_ram.png b/Application/fileman/images/filetypes/big/file_extension_ram.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_ram.png rename to Application/fileman/images/filetypes/big/file_extension_ram.png diff --git a/out/fileman/images/filetypes/big/file_extension_rar.png b/Application/fileman/images/filetypes/big/file_extension_rar.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_rar.png rename to Application/fileman/images/filetypes/big/file_extension_rar.png diff --git a/out/fileman/images/filetypes/big/file_extension_rm.png b/Application/fileman/images/filetypes/big/file_extension_rm.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_rm.png rename to Application/fileman/images/filetypes/big/file_extension_rm.png diff --git a/out/fileman/images/filetypes/big/file_extension_rmvb.png b/Application/fileman/images/filetypes/big/file_extension_rmvb.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_rmvb.png rename to Application/fileman/images/filetypes/big/file_extension_rmvb.png diff --git a/out/fileman/images/filetypes/big/file_extension_rtf.png b/Application/fileman/images/filetypes/big/file_extension_rtf.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_rtf.png rename to Application/fileman/images/filetypes/big/file_extension_rtf.png diff --git a/out/fileman/images/filetypes/big/file_extension_sea.png b/Application/fileman/images/filetypes/big/file_extension_sea.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_sea.png rename to Application/fileman/images/filetypes/big/file_extension_sea.png diff --git a/out/fileman/images/filetypes/big/file_extension_ses.png b/Application/fileman/images/filetypes/big/file_extension_ses.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_ses.png rename to Application/fileman/images/filetypes/big/file_extension_ses.png diff --git a/out/fileman/images/filetypes/big/file_extension_sit.png b/Application/fileman/images/filetypes/big/file_extension_sit.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_sit.png rename to Application/fileman/images/filetypes/big/file_extension_sit.png diff --git a/out/fileman/images/filetypes/big/file_extension_sitx.png b/Application/fileman/images/filetypes/big/file_extension_sitx.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_sitx.png rename to Application/fileman/images/filetypes/big/file_extension_sitx.png diff --git a/out/fileman/images/filetypes/big/file_extension_ss.png b/Application/fileman/images/filetypes/big/file_extension_ss.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_ss.png rename to Application/fileman/images/filetypes/big/file_extension_ss.png diff --git a/out/fileman/images/filetypes/big/file_extension_swf.png b/Application/fileman/images/filetypes/big/file_extension_swf.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_swf.png rename to Application/fileman/images/filetypes/big/file_extension_swf.png diff --git a/out/fileman/images/filetypes/big/file_extension_tgz.png b/Application/fileman/images/filetypes/big/file_extension_tgz.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_tgz.png rename to Application/fileman/images/filetypes/big/file_extension_tgz.png diff --git a/out/fileman/images/filetypes/big/file_extension_thm.png b/Application/fileman/images/filetypes/big/file_extension_thm.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_thm.png rename to Application/fileman/images/filetypes/big/file_extension_thm.png diff --git a/out/fileman/images/filetypes/big/file_extension_tif.png b/Application/fileman/images/filetypes/big/file_extension_tif.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_tif.png rename to Application/fileman/images/filetypes/big/file_extension_tif.png diff --git a/out/fileman/images/filetypes/big/file_extension_tmp.png b/Application/fileman/images/filetypes/big/file_extension_tmp.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_tmp.png rename to Application/fileman/images/filetypes/big/file_extension_tmp.png diff --git a/out/fileman/images/filetypes/big/file_extension_torrent.png b/Application/fileman/images/filetypes/big/file_extension_torrent.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_torrent.png rename to Application/fileman/images/filetypes/big/file_extension_torrent.png diff --git a/out/fileman/images/filetypes/big/file_extension_ttf.png b/Application/fileman/images/filetypes/big/file_extension_ttf.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_ttf.png rename to Application/fileman/images/filetypes/big/file_extension_ttf.png diff --git a/out/fileman/images/filetypes/big/file_extension_txt.png b/Application/fileman/images/filetypes/big/file_extension_txt.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_txt.png rename to Application/fileman/images/filetypes/big/file_extension_txt.png diff --git a/out/fileman/images/filetypes/big/file_extension_vcd.png b/Application/fileman/images/filetypes/big/file_extension_vcd.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_vcd.png rename to Application/fileman/images/filetypes/big/file_extension_vcd.png diff --git a/out/fileman/images/filetypes/big/file_extension_vob.png b/Application/fileman/images/filetypes/big/file_extension_vob.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_vob.png rename to Application/fileman/images/filetypes/big/file_extension_vob.png diff --git a/out/fileman/images/filetypes/big/file_extension_wav.png b/Application/fileman/images/filetypes/big/file_extension_wav.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_wav.png rename to Application/fileman/images/filetypes/big/file_extension_wav.png diff --git a/out/fileman/images/filetypes/big/file_extension_wma.png b/Application/fileman/images/filetypes/big/file_extension_wma.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_wma.png rename to Application/fileman/images/filetypes/big/file_extension_wma.png diff --git a/out/fileman/images/filetypes/big/file_extension_wmv.png b/Application/fileman/images/filetypes/big/file_extension_wmv.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_wmv.png rename to Application/fileman/images/filetypes/big/file_extension_wmv.png diff --git a/out/fileman/images/filetypes/big/file_extension_wps.png b/Application/fileman/images/filetypes/big/file_extension_wps.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_wps.png rename to Application/fileman/images/filetypes/big/file_extension_wps.png diff --git a/out/fileman/images/filetypes/big/file_extension_xls.png b/Application/fileman/images/filetypes/big/file_extension_xls.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_xls.png rename to Application/fileman/images/filetypes/big/file_extension_xls.png diff --git a/out/fileman/images/filetypes/big/file_extension_xpi.png b/Application/fileman/images/filetypes/big/file_extension_xpi.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_xpi.png rename to Application/fileman/images/filetypes/big/file_extension_xpi.png diff --git a/out/fileman/images/filetypes/big/file_extension_zip.png b/Application/fileman/images/filetypes/big/file_extension_zip.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/file_extension_zip.png rename to Application/fileman/images/filetypes/big/file_extension_zip.png diff --git a/out/fileman/images/filetypes/big/unknown.png b/Application/fileman/images/filetypes/big/unknown.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/big/unknown.png rename to Application/fileman/images/filetypes/big/unknown.png diff --git a/out/fileman/images/filetypes/file_extension_3gp.png b/Application/fileman/images/filetypes/file_extension_3gp.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_3gp.png rename to Application/fileman/images/filetypes/file_extension_3gp.png diff --git a/out/fileman/images/filetypes/file_extension_7z.png b/Application/fileman/images/filetypes/file_extension_7z.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_7z.png rename to Application/fileman/images/filetypes/file_extension_7z.png diff --git a/out/fileman/images/filetypes/file_extension_ace.png b/Application/fileman/images/filetypes/file_extension_ace.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_ace.png rename to Application/fileman/images/filetypes/file_extension_ace.png diff --git a/out/fileman/images/filetypes/file_extension_ai.png b/Application/fileman/images/filetypes/file_extension_ai.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_ai.png rename to Application/fileman/images/filetypes/file_extension_ai.png diff --git a/out/fileman/images/filetypes/file_extension_aif.png b/Application/fileman/images/filetypes/file_extension_aif.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_aif.png rename to Application/fileman/images/filetypes/file_extension_aif.png diff --git a/out/fileman/images/filetypes/file_extension_aiff.png b/Application/fileman/images/filetypes/file_extension_aiff.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_aiff.png rename to Application/fileman/images/filetypes/file_extension_aiff.png diff --git a/out/fileman/images/filetypes/file_extension_amr.png b/Application/fileman/images/filetypes/file_extension_amr.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_amr.png rename to Application/fileman/images/filetypes/file_extension_amr.png diff --git a/out/fileman/images/filetypes/file_extension_asf.png b/Application/fileman/images/filetypes/file_extension_asf.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_asf.png rename to Application/fileman/images/filetypes/file_extension_asf.png diff --git a/out/fileman/images/filetypes/file_extension_asx.png b/Application/fileman/images/filetypes/file_extension_asx.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_asx.png rename to Application/fileman/images/filetypes/file_extension_asx.png diff --git a/out/fileman/images/filetypes/file_extension_avi.png b/Application/fileman/images/filetypes/file_extension_avi.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_avi.png rename to Application/fileman/images/filetypes/file_extension_avi.png diff --git a/out/fileman/images/filetypes/file_extension_bat.png b/Application/fileman/images/filetypes/file_extension_bat.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_bat.png rename to Application/fileman/images/filetypes/file_extension_bat.png diff --git a/out/fileman/images/filetypes/file_extension_bin.png b/Application/fileman/images/filetypes/file_extension_bin.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_bin.png rename to Application/fileman/images/filetypes/file_extension_bin.png diff --git a/out/fileman/images/filetypes/file_extension_bmp.png b/Application/fileman/images/filetypes/file_extension_bmp.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_bmp.png rename to Application/fileman/images/filetypes/file_extension_bmp.png diff --git a/out/fileman/images/filetypes/file_extension_bup.png b/Application/fileman/images/filetypes/file_extension_bup.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_bup.png rename to Application/fileman/images/filetypes/file_extension_bup.png diff --git a/out/fileman/images/filetypes/file_extension_cab.png b/Application/fileman/images/filetypes/file_extension_cab.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_cab.png rename to Application/fileman/images/filetypes/file_extension_cab.png diff --git a/out/fileman/images/filetypes/file_extension_cbr.png b/Application/fileman/images/filetypes/file_extension_cbr.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_cbr.png rename to Application/fileman/images/filetypes/file_extension_cbr.png diff --git a/out/fileman/images/filetypes/file_extension_cda.png b/Application/fileman/images/filetypes/file_extension_cda.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_cda.png rename to Application/fileman/images/filetypes/file_extension_cda.png diff --git a/out/fileman/images/filetypes/file_extension_cdl.png b/Application/fileman/images/filetypes/file_extension_cdl.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_cdl.png rename to Application/fileman/images/filetypes/file_extension_cdl.png diff --git a/out/fileman/images/filetypes/file_extension_cdr.png b/Application/fileman/images/filetypes/file_extension_cdr.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_cdr.png rename to Application/fileman/images/filetypes/file_extension_cdr.png diff --git a/out/fileman/images/filetypes/file_extension_chm.png b/Application/fileman/images/filetypes/file_extension_chm.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_chm.png rename to Application/fileman/images/filetypes/file_extension_chm.png diff --git a/out/fileman/images/filetypes/file_extension_dat.png b/Application/fileman/images/filetypes/file_extension_dat.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_dat.png rename to Application/fileman/images/filetypes/file_extension_dat.png diff --git a/out/fileman/images/filetypes/file_extension_divx.png b/Application/fileman/images/filetypes/file_extension_divx.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_divx.png rename to Application/fileman/images/filetypes/file_extension_divx.png diff --git a/out/fileman/images/filetypes/file_extension_dll.png b/Application/fileman/images/filetypes/file_extension_dll.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_dll.png rename to Application/fileman/images/filetypes/file_extension_dll.png diff --git a/out/fileman/images/filetypes/file_extension_dmg.png b/Application/fileman/images/filetypes/file_extension_dmg.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_dmg.png rename to Application/fileman/images/filetypes/file_extension_dmg.png diff --git a/out/fileman/images/filetypes/file_extension_doc.png b/Application/fileman/images/filetypes/file_extension_doc.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_doc.png rename to Application/fileman/images/filetypes/file_extension_doc.png diff --git a/out/fileman/images/filetypes/file_extension_dss.png b/Application/fileman/images/filetypes/file_extension_dss.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_dss.png rename to Application/fileman/images/filetypes/file_extension_dss.png diff --git a/out/fileman/images/filetypes/file_extension_dvf.png b/Application/fileman/images/filetypes/file_extension_dvf.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_dvf.png rename to Application/fileman/images/filetypes/file_extension_dvf.png diff --git a/out/fileman/images/filetypes/file_extension_dwg.png b/Application/fileman/images/filetypes/file_extension_dwg.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_dwg.png rename to Application/fileman/images/filetypes/file_extension_dwg.png diff --git a/out/fileman/images/filetypes/file_extension_eml.png b/Application/fileman/images/filetypes/file_extension_eml.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_eml.png rename to Application/fileman/images/filetypes/file_extension_eml.png diff --git a/out/fileman/images/filetypes/file_extension_eps.png b/Application/fileman/images/filetypes/file_extension_eps.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_eps.png rename to Application/fileman/images/filetypes/file_extension_eps.png diff --git a/out/fileman/images/filetypes/file_extension_exe.png b/Application/fileman/images/filetypes/file_extension_exe.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_exe.png rename to Application/fileman/images/filetypes/file_extension_exe.png diff --git a/out/fileman/images/filetypes/file_extension_fla.png b/Application/fileman/images/filetypes/file_extension_fla.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_fla.png rename to Application/fileman/images/filetypes/file_extension_fla.png diff --git a/out/fileman/images/filetypes/file_extension_flv.png b/Application/fileman/images/filetypes/file_extension_flv.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_flv.png rename to Application/fileman/images/filetypes/file_extension_flv.png diff --git a/out/fileman/images/filetypes/file_extension_gif.png b/Application/fileman/images/filetypes/file_extension_gif.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_gif.png rename to Application/fileman/images/filetypes/file_extension_gif.png diff --git a/out/fileman/images/filetypes/file_extension_gz.png b/Application/fileman/images/filetypes/file_extension_gz.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_gz.png rename to Application/fileman/images/filetypes/file_extension_gz.png diff --git a/out/fileman/images/filetypes/file_extension_hqx.png b/Application/fileman/images/filetypes/file_extension_hqx.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_hqx.png rename to Application/fileman/images/filetypes/file_extension_hqx.png diff --git a/out/fileman/images/filetypes/file_extension_htm.png b/Application/fileman/images/filetypes/file_extension_htm.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_htm.png rename to Application/fileman/images/filetypes/file_extension_htm.png diff --git a/out/fileman/images/filetypes/file_extension_html.png b/Application/fileman/images/filetypes/file_extension_html.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_html.png rename to Application/fileman/images/filetypes/file_extension_html.png diff --git a/out/fileman/images/filetypes/file_extension_ifo.png b/Application/fileman/images/filetypes/file_extension_ifo.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_ifo.png rename to Application/fileman/images/filetypes/file_extension_ifo.png diff --git a/out/fileman/images/filetypes/file_extension_indd.png b/Application/fileman/images/filetypes/file_extension_indd.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_indd.png rename to Application/fileman/images/filetypes/file_extension_indd.png diff --git a/out/fileman/images/filetypes/file_extension_iso.png b/Application/fileman/images/filetypes/file_extension_iso.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_iso.png rename to Application/fileman/images/filetypes/file_extension_iso.png diff --git a/out/fileman/images/filetypes/file_extension_jar.png b/Application/fileman/images/filetypes/file_extension_jar.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_jar.png rename to Application/fileman/images/filetypes/file_extension_jar.png diff --git a/out/fileman/images/filetypes/file_extension_jpeg.png b/Application/fileman/images/filetypes/file_extension_jpeg.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_jpeg.png rename to Application/fileman/images/filetypes/file_extension_jpeg.png diff --git a/out/fileman/images/filetypes/file_extension_jpg.png b/Application/fileman/images/filetypes/file_extension_jpg.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_jpg.png rename to Application/fileman/images/filetypes/file_extension_jpg.png diff --git a/out/fileman/images/filetypes/file_extension_lnk.png b/Application/fileman/images/filetypes/file_extension_lnk.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_lnk.png rename to Application/fileman/images/filetypes/file_extension_lnk.png diff --git a/out/fileman/images/filetypes/file_extension_log.png b/Application/fileman/images/filetypes/file_extension_log.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_log.png rename to Application/fileman/images/filetypes/file_extension_log.png diff --git a/out/fileman/images/filetypes/file_extension_m4a.png b/Application/fileman/images/filetypes/file_extension_m4a.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_m4a.png rename to Application/fileman/images/filetypes/file_extension_m4a.png diff --git a/out/fileman/images/filetypes/file_extension_m4b.png b/Application/fileman/images/filetypes/file_extension_m4b.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_m4b.png rename to Application/fileman/images/filetypes/file_extension_m4b.png diff --git a/out/fileman/images/filetypes/file_extension_m4p.png b/Application/fileman/images/filetypes/file_extension_m4p.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_m4p.png rename to Application/fileman/images/filetypes/file_extension_m4p.png diff --git a/out/fileman/images/filetypes/file_extension_m4v.png b/Application/fileman/images/filetypes/file_extension_m4v.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_m4v.png rename to Application/fileman/images/filetypes/file_extension_m4v.png diff --git a/out/fileman/images/filetypes/file_extension_mcd.png b/Application/fileman/images/filetypes/file_extension_mcd.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_mcd.png rename to Application/fileman/images/filetypes/file_extension_mcd.png diff --git a/out/fileman/images/filetypes/file_extension_mdb.png b/Application/fileman/images/filetypes/file_extension_mdb.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_mdb.png rename to Application/fileman/images/filetypes/file_extension_mdb.png diff --git a/out/fileman/images/filetypes/file_extension_mid.png b/Application/fileman/images/filetypes/file_extension_mid.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_mid.png rename to Application/fileman/images/filetypes/file_extension_mid.png diff --git a/out/fileman/images/filetypes/file_extension_mkv.png b/Application/fileman/images/filetypes/file_extension_mkv.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_mkv.png rename to Application/fileman/images/filetypes/file_extension_mkv.png diff --git a/out/fileman/images/filetypes/file_extension_mov.png b/Application/fileman/images/filetypes/file_extension_mov.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_mov.png rename to Application/fileman/images/filetypes/file_extension_mov.png diff --git a/out/fileman/images/filetypes/file_extension_mp2.png b/Application/fileman/images/filetypes/file_extension_mp2.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_mp2.png rename to Application/fileman/images/filetypes/file_extension_mp2.png diff --git a/out/fileman/images/filetypes/file_extension_mp3.png b/Application/fileman/images/filetypes/file_extension_mp3.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_mp3.png rename to Application/fileman/images/filetypes/file_extension_mp3.png diff --git a/out/fileman/images/filetypes/file_extension_mp4.png b/Application/fileman/images/filetypes/file_extension_mp4.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_mp4.png rename to Application/fileman/images/filetypes/file_extension_mp4.png diff --git a/out/fileman/images/filetypes/file_extension_mpeg.png b/Application/fileman/images/filetypes/file_extension_mpeg.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_mpeg.png rename to Application/fileman/images/filetypes/file_extension_mpeg.png diff --git a/out/fileman/images/filetypes/file_extension_mpg.png b/Application/fileman/images/filetypes/file_extension_mpg.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_mpg.png rename to Application/fileman/images/filetypes/file_extension_mpg.png diff --git a/out/fileman/images/filetypes/file_extension_msi.png b/Application/fileman/images/filetypes/file_extension_msi.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_msi.png rename to Application/fileman/images/filetypes/file_extension_msi.png diff --git a/out/fileman/images/filetypes/file_extension_mswmm.png b/Application/fileman/images/filetypes/file_extension_mswmm.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_mswmm.png rename to Application/fileman/images/filetypes/file_extension_mswmm.png diff --git a/out/fileman/images/filetypes/file_extension_ogg.png b/Application/fileman/images/filetypes/file_extension_ogg.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_ogg.png rename to Application/fileman/images/filetypes/file_extension_ogg.png diff --git a/out/fileman/images/filetypes/file_extension_pdf.png b/Application/fileman/images/filetypes/file_extension_pdf.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_pdf.png rename to Application/fileman/images/filetypes/file_extension_pdf.png diff --git a/out/fileman/images/filetypes/file_extension_png.png b/Application/fileman/images/filetypes/file_extension_png.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_png.png rename to Application/fileman/images/filetypes/file_extension_png.png diff --git a/out/fileman/images/filetypes/file_extension_pps.png b/Application/fileman/images/filetypes/file_extension_pps.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_pps.png rename to Application/fileman/images/filetypes/file_extension_pps.png diff --git a/out/fileman/images/filetypes/file_extension_ps.png b/Application/fileman/images/filetypes/file_extension_ps.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_ps.png rename to Application/fileman/images/filetypes/file_extension_ps.png diff --git a/out/fileman/images/filetypes/file_extension_psd.png b/Application/fileman/images/filetypes/file_extension_psd.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_psd.png rename to Application/fileman/images/filetypes/file_extension_psd.png diff --git a/out/fileman/images/filetypes/file_extension_pst.png b/Application/fileman/images/filetypes/file_extension_pst.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_pst.png rename to Application/fileman/images/filetypes/file_extension_pst.png diff --git a/out/fileman/images/filetypes/file_extension_ptb.png b/Application/fileman/images/filetypes/file_extension_ptb.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_ptb.png rename to Application/fileman/images/filetypes/file_extension_ptb.png diff --git a/out/fileman/images/filetypes/file_extension_pub.png b/Application/fileman/images/filetypes/file_extension_pub.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_pub.png rename to Application/fileman/images/filetypes/file_extension_pub.png diff --git a/out/fileman/images/filetypes/file_extension_qbb.png b/Application/fileman/images/filetypes/file_extension_qbb.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_qbb.png rename to Application/fileman/images/filetypes/file_extension_qbb.png diff --git a/out/fileman/images/filetypes/file_extension_qbw.png b/Application/fileman/images/filetypes/file_extension_qbw.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_qbw.png rename to Application/fileman/images/filetypes/file_extension_qbw.png diff --git a/out/fileman/images/filetypes/file_extension_qxd.png b/Application/fileman/images/filetypes/file_extension_qxd.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_qxd.png rename to Application/fileman/images/filetypes/file_extension_qxd.png diff --git a/out/fileman/images/filetypes/file_extension_ram.png b/Application/fileman/images/filetypes/file_extension_ram.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_ram.png rename to Application/fileman/images/filetypes/file_extension_ram.png diff --git a/out/fileman/images/filetypes/file_extension_rar.png b/Application/fileman/images/filetypes/file_extension_rar.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_rar.png rename to Application/fileman/images/filetypes/file_extension_rar.png diff --git a/out/fileman/images/filetypes/file_extension_rm.png b/Application/fileman/images/filetypes/file_extension_rm.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_rm.png rename to Application/fileman/images/filetypes/file_extension_rm.png diff --git a/out/fileman/images/filetypes/file_extension_rmvb.png b/Application/fileman/images/filetypes/file_extension_rmvb.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_rmvb.png rename to Application/fileman/images/filetypes/file_extension_rmvb.png diff --git a/out/fileman/images/filetypes/file_extension_rtf.png b/Application/fileman/images/filetypes/file_extension_rtf.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_rtf.png rename to Application/fileman/images/filetypes/file_extension_rtf.png diff --git a/out/fileman/images/filetypes/file_extension_sea.png b/Application/fileman/images/filetypes/file_extension_sea.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_sea.png rename to Application/fileman/images/filetypes/file_extension_sea.png diff --git a/out/fileman/images/filetypes/file_extension_ses.png b/Application/fileman/images/filetypes/file_extension_ses.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_ses.png rename to Application/fileman/images/filetypes/file_extension_ses.png diff --git a/out/fileman/images/filetypes/file_extension_sit.png b/Application/fileman/images/filetypes/file_extension_sit.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_sit.png rename to Application/fileman/images/filetypes/file_extension_sit.png diff --git a/out/fileman/images/filetypes/file_extension_sitx.png b/Application/fileman/images/filetypes/file_extension_sitx.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_sitx.png rename to Application/fileman/images/filetypes/file_extension_sitx.png diff --git a/out/fileman/images/filetypes/file_extension_ss.png b/Application/fileman/images/filetypes/file_extension_ss.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_ss.png rename to Application/fileman/images/filetypes/file_extension_ss.png diff --git a/out/fileman/images/filetypes/file_extension_swf.png b/Application/fileman/images/filetypes/file_extension_swf.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_swf.png rename to Application/fileman/images/filetypes/file_extension_swf.png diff --git a/out/fileman/images/filetypes/file_extension_tgz.png b/Application/fileman/images/filetypes/file_extension_tgz.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_tgz.png rename to Application/fileman/images/filetypes/file_extension_tgz.png diff --git a/out/fileman/images/filetypes/file_extension_thm.png b/Application/fileman/images/filetypes/file_extension_thm.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_thm.png rename to Application/fileman/images/filetypes/file_extension_thm.png diff --git a/out/fileman/images/filetypes/file_extension_tif.png b/Application/fileman/images/filetypes/file_extension_tif.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_tif.png rename to Application/fileman/images/filetypes/file_extension_tif.png diff --git a/out/fileman/images/filetypes/file_extension_tmp.png b/Application/fileman/images/filetypes/file_extension_tmp.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_tmp.png rename to Application/fileman/images/filetypes/file_extension_tmp.png diff --git a/out/fileman/images/filetypes/file_extension_torrent.png b/Application/fileman/images/filetypes/file_extension_torrent.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_torrent.png rename to Application/fileman/images/filetypes/file_extension_torrent.png diff --git a/out/fileman/images/filetypes/file_extension_ttf.png b/Application/fileman/images/filetypes/file_extension_ttf.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_ttf.png rename to Application/fileman/images/filetypes/file_extension_ttf.png diff --git a/out/fileman/images/filetypes/file_extension_txt.png b/Application/fileman/images/filetypes/file_extension_txt.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_txt.png rename to Application/fileman/images/filetypes/file_extension_txt.png diff --git a/out/fileman/images/filetypes/file_extension_vcd.png b/Application/fileman/images/filetypes/file_extension_vcd.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_vcd.png rename to Application/fileman/images/filetypes/file_extension_vcd.png diff --git a/out/fileman/images/filetypes/file_extension_vob.png b/Application/fileman/images/filetypes/file_extension_vob.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_vob.png rename to Application/fileman/images/filetypes/file_extension_vob.png diff --git a/out/fileman/images/filetypes/file_extension_wav.png b/Application/fileman/images/filetypes/file_extension_wav.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_wav.png rename to Application/fileman/images/filetypes/file_extension_wav.png diff --git a/out/fileman/images/filetypes/file_extension_wma.png b/Application/fileman/images/filetypes/file_extension_wma.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_wma.png rename to Application/fileman/images/filetypes/file_extension_wma.png diff --git a/out/fileman/images/filetypes/file_extension_wmv.png b/Application/fileman/images/filetypes/file_extension_wmv.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_wmv.png rename to Application/fileman/images/filetypes/file_extension_wmv.png diff --git a/out/fileman/images/filetypes/file_extension_wps.png b/Application/fileman/images/filetypes/file_extension_wps.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_wps.png rename to Application/fileman/images/filetypes/file_extension_wps.png diff --git a/out/fileman/images/filetypes/file_extension_xls.png b/Application/fileman/images/filetypes/file_extension_xls.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_xls.png rename to Application/fileman/images/filetypes/file_extension_xls.png diff --git a/out/fileman/images/filetypes/file_extension_xpi.png b/Application/fileman/images/filetypes/file_extension_xpi.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_xpi.png rename to Application/fileman/images/filetypes/file_extension_xpi.png diff --git a/out/fileman/images/filetypes/file_extension_zip.png b/Application/fileman/images/filetypes/file_extension_zip.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/file_extension_zip.png rename to Application/fileman/images/filetypes/file_extension_zip.png diff --git a/out/fileman/images/filetypes/unknown.png b/Application/fileman/images/filetypes/unknown.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/filetypes/unknown.png rename to Application/fileman/images/filetypes/unknown.png diff --git a/out/fileman/images/find.png b/Application/fileman/images/find.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/find.png rename to Application/fileman/images/find.png diff --git a/out/fileman/images/folder-add.png b/Application/fileman/images/folder-add.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/folder-add.png rename to Application/fileman/images/folder-add.png diff --git a/out/fileman/images/folder-delete.png b/Application/fileman/images/folder-delete.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/folder-delete.png rename to Application/fileman/images/folder-delete.png diff --git a/out/fileman/images/folder-download.png b/Application/fileman/images/folder-download.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/folder-download.png rename to Application/fileman/images/folder-download.png diff --git a/out/fileman/images/folder-green.png b/Application/fileman/images/folder-green.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/folder-green.png rename to Application/fileman/images/folder-green.png diff --git a/out/fileman/images/folder-opened.png b/Application/fileman/images/folder-opened.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/folder-opened.png rename to Application/fileman/images/folder-opened.png diff --git a/out/fileman/images/folder.png b/Application/fileman/images/folder.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/folder.png rename to Application/fileman/images/folder.png diff --git a/out/fileman/images/loading-dir.gif b/Application/fileman/images/loading-dir.gif old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/loading-dir.gif rename to Application/fileman/images/loading-dir.gif diff --git a/out/fileman/images/loading.gif b/Application/fileman/images/loading.gif old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/loading.gif rename to Application/fileman/images/loading.gif diff --git a/out/fileman/images/paste.png b/Application/fileman/images/paste.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/paste.png rename to Application/fileman/images/paste.png diff --git a/out/fileman/images/preview.png b/Application/fileman/images/preview.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/preview.png rename to Application/fileman/images/preview.png diff --git a/out/fileman/images/remove-upload - Copy.png b/Application/fileman/images/remove-upload - Copy.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/remove-upload - Copy.png rename to Application/fileman/images/remove-upload - Copy.png diff --git a/out/fileman/images/remove-upload.png b/Application/fileman/images/remove-upload.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/remove-upload.png rename to Application/fileman/images/remove-upload.png diff --git a/out/fileman/images/rename.png b/Application/fileman/images/rename.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/rename.png rename to Application/fileman/images/rename.png diff --git a/out/fileman/images/search.png b/Application/fileman/images/search.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/search.png rename to Application/fileman/images/search.png diff --git a/out/fileman/images/select.png b/Application/fileman/images/select.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/select.png rename to Application/fileman/images/select.png diff --git a/out/fileman/images/sprite.png b/Application/fileman/images/sprite.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/sprite.png rename to Application/fileman/images/sprite.png diff --git a/out/fileman/images/stripes-reverse.gif b/Application/fileman/images/stripes-reverse.gif old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/stripes-reverse.gif rename to Application/fileman/images/stripes-reverse.gif diff --git a/out/fileman/images/stripes.gif b/Application/fileman/images/stripes.gif old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/stripes.gif rename to Application/fileman/images/stripes.gif diff --git a/out/fileman/images/upload-big.png b/Application/fileman/images/upload-big.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/upload-big.png rename to Application/fileman/images/upload-big.png diff --git a/out/fileman/images/view-list.png b/Application/fileman/images/view-list.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/view-list.png rename to Application/fileman/images/view-list.png diff --git a/out/fileman/images/view-tile.png b/Application/fileman/images/view-tile.png old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/images/view-tile.png rename to Application/fileman/images/view-tile.png diff --git a/out/fileman/index.html b/Application/fileman/index.html old mode 100644 new mode 100755 similarity index 96% rename from out/fileman/index.html rename to Application/fileman/index.html index 9d1fe43..168fe9d --- a/out/fileman/index.html +++ b/Application/fileman/index.html @@ -26,7 +26,7 @@ Roxy file manager - + diff --git a/out/fileman/js/custom.js b/Application/fileman/js/custom.js old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/js/custom.js rename to Application/fileman/js/custom.js diff --git a/out/fileman/js/directory.js b/Application/fileman/js/directory.js old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/js/directory.js rename to Application/fileman/js/directory.js diff --git a/out/fileman/js/file.js b/Application/fileman/js/file.js old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/js/file.js rename to Application/fileman/js/file.js diff --git a/out/fileman/js/filetypes.js b/Application/fileman/js/filetypes.js old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/js/filetypes.js rename to Application/fileman/js/filetypes.js diff --git a/out/fileman/js/jquery-1.10.2.min.js b/Application/fileman/js/jquery-1.10.2.min.js old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/js/jquery-1.10.2.min.js rename to Application/fileman/js/jquery-1.10.2.min.js diff --git a/out/fileman/js/jquery-1.11.1.min.js b/Application/fileman/js/jquery-1.11.1.min.js old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/js/jquery-1.11.1.min.js rename to Application/fileman/js/jquery-1.11.1.min.js diff --git a/out/fileman/js/jquery-2.1.1.min.js b/Application/fileman/js/jquery-2.1.1.min.js old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/js/jquery-2.1.1.min.js rename to Application/fileman/js/jquery-2.1.1.min.js diff --git a/out/fileman/js/jquery-dateFormat.min.js b/Application/fileman/js/jquery-dateFormat.min.js old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/js/jquery-dateFormat.min.js rename to Application/fileman/js/jquery-dateFormat.min.js diff --git a/out/fileman/js/jquery-ui-1.10.4.custom.min.js b/Application/fileman/js/jquery-ui-1.10.4.custom.min.js old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/js/jquery-ui-1.10.4.custom.min.js rename to Application/fileman/js/jquery-ui-1.10.4.custom.min.js diff --git a/out/fileman/js/main.js b/Application/fileman/js/main.js old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/js/main.js rename to Application/fileman/js/main.js diff --git a/out/fileman/js/main.min.js b/Application/fileman/js/main.min.js old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/js/main.min.js rename to Application/fileman/js/main.min.js diff --git a/out/fileman/js/mini-main.js b/Application/fileman/js/mini-main.js old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/js/mini-main.js rename to Application/fileman/js/mini-main.js diff --git a/out/fileman/js/tiny_mce_popup.js b/Application/fileman/js/tiny_mce_popup.js old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/js/tiny_mce_popup.js rename to Application/fileman/js/tiny_mce_popup.js diff --git a/out/fileman/js/utils.js b/Application/fileman/js/utils.js old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/js/utils.js rename to Application/fileman/js/utils.js diff --git a/out/fileman/lang/bg.json b/Application/fileman/lang/bg.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/bg.json rename to Application/fileman/lang/bg.json diff --git a/out/fileman/lang/ca.json b/Application/fileman/lang/ca.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/ca.json rename to Application/fileman/lang/ca.json diff --git a/out/fileman/lang/cs.json b/Application/fileman/lang/cs.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/cs.json rename to Application/fileman/lang/cs.json diff --git a/out/fileman/lang/cs1.json b/Application/fileman/lang/cs1.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/cs1.json rename to Application/fileman/lang/cs1.json diff --git a/out/fileman/lang/da.json b/Application/fileman/lang/da.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/da.json rename to Application/fileman/lang/da.json diff --git a/out/fileman/lang/de.json b/Application/fileman/lang/de.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/de.json rename to Application/fileman/lang/de.json diff --git a/out/fileman/lang/en.json b/Application/fileman/lang/en.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/en.json rename to Application/fileman/lang/en.json diff --git a/out/fileman/lang/es.json b/Application/fileman/lang/es.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/es.json rename to Application/fileman/lang/es.json diff --git a/out/fileman/lang/fr.json b/Application/fileman/lang/fr.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/fr.json rename to Application/fileman/lang/fr.json diff --git a/out/fileman/lang/hu.json b/Application/fileman/lang/hu.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/hu.json rename to Application/fileman/lang/hu.json diff --git a/out/fileman/lang/it.json b/Application/fileman/lang/it.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/it.json rename to Application/fileman/lang/it.json diff --git a/out/fileman/lang/nl.json b/Application/fileman/lang/nl.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/nl.json rename to Application/fileman/lang/nl.json diff --git a/out/fileman/lang/pl.json b/Application/fileman/lang/pl.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/pl.json rename to Application/fileman/lang/pl.json diff --git a/out/fileman/lang/pt.json b/Application/fileman/lang/pt.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/pt.json rename to Application/fileman/lang/pt.json diff --git a/out/fileman/lang/ru.json b/Application/fileman/lang/ru.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/ru.json rename to Application/fileman/lang/ru.json diff --git a/out/fileman/lang/sk.json b/Application/fileman/lang/sk.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/sk.json rename to Application/fileman/lang/sk.json diff --git a/out/fileman/lang/tr.json b/Application/fileman/lang/tr.json old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/lang/tr.json rename to Application/fileman/lang/tr.json diff --git a/out/fileman/php/copydir.php b/Application/fileman/php/copydir.php old mode 100644 new mode 100755 similarity index 89% rename from out/fileman/php/copydir.php rename to Application/fileman/php/copydir.php index 6650fb6..48f26aa --- a/out/fileman/php/copydir.php +++ b/Application/fileman/php/copydir.php @@ -26,8 +26,8 @@ include 'functions.inc.php'; verifyAction('COPYDIR'); checkAccess('COPYDIR'); -$path = trim(empty($_POST['d'])?'':$_POST['d']); -$newPath = trim(empty($_POST['n'])?'':$_POST['n']); +$path = RoxyFile::FixPath(trim(empty($_POST['d'])?'':$_POST['d'])); +$newPath = RoxyFile::FixPath(trim(empty($_POST['n'])?'':$_POST['n'])); verifyPath($path); verifyPath($newPath); diff --git a/out/fileman/php/copyfile.php b/Application/fileman/php/copyfile.php old mode 100644 new mode 100755 similarity index 88% rename from out/fileman/php/copyfile.php rename to Application/fileman/php/copyfile.php index d6f696f..31ba048 --- a/out/fileman/php/copyfile.php +++ b/Application/fileman/php/copyfile.php @@ -26,8 +26,8 @@ include 'functions.inc.php'; verifyAction('COPYFILE'); checkAccess('COPYFILE'); -$path = trim(empty($_POST['f'])?'':$_POST['f']); -$newPath = trim(empty($_POST['n'])?'':$_POST['n']); +$path = RoxyFile::FixPath(trim(empty($_POST['f'])?'':$_POST['f'])); +$newPath = RoxyFile::FixPath(trim(empty($_POST['n'])?'':$_POST['n'])); if(!$newPath) $newPath = getFilesPath(); diff --git a/out/fileman/php/createdir.php b/Application/fileman/php/createdir.php old mode 100644 new mode 100755 similarity index 90% rename from out/fileman/php/createdir.php rename to Application/fileman/php/createdir.php index 9a7acb5..93c1bf6 --- a/out/fileman/php/createdir.php +++ b/Application/fileman/php/createdir.php @@ -26,8 +26,8 @@ include 'functions.inc.php'; verifyAction('CREATEDIR'); checkAccess('CREATEDIR'); -$path = trim(empty($_POST['d'])?'':$_POST['d']); -$name = trim(empty($_POST['n'])?'':$_POST['n']); +$path = RoxyFile::FixPath(trim(empty($_POST['d'])?'':$_POST['d'])); +$name = RoxyFile::FixPath(trim(empty($_POST['n'])?'':$_POST['n'])); verifyPath($path); if(is_dir(fixPath($path))){ diff --git a/out/fileman/php/deletedir.php b/Application/fileman/php/deletedir.php old mode 100644 new mode 100755 similarity index 95% rename from out/fileman/php/deletedir.php rename to Application/fileman/php/deletedir.php index 88fb720..db8306a --- a/out/fileman/php/deletedir.php +++ b/Application/fileman/php/deletedir.php @@ -26,7 +26,7 @@ include 'functions.inc.php'; verifyAction('DELETEDIR'); checkAccess('DELETEDIR'); -$path = trim(empty($_GET['d'])?'':$_GET['d']); +$path = RoxyFile::FixPath(trim(empty($_GET['d'])?'':$_GET['d'])); verifyPath($path); if(is_dir(fixPath($path))){ diff --git a/out/fileman/php/deletefile.php b/Application/fileman/php/deletefile.php old mode 100644 new mode 100755 similarity index 96% rename from out/fileman/php/deletefile.php rename to Application/fileman/php/deletefile.php index 09d899e..25d9ead --- a/out/fileman/php/deletefile.php +++ b/Application/fileman/php/deletefile.php @@ -26,7 +26,7 @@ include 'functions.inc.php'; verifyAction('DELETEFILE'); checkAccess('DELETEFILE'); -$path = trim($_POST['f']); +$path = RoxyFile::FixPath(trim($_POST['f'])); verifyPath($path); if(is_file(fixPath($path))){ diff --git a/out/fileman/php/dirtree.php b/Application/fileman/php/dirtree.php old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/php/dirtree.php rename to Application/fileman/php/dirtree.php diff --git a/out/fileman/php/download.php b/Application/fileman/php/download.php old mode 100644 new mode 100755 similarity index 93% rename from out/fileman/php/download.php rename to Application/fileman/php/download.php index 114f1f5..764897e --- a/out/fileman/php/download.php +++ b/Application/fileman/php/download.php @@ -26,7 +26,7 @@ include 'functions.inc.php'; verifyAction('DOWNLOAD'); checkAccess('DOWNLOAD'); -$path = trim($_GET['f']); +$path = RoxyFile::FixPath(trim($_GET['f'])); verifyPath($path); if(is_file(fixPath($path))){ diff --git a/out/fileman/php/downloaddir.php b/Application/fileman/php/downloaddir.php old mode 100644 new mode 100755 similarity index 94% rename from out/fileman/php/downloaddir.php rename to Application/fileman/php/downloaddir.php index 54f0b15..24bb436 --- a/out/fileman/php/downloaddir.php +++ b/Application/fileman/php/downloaddir.php @@ -26,7 +26,7 @@ include 'functions.inc.php'; verifyAction('DOWNLOADDIR'); checkAccess('DOWNLOADDIR'); -$path = trim($_GET['d']); +$path = RoxyFile::FixPath(trim($_GET['d'])); verifyPath($path); $path = fixPath($path); diff --git a/out/fileman/php/fileslist.php b/Application/fileman/php/fileslist.php old mode 100644 new mode 100755 similarity index 96% rename from out/fileman/php/fileslist.php rename to Application/fileman/php/fileslist.php index fe48325..c4713c6 --- a/out/fileman/php/fileslist.php +++ b/Application/fileman/php/fileslist.php @@ -26,7 +26,7 @@ include 'functions.inc.php'; verifyAction('FILESLIST'); checkAccess('FILESLIST'); -$path = (empty($_POST['d'])? getFilesPath(): $_POST['d']); +$path = RoxyFile::FixPath(empty($_POST['d'])? getFilesPath(): $_POST['d']); $type = (empty($_POST['type'])?'':strtolower($_POST['type'])); if($type != 'image' && $type != 'flash') $type = ''; diff --git a/out/fileman/php/functions.inc.php b/Application/fileman/php/functions.inc.php old mode 100644 new mode 100755 similarity index 99% rename from out/fileman/php/functions.inc.php rename to Application/fileman/php/functions.inc.php index dce4e22..3cc511b --- a/out/fileman/php/functions.inc.php +++ b/Application/fileman/php/functions.inc.php @@ -307,6 +307,8 @@ class RoxyFile{ } static public function FixPath($path){ $path = mb_ereg_replace('[\\\/]+', '/', $path); + $path = mb_ereg_replace('\.\.\/', '', $path); + return $path; } /** diff --git a/out/fileman/php/movedir.php b/Application/fileman/php/movedir.php old mode 100644 new mode 100755 similarity index 91% rename from out/fileman/php/movedir.php rename to Application/fileman/php/movedir.php index 4b916d0..55185c6 --- a/out/fileman/php/movedir.php +++ b/Application/fileman/php/movedir.php @@ -26,8 +26,8 @@ include 'functions.inc.php'; verifyAction('MOVEDIR'); checkAccess('MOVEDIR'); -$path = trim(empty($_GET['d'])?'':$_GET['d']); -$newPath = trim(empty($_GET['n'])?'':$_GET['n']); +$path = RoxyFile::FixPath(trim(empty($_GET['d'])?'':$_GET['d'])); +$newPath = RoxyFile::FixPath(trim(empty($_GET['n'])?'':$_GET['n'])); verifyPath($path); verifyPath($newPath); diff --git a/out/fileman/php/movefile.php b/Application/fileman/php/movefile.php old mode 100644 new mode 100755 similarity index 91% rename from out/fileman/php/movefile.php rename to Application/fileman/php/movefile.php index 3f172be..bd661b2 --- a/out/fileman/php/movefile.php +++ b/Application/fileman/php/movefile.php @@ -26,8 +26,8 @@ include 'functions.inc.php'; verifyAction('MOVEFILE'); checkAccess('MOVEFILE'); -$path = trim(empty($_POST['f'])?'':$_POST['f']); -$newPath = trim(empty($_POST['n'])?'':$_POST['n']); +$path = RoxyFile::FixPath(trim(empty($_POST['f'])?'':$_POST['f'])); +$newPath = RoxyFile::FixPath(trim(empty($_POST['n'])?'':$_POST['n'])); if(!$newPath) $newPath = getFilesPath(); verifyPath($path); diff --git a/out/fileman/php/renamedir.php b/Application/fileman/php/renamedir.php old mode 100644 new mode 100755 similarity index 90% rename from out/fileman/php/renamedir.php rename to Application/fileman/php/renamedir.php index 6490c44..f490aff --- a/out/fileman/php/renamedir.php +++ b/Application/fileman/php/renamedir.php @@ -26,8 +26,8 @@ include 'functions.inc.php'; verifyAction('RENAMEDIR'); checkAccess('RENAMEDIR'); -$path = trim(empty($_POST['d'])? '': $_POST['d']); -$name = trim(empty($_POST['n'])? '': $_POST['n']); +$path = RoxyFile::FixPath(trim(empty($_POST['d'])? '': $_POST['d'])); +$name = RoxyFile::FixPath(trim(empty($_POST['n'])? '': $_POST['n'])); verifyPath($path); if(is_dir(fixPath($path))){ diff --git a/out/fileman/php/renamefile.php b/Application/fileman/php/renamefile.php old mode 100644 new mode 100755 similarity index 91% rename from out/fileman/php/renamefile.php rename to Application/fileman/php/renamefile.php index 9b892fe..fdb3b43 --- a/out/fileman/php/renamefile.php +++ b/Application/fileman/php/renamefile.php @@ -26,8 +26,8 @@ include 'functions.inc.php'; verifyAction('RENAMEFILE'); checkAccess('RENAMEFILE'); -$path = trim(empty($_POST['f'])?'':$_POST['f']); -$name = trim(empty($_POST['n'])?'':$_POST['n']); +$path = RoxyFile::FixPath(trim(empty($_POST['f'])?'':$_POST['f'])); +$name = RoxyFile::FixPath(trim(empty($_POST['n'])?'':$_POST['n'])); verifyPath($path); if(is_file(fixPath($path))){ diff --git a/Application/fileman/php/security.inc.php b/Application/fileman/php/security.inc.php new file mode 100755 index 0000000..300aa6d --- /dev/null +++ b/Application/fileman/php/security.inc.php @@ -0,0 +1,26 @@ +. + + Contact: Lyubomir Arsov, liubo (at) web-lobby.com +*/ +function checkAccess($action) { + if($_COOKIE['filemanagerkey'] !== md5_file("../../../../../../config.inc.php")) die('nice try, noob.'); +} +?> \ No newline at end of file diff --git a/out/fileman/php/thumb.php b/Application/fileman/php/thumb.php old mode 100644 new mode 100755 similarity index 95% rename from out/fileman/php/thumb.php rename to Application/fileman/php/thumb.php index 9f75ba4..0304ca0 --- a/out/fileman/php/thumb.php +++ b/Application/fileman/php/thumb.php @@ -29,7 +29,7 @@ header("Cache-Control: max-age=3600"); verifyAction('GENERATETHUMB'); checkAccess('GENERATETHUMB'); -$path = urldecode(empty($_GET['f'])?'':$_GET['f']); +$path = RoxyFile::FixPath(urldecode(empty($_GET['f'])?'':$_GET['f'])); verifyPath($path); @chmod(fixPath(dirname($path)), octdec(DIRPERMISSIONS)); diff --git a/out/fileman/php/upload.php b/Application/fileman/php/upload.php old mode 100644 new mode 100755 similarity index 97% rename from out/fileman/php/upload.php rename to Application/fileman/php/upload.php index fbf25b9..f34fe04 --- a/out/fileman/php/upload.php +++ b/Application/fileman/php/upload.php @@ -28,7 +28,7 @@ checkAccess('UPLOAD'); $isAjax = (isset($_POST['method']) && $_POST['method'] == 'ajax'); -$path = trim(empty($_POST['d'])?getFilesPath():$_POST['d']); +$path = RoxyFile::FixPath(trim(empty($_POST['d'])?getFilesPath():$_POST['d'])); verifyPath($path); $res = ''; if(is_dir(fixPath($path))){ diff --git a/out/fileman/system.inc.php b/Application/fileman/system.inc.php old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/system.inc.php rename to Application/fileman/system.inc.php diff --git a/out/fileman/third-party.txt b/Application/fileman/third-party.txt old mode 100644 new mode 100755 similarity index 100% rename from out/fileman/third-party.txt rename to Application/fileman/third-party.txt diff --git a/Application/views/admin/filemanager.tpl b/Application/views/admin/filemanager.tpl new file mode 100755 index 0000000..d247096 --- /dev/null +++ b/Application/views/admin/filemanager.tpl @@ -0,0 +1,148 @@ + + + + + + +Roxy File Manager + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+ Loading directories...
+ +
+
+
    +
    +
    + + +
    + + + + + + +
    + Order by: +    + +    + +
    +
    +
    +
    + Loading files...
    + +
    +
    + This folder is empty +
    +
    + No files found +
    +
      +
      +
      +
      +    © 2013 - RoxyFileman + +
      Status bar
      +
      + + + +
      +
      + +

      + +
      +
      +
      +
      +
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      + + + \ No newline at end of file diff --git a/Application/views/admin/tinymcehelper.tpl b/Application/views/admin/helper.tpl similarity index 100% rename from Application/views/admin/tinymcehelper.tpl rename to Application/views/admin/helper.tpl diff --git a/Application/views/blocks/admin/bottomnaviitem_admin_bottomnaviitem.tpl b/Application/views/blocks/admin/bottomnaviitem_admin_bottomnaviitem.tpl old mode 100644 new mode 100755 index b991781..392151a --- a/Application/views/blocks/admin/bottomnaviitem_admin_bottomnaviitem.tpl +++ b/Application/views/blocks/admin/bottomnaviitem_admin_bottomnaviitem.tpl @@ -1,3 +1,2 @@ [{$smarty.block.parent}] - [{if method_exists($oViewConf,'loadTinyMce') }][{ $oViewConf->loadTinyMce() }][{/if}] \ No newline at end of file diff --git a/build/.jshintrc b/build/.jshintrc deleted file mode 100644 index 8a54807..0000000 --- a/build/.jshintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "esversion": 6, - "node": true, - "curly": false -} \ No newline at end of file diff --git a/build/README.md b/build/README.md deleted file mode 100644 index 5d701d1..0000000 --- a/build/README.md +++ /dev/null @@ -1,65 +0,0 @@ -## ___DESCRIPTION___ -by ___AUTHOR___, ___COMPANY___ <___EMAIL___> -___URL___ -### module version ___VERSION___ - -TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL. -More information here: http://www.tinymce.com/ -and here: https://github.com/tinymce - -# bitte entfernen Sie vollständig das alte bla-TinyMCE Modul, bevor Sie das neue hochladen! - * Modul im Backend deaktivieren - * modules/bla/bla-tinymce löschen - * tmp/ leeren - -# please completely remove the older module version before update! - * deactivate module in backend - * remove modules/bla/bla-tinymce - * clear tmp/ - -## more info here: [https://marat.ws/bla-tinymce/](http:/marat.ws/bla-tinymce/) - -### changelog -- **2017-10-02 :: version 2.1.1** - - rollback to TinyMCE 4.6.6, because of issues with filemanager -- **2017-09-25 :: version 2.1.0** - - TinyMCE 4.6.7 - - increased maximum image size for upload via filemanager -- **2017-06-20 :: version 2.0.3** - - TinyMCE 4.6.4 -- **2017-01-11 :: version 2.0.2** - - TinyMCE 4.5.2 - - fullscreen editing plugin -- **2016-09-07 :: version 2.0.1** - - TinyMCE 4.4.3 - - link url conversion fixed. TinyMCE accepts smarty tags/variables as URL wirhout convertig them to absolute URL. -- **2016-09-07 :: version 2.0.0** - - TinyMCE 4.4.1 - - eingebauter Filemanager "Roxy Fileman" -- **2015-07-29 :: version 1.5.0** - - TinyMCE 4.2.2 -- **2015-05-06 :: version 1.4.0** - - TinyMCE 4.1.10 - - fix: data-mce attributes removed from html output -- **2014-09-04 :: version 1.3.1** - - TinyMCE v4.1.4 - - fix: fullpage Plugin für Newsletter hinzugefügt -- **2014-08-20 :: version 1.3.0** - - TinyMCE v4.1.3 - - feature: Support für eigene Text-Felder hinzugefügt -- **2014-04-23 :: version 1.2.2** - - TinyMCE 4.0.10 - - fix: iframes werden nicht mehr ersetzt - -### LICENSE AGREEMENT - ___NAME___ - Copyright (C) ___YEAR___ ___COMPANY___ - info: ___EMAIL___ - - This program is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; - either version 3 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; - without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along with this program; if not, see diff --git a/build/metadata.php b/build/metadata.php deleted file mode 100644 index 7e512e9..0000000 --- a/build/metadata.php +++ /dev/null @@ -1,125 +0,0 @@ - - * - * ___AUTHOR___ - */ - - -$sMetadataVersion = '1.1'; -$aModule = [ - 'id' => 'bla-tinymce', - 'title' => 'bestlife TinyMCE', - 'description' => '___DESCRIPTION___', - 'thumbnail' => 'tinymce.png', - 'version' => '___VERSION___', - 'author' => '___AUTHOR___, ___COMPANY___', - 'email' => '___EMAIL___', - 'url' => '___URL___', - 'extend' => ['oxviewconfig' => 'bla/bla-tinymce/application/core/blatinymceoxviewconfig'], - 'files' => ['tinymcehelper' => 'bla/bla-tinymce/application/controllers/admin/tinymcehelper.php'], - 'templates' => ['tinymcehelper.tpl' => 'bla/bla-tinymce/application/views/admin/tinymcehelper.tpl'], - 'blocks' => [ - [ - 'template' => 'bottomnaviitem.tpl', - 'block' => 'admin_bottomnaviitem', - 'file' => '/application/views/blocks/admin/bottomnaviitem_admin_bottomnaviitem.tpl' - ] - ], - 'settings' => [ - /* enabling tinyMCE for these classes */ - [ - 'group' => 'tinyMceMain', - 'name' => 'blTinyMCE_filemanager', - 'type' => 'bool', - 'value' => true, - 'position' => 0 - ], - [ - 'group' => 'tinyMceMain', - 'name' => 'aTinyMCE_classes', - 'type' => 'arr', - 'value' => [ - "article_main", - "category_text", - "content_main", - "newsletter_main", - "news_text" - ], - 'position' => 1 - ], - [ - 'group' => 'tinyMceMain', - 'name' => 'aTinyMCE_plaincms', - 'type' => 'arr', - 'value' => [ - "oxadminorderplainemail", - "oxadminordernpplainemail", // bestellbenachrichtigung admin + fremdländer - "oxuserorderplainemail", - "oxuserordernpplainemail", - "oxuserorderemailendplain", // bestellbenachrichtigung user + fremdländer + abschluss - "oxordersendplainemail", // versandbestätigung - "oxregisterplainemail", - "oxregisterplainaltemail", // registrierung - "oxupdatepassinfoplainemail", // passwort update - "oxnewsletterplainemail", // newsletter - "oxemailfooterplain", // email fußtext - "oxrighttocancellegend", - "oxrighttocancellegend2", // widerrufsrecht - "oxstartmetadescription", - "oxstartmetakeywords" // META Tags - ], - 'position' => 2 - ], - [ - 'group' => 'tinyMceMain', - 'name' => 'aTinyMCE_extjs', - 'type' => 'arr', - 'value' => [], - 'position' => 3 - ], - - - // ################################################################# tinymce settings - - [ - 'group' => 'tinyMceSettings', - 'name' => 'aTinyMCE_config', - 'type' => 'aarr', - 'value' => [], - 'position' => 0 - ], - [ - 'group' => 'tinyMceSettings', - 'name' => 'aTinyMCE_plugins', - 'type' => 'aarr', - 'value' => [], - 'position' => 1 - ], - [ - 'group' => 'tinyMceSettings', - 'name' => 'aTinyMCE_external_plugins', - 'type' => 'aarr', - 'value' => [], - 'position' => 2 - ], - [ - 'group' => 'tinyMceSettings', - 'name' => 'aTinyMCE_buttons', - 'type' => 'arr', - 'value' => [], - 'position' => 3 - ] - ] -]; diff --git a/build/package-lock.json b/build/package-lock.json deleted file mode 100644 index fc58b82..0000000 --- a/build/package-lock.json +++ /dev/null @@ -1,747 +0,0 @@ -{ - "name": "oxid-module-tinymce", - "version": "3.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "big-integer": { - "version": "1.6.48", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", - "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" - }, - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "requires": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - } - }, - "bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=" - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer-indexof-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.1.tgz", - "integrity": "sha1-qfuAbOgUXVQoUQznLyeLs2OmOL8=" - }, - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "requires": { - "traverse": ">=0.3.0 <0.4" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cheerio": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", - "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.0", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash.assignin": "^4.0.9", - "lodash.bind": "^4.1.4", - "lodash.defaults": "^4.0.1", - "lodash.filter": "^4.4.0", - "lodash.flatten": "^4.2.0", - "lodash.foreach": "^4.3.0", - "lodash.map": "^4.4.0", - "lodash.merge": "^4.4.0", - "lodash.pick": "^4.2.1", - "lodash.reduce": "^4.4.0", - "lodash.reject": "^4.4.0", - "lodash.some": "^4.4.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "requires": { - "readable-stream": "^2.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "jsonfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^1.0.0" - } - }, - "listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=" - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash.assignin": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", - "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=" - }, - "lodash.bind": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", - "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" - }, - "lodash.filter": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", - "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" - }, - "lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" - }, - "lodash.reduce": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", - "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" - }, - "lodash.reject": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", - "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=" - }, - "lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "requires": { - "boolbase": "~1.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "replace": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/replace/-/replace-1.2.0.tgz", - "integrity": "sha512-e3AP5GkRk+N/Qm1MUBaMhEHr4X3sHNI44a8m4ww6/qShJphTsStxSezbYtFNTFGCXZtWrwz4McVvCEwBv+ebAw==", - "requires": { - "chalk": "2.4.2", - "minimatch": "3.0.4", - "yargs": "^15.3.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" - }, - "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" - }, - "unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", - "requires": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yargs": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", - "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.1" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } -} diff --git a/build/package.json b/build/package.json deleted file mode 100644 index 62db765..0000000 --- a/build/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "oxid-module-tinymce", - "version": "3.0.0", - "description": "TinyMCE 5 Integration for OXID eShop V6.2", - "author": "Marat Bedoev", - "url": "https://github.com/vanilla-thunder/oxid-module-tinymce", - "license": "GPL-3.0", - "repository": { - "type": "git", - "url": "git://github.com/vanilla-thunder/oxid-module-tinymce.git" - }, - "bugs": { - "url": "https://github.com/vanilla-thunder/oxid-module-tinymce/issues" - }, - "keywords": [ - "tinymce", - "oxid", - "editor", - "wysiwyg" - ], - "dependencies": { - "node-fetch": "*", - "unzipper": "*", - "cheerio": "*", - "fs-extra": "*", - "replace": "*" - }, - "scripts": { - "build": "node --harmony update.js" - } -} diff --git a/build/update.js b/build/update.js deleted file mode 100644 index 04f4695..0000000 --- a/build/update.js +++ /dev/null @@ -1,159 +0,0 @@ -"use strict"; - -const fs = require('fs'), - fetch = require('node-fetch'), - cheerio = require('cheerio'), - unzipper = require('unzipper'), - replace = require('replace'), - runner = require('child_process'); - - -var shell = function (command) -{ - runner.exec(command, - function (err, stdout, stderr) - { - //if (err) console.log(err); - //if (stderr) console.log(stderr); - } - ); -}; - -var error = function (err) -{ - console.error(" ############################################################"); - console.error(" # " + err); - console.error(" ############################################################"); - process.exit(); -}; -var log = function (msg) -{ - var shlomo = " |"; - console.log(" | " + msg + shlomo.substring(msg.length)); -}; - - -console.log(""); -console.log(" ___________________________ updating TinyMCE started ___________________________"); - -fetch("https://portal.tiny.cloud/v1/editor/versions") - .then(res => res.json()) - .then(json => - { - //if (err || res.statusCode !== 200) error(err); - - if (fs.existsSync("../out/tinymce")) - { - shell("rm -rf ../out/tinymce"); - log(""); - log("-> removing old tinymce"); - } - - const tinymceurl = json.latest.productionUrl; - log(""); - log("-> downloading newest TinyMCE"); - log(" " + tinymceurl); - - fetch(tinymceurl) - .then(res => { - - log(""); - log("-> extracting TinyMCE"); - - res.body.pipe(unzipper.Extract({path:'./'}).on("close", () => { - fs.renameSync(__dirname+'/tinymce/js/tinymce',__dirname+'/../out/tinymce'); - shell("rm -rf ./tinymce"); - })); - - log(""); - log("-> downloading latest language files:"); - log(" CS, DA, DE, FR, IT, NL, RU"); - - fetch('https://www.tiny.cloud/tinymce-services-azure/1/i18n/download?langs=cs,da,nl,fr_FR,de,it,ru') - .then(res => { - log(""); - log("-> extracting language files"); - res.body.pipe( - unzipper.Extract({path:'./'}) - .on("close", () => { - /* @todo: shell() könnte man durch nodejs libraries ersetzern */ - shell("mv ./langs/* ../out/tinymce/langs && rm -rf ./langs"); - }) - ); - }); - }); - - - - }); -/* -request("http://www.roxyfileman.com/download", function (err, res, body) { - if (err || res.statusCode !== 200) error(err); - - // (re)moving old tinymce files - if (fs.existsSync("fileman")) { - shell("rm -rf fileman"); - log(""); - log("-> removing old filemanager"); - } - - var roxyurl = 'http://www.roxyfileman.com' + cheerio.load(body)('#content a.btnSpecial').eq(0).attr('href'); - log(""); - log("-> downloading newest Roxy Fileman"); - log(" " + roxyurl); - - request - .get(roxyurl) - .pipe( - fs.createWriteStream('tmp_fileman.zip') - .on('finish', function () { - log(""); - log("-> extracting Roxy Fileman"); - new AdmZip('tmp_fileman.zip').extractAllTo("./", true); - fs.unlinkSync('tmp_fileman.zip'); - - log(""); - log("-> updating Filemanager config"); - // "FILES_ROOT":"" => "FILES_ROOT": "/out/pictures/wysiwigpro" - replace({ - regex: /\"FILES_ROOT\"\s*\:\s*""\,/, - replacement: '"FILES_ROOT": "/out/pictures/wysiwigpro",', - paths: ['./fileman/conf.json'], - recursive: false, - silent: true - }); - // "INTEGRATION":"custom" => "INTEGRATION":"tinymce4", - replace({ - regex: /\"INTEGRATION\"\s*\:\s*"custom"\,/, - replacement: '"INTEGRATION": "tinymce4",', - paths: ['./fileman/conf.json'], - recursive: false, - silent: true - }); - // "MAX_IMAGE_WIDTH":"1000" => "MAX_IMAGE_WIDTH":"2000", - replace({ - regex: /\"MAX_IMAGE_WIDTH\"\s*\:\s*"1000"\,/, - replacement: '"MAX_IMAGE_WIDTH": "2000",', - paths: ['./fileman/conf.json'], - recursive: false, - silent: true - }); - // "MAX_IMAGE_HEIGHT":"1000" => "MAX_IMAGE_HEIGHT":"2000", - replace({ - regex: /\"MAX_IMAGE_HEIGHT\"\s*\:\s*"1000"\,/, - replacement: '"MAX_IMAGE_HEIGHT": "2000",', - paths: ['./fileman/conf.json'], - recursive: false, - silent: true - }); - shell("cp -f application/core/security.inc.php fileman/php/security.inc.php"); - }) - ); -}); - */ -process.on('exit', function () -{ - log(""); - console.log(" |__________________________ update process finished ___________________________|"); - console.log(""); -}); \ No newline at end of file diff --git a/build/update.sh b/build/update.sh new file mode 100755 index 0000000..8aacf6d --- /dev/null +++ b/build/update.sh @@ -0,0 +1,3 @@ +#/bin/bash + +wget https://www.tiny.cloud/tinymce-services-azure/1/package/download?plugins=advlist,anchor,autolink,autoresize,charmap,code,colorpicker,contextmenu,directionality,fullpage,fullscreen,hr,image,imagetools,importcss,insertdatetime,legacyoutput,link,lists,media,nonbreaking,noneditable,pagebreak,paste,preview,searchreplace,tabfocus,table,textcolor,textpattern,toc,visualblocks,wordcount&themes=modern,inlite,mobile&skins=lightgray&combine=true -o tinymce.zip \ No newline at end of file diff --git a/composer.json b/composer.json old mode 100644 new mode 100755 index 592e933..d566a5e --- a/composer.json +++ b/composer.json @@ -15,19 +15,19 @@ ], "extra": { "oxideshop": { - "target-directory": "vt/tinymce" + "target-directory": "vt/TinyMCE" } }, "archive": { "exclude": ["/build"] }, "require": { - "php": ">=5.6", + "php": ">=7.0", "oxid-esales/oxideshop-ce": "^v6.2" }, "autoload": { "psr-4": { - "VanillaThunder\\TinymceModule\\": "../../../source/modules/vt/tinymce" + "VanillaThunder\\TinyMCE\\": "../../../source/modules/vt/TinyMCE" } } } diff --git a/metadata.php b/metadata.php old mode 100644 new mode 100755 index 55141c9..702a912 --- a/metadata.php +++ b/metadata.php @@ -17,17 +17,24 @@ $sMetadataVersion = '2.1'; $aModule = [ 'id' => 'vt-tinymce', - 'title' => '[VT] TinyMCE', - 'description' => 'TinyMCE 5 Integration for OXID eShop V6.2', + 'title' => '[vt] TinyMCE', + 'description' => 'TinyMCE 5 Integration for OXID eShop ≥ V6.2', 'thumbnail' => 'tinymce.png', - 'version' => '3.0.0 ( 2020-06-06 )', + 'version' => '3.1.0 ( 2021-10-20 )', 'author' => 'Marat Bedoev', 'email' => openssl_decrypt("Az6pE7kPbtnTzjHlPhPCa4ktJLphZ/w9gKgo5vA//p4=", str_rot13("nrf-128-pop"), str_rot13("gvalzpr")), 'url' => 'https://github.com/vanilla-thunder/oxid-module-tinymce', 'extend' => [ - \OxidEsales\Eshop\Core\ViewConfig::class => \VanillaThunder\TinymceModule\Application\Core\ViewConfig::class + OxidEsales\Eshop\Core\ViewConfig::class => VanillaThunder\TinyMCE\Application\Core\ViewConfig::class + ], + 'controllers' => [ + 'tinyfilemanager' => VanillaThunder\TinyMCE\Application\Controller\Admin\TinyFileManager::class, + 'tinyhelper' => VanillaThunder\TinyMCE\Application\Controller\Admin\TinyHelper::class + ], + 'templates' => [ + 'tiny/filemanager.tpl' => 'vt/TinyMCE/Application/views/admin/filemanager.tpl', + 'tiny/helper.tpl' => 'vt/TinyMCE/Application/views/admin/helper.tpl' ], - 'templates' => ['tinymcehelper.tpl' => 'vt/tinymce/application/views/admin/tinymcehelper.tpl'], 'blocks' => [ [ 'template' => 'bottomnaviitem.tpl', @@ -37,13 +44,6 @@ $aModule = [ ], 'settings' => [ /* enabling tinyMCE for these classes */ - [ - 'group' => 'tinyMceMain', - 'name' => 'blTinyMCE_filemanager', - 'type' => 'bool', - 'value' => true, - 'position' => 0 - ], [ 'group' => 'tinyMceMain', 'name' => 'aTinyMCE_classes', @@ -55,7 +55,7 @@ $aModule = [ "newsletter_main", "news_text" ], - 'position' => 1 + 'position' => 0 ], [ 'group' => 'tinyMceMain', @@ -78,6 +78,13 @@ $aModule = [ "oxstartmetadescription", "oxstartmetakeywords" // META Tags ], + 'position' => 1 + ], + [ + 'group' => 'tinyMceMain', + 'name' => 'blTinyMCE_filemanager', + 'type' => 'bool', + 'value' => true, 'position' => 2 ], [ diff --git a/out/fileman/conf.json b/out/fileman/conf.json deleted file mode 100644 index ff1d422..0000000 --- a/out/fileman/conf.json +++ /dev/null @@ -1,35 +0,0 @@ -{ -"FILES_ROOT": "/out/pictures/wysiwigpro", -"RETURN_URL_PREFIX": "", -"SESSION_PATH_KEY": "", -"THUMBS_VIEW_WIDTH": "140", -"THUMBS_VIEW_HEIGHT": "120", -"PREVIEW_THUMB_WIDTH": "100", -"PREVIEW_THUMB_HEIGHT":"100", -"MAX_IMAGE_WIDTH": "2000", -"MAX_IMAGE_HEIGHT": "2000", -"INTEGRATION": "tinymce4", -"DIRLIST": "php/dirtree.php", -"CREATEDIR": "php/createdir.php", -"DELETEDIR": "php/deletedir.php", -"MOVEDIR": "php/movedir.php", -"COPYDIR": "php/copydir.php", -"RENAMEDIR": "php/renamedir.php", -"FILESLIST": "php/fileslist.php", -"UPLOAD": "php/upload.php", -"DOWNLOAD": "php/download.php", -"DOWNLOADDIR": "php/downloaddir.php", -"DELETEFILE": "php/deletefile.php", -"MOVEFILE": "php/movefile.php", -"COPYFILE": "php/copyfile.php", -"RENAMEFILE": "php/renamefile.php", -"GENERATETHUMB": "php/thumb.php", -"DEFAULTVIEW": "list", -"FORBIDDEN_UPLOADS": "zip js jsp jsb mhtml mht xhtml xht php phtml php3 php4 php5 phps shtml jhtml pl sh py cgi exe application gadget hta cpl msc jar vb jse ws wsf wsc wsh ps1 ps2 psc1 psc2 msh msh1 msh2 inf reg scf msp scr dll msi vbs bat com pif cmd vxd cpl htpasswd htaccess", -"ALLOWED_UPLOADS": "", -"FILEPERMISSIONS": "0644", -"DIRPERMISSIONS": "0755", -"LANG": "auto", -"DATEFORMAT": "dd/MM/yyyy HH:mm", -"OPEN_LAST_DIR": "yes" -} \ No newline at end of file diff --git a/out/fileman/php/security.inc.php b/out/fileman/php/security.inc.php deleted file mode 100644 index c43f85d..0000000 --- a/out/fileman/php/security.inc.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * Marat Bedoev - */ - -function checkAccess($action) -{ - //if(!session_id()) die("Access Denied!"); - //if(!session_id()) session_start(); - //if(isset($_GET['akey'])) $_SESSION['akey'] = strip_tags(preg_replace( "/[^a-zA-Z0-9\._-]/", '', $_GET['akey'])); - if($_COOKIE['filemanagerkey'] !== md5($_SERVER['DOCUMENT_ROOT'].$_COOKIE['admin_sid'])) die('Access Denied!!'); -} \ No newline at end of file diff --git a/out/plugins/oxfullscreen/plugin.js b/out/plugins/oxfullscreen/plugin.js old mode 100644 new mode 100755 index d5faa2d..d9a8e61 --- a/out/plugins/oxfullscreen/plugin.js +++ b/out/plugins/oxfullscreen/plugin.js @@ -13,31 +13,33 @@ /*global tinymce:true */ -tinymce.PluginManager.add('oxfullscreen', function (editor, url) -{ - editor.ui.registry.addToggleButton('fullscreen', { - tooltip: 'Fullscreen', - icon: 'fullscreen', - shortcut: 'Meta+Alt+F', - active: false, - onAction: (api) => - { - const topframeset = top.document.getElementsByTagName("frameset"); - topframeset[0].setAttribute("cols", (topframeset[0].getAttribute("cols") === "200,*" ? "1px,*" : "200,*")); - topframeset[1].setAttribute("rows", (topframeset[1].getAttribute("rows") === "54,*" ? "1px,*" : "54,*")); - const parentframeset = parent.document.getElementsByTagName("frameset"); - parentframeset[0].setAttribute("rows", (parentframeset[0].getAttribute("rows") === "40%,*" ? "1px,*" : "40%,*")); - api.setActive(!api.isActive()); - } - }); +(function () { + 'use strict'; + var PM = tinymce.util.Tools.resolve('tinymce.PluginManager'); - return { - getMetadata: () => - { - return { - name: "TinyMCE Fullscreen Editing Plugin for OXID eShop", - url: "https://github.com/vanilla-thunder/oxid-module-tinymce" - }; - } - }; -}); \ No newline at end of file + PM.add('oxfullscreen', function (editor) { + editor.ui.registry.addToggleButton('fullscreen', { + tooltip: 'Fullscreen', + icon: 'fullscreen', + shortcut: 'Meta+Alt+F', + active: false, + onAction: (api) => { + const topframeset = top.document.getElementsByTagName("frameset"); + topframeset[0].setAttribute("cols", (topframeset[0].getAttribute("cols") === "200,*" ? "1px,*" : "200,*")); + topframeset[1].setAttribute("rows", (topframeset[1].getAttribute("rows") === "54,*" ? "1px,*" : "54,*")); + const parentframeset = parent.document.getElementsByTagName("frameset"); + parentframeset[0].setAttribute("rows", (parentframeset[0].getAttribute("rows") === "40%,*" ? "1px,*" : "40%,*")); + api.setActive(!api.isActive()); + } + }); + + return { + getMetadata: () => { + return { + name: "TinyMCE Fullscreen Editing Plugin for OXID eShop", + url: "https://github.com/vanilla-thunder/oxid-module-tinymce" + }; + } + }; + }); +}()); \ No newline at end of file diff --git a/out/plugins/roxy/plugin.js b/out/plugins/roxy/plugin.js old mode 100644 new mode 100755 index 34e6878..5f1df9a --- a/out/plugins/roxy/plugin.js +++ b/out/plugins/roxy/plugin.js @@ -1,9 +1,6 @@ /** - * bla-tinymce - * Copyright (C) 2017 bestlife AG - * info: oxid@bestlife.ag - * - * GNU GENERAL PUBLIC LICENSE + * vanilla-thunder/oxid-module-tinymce + * TinyMCE 5 Integration for OXID eShop V6.2 * * This program is free software; * you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; @@ -12,37 +9,42 @@ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * You should have received a copy of the GNU General Public License along with this program; if not, see - * - * Marat Bedoev */ -tinymce.PluginManager.add('roxy', function(editor) -{ - tinymce.activeEditor.settings.file_browser_callback = roxyFilemanager; +/*global tinymce:true */ - function roxyFilemanager (id, value, type, win) - { +(function () { + 'use strict'; + var PluginManager = tinymce.util.Tools.resolve('tinymce.PluginManager'); + PluginManager.add('roxy', function (editor) { - var url = editor.settings.external_filemanager_path+'index.html'; - if (url.indexOf("?") < 0) { url += "?type=" + type; } - else { url += "&type=" + type; } + editor.settings.file_picker_callback = function ($callback, $value, $meta) { + console.log($callback); + console.log($value); + console.log($meta); + //var selectedimage = - url += '&input=' + id + '&value=' + win.document.getElementById(id).value; - if(tinyMCE.activeEditor.settings.language) { url += '&langCode=' + tinyMCE.activeEditor.settings.language; } - if(tinyMCE.activeEditor.settings.filemanager_access_key) { url += '&akey=' + tinyMCE.activeEditor.settings.filemanager_access_key; } + var url = editor.settings.filemanager_url + + "&type=" + $meta.filetype + + '&value=' + $value + + '&selected=' + $value; - tinymce.activeEditor.windowManager.open({ - title: 'Filemanager', - file: url, - width: window.innerWidth, - height: window.innerHeight-40, - resizable: false, - maximizable: false, - plugins: "media", - inline: 1 - }, { - window: win, - input: id - }); - } -}); \ No newline at end of file + + if (editor.settings.language) { + url += '&langCode=' + editor.settings.language; + } + if (editor.settings.filemanager_access_key) { + url += '&akey=' + editor.settings.filemanager_access_key; + } + + editor.windowManager.openUrl({ + title: 'Filemanager', + url: url, + width: window.innerWidth, + height: window.innerHeight - 40 + }); + + //$callback('myimage.jpg', {alt: 'My alt text'}); + }; + }); +}()); \ No newline at end of file diff --git a/out/plugins/tfm/plugin.js b/out/plugins/tfm/plugin.js new file mode 100755 index 0000000..eb9b9ee --- /dev/null +++ b/out/plugins/tfm/plugin.js @@ -0,0 +1,46 @@ +/** + * vanilla-thunder/oxid-module-tinymce + * TinyMCE 5 Integration for OXID eShop V6.2 + * + * This program is free software; + * you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; + * either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program; if not, see + */ + +/*global tinymce:true */ + +(function () { + 'use strict'; + var PM = tinymce.util.Tools.resolve('tinymce.PluginManager'); + PM.add('tfm', function(editor) + { + tinymce.activeEditor.settings.file_picker_callback = function (id, value, type, win) + { + var url = editor.settings.external_filemanager_path; + //if (url.indexOf("?") < 0) { url += "?type=" + type; } + //else { url += "&type=" + type; } +/* + url += '&input=' + id + '&value=' + win.document.getElementById(id).value; + if(tinyMCE.activeEditor.settings.language) { url += '&langCode=' + tinyMCE.activeEditor.settings.language; } + if(tinyMCE.activeEditor.settings.filemanager_access_key) { url += '&akey=' + tinyMCE.activeEditor.settings.filemanager_access_key; } +*/ + tinymce.activeEditor.windowManager.open({ + title: 'Filemanager', + file: url, + width: window.innerWidth, + height: window.innerHeight-40, + resizable: false, + maximizable: false, + plugins: "media", + inline: 1 + }, { + window: win, + input: id + }); + } + }); +}()); \ No newline at end of file