Initial commit

This commit is contained in:
2021-03-23 13:54:38 +01:00
commit 82b142ff95
16941 changed files with 2617212 additions and 0 deletions

View File

@@ -0,0 +1,295 @@
<?php
include('config/config.php');
if($_SESSION['RF']["verify"] != "RESPONSIVEfilemanager") die('Access Denied!');
include('include/utils.php');
if (isset($_SESSION['RF']['language_file']) && file_exists($_SESSION['RF']['language_file'])){
include($_SESSION['RF']['language_file']);
}
else {
die('Language file is missing!');
}
if(isset($_GET['action']))
{
switch($_GET['action'])
{
case 'view':
if(isset($_GET['type'])) {
$_SESSION['RF']["view_type"] = $_GET['type'];
}
else {
die('view type number missing');
}
break;
case 'sort':
if(isset($_GET['sort_by'])) {
$_SESSION['RF']["sort_by"] = $_GET['sort_by'];
}
if(isset($_GET['descending'])) {
$_SESSION['RF']["descending"] = $_GET['descending'] === "TRUE";
}
break;
case 'image_size': // not used
$pos = strpos($_POST['path'],$upload_dir);
if ($pos !== FALSE)
{
$info=getimagesize(substr_replace($_POST['path'],$current_path,$pos,strlen($upload_dir)));
echo json_encode($info);
}
break;
case 'save_img':
$info=pathinfo($_POST['name']);
if (strpos($_POST['path'], '/') === 0
|| strpos($_POST['path'], '../') !== FALSE
|| strpos($_POST['path'], './') === 0
|| strpos($_POST['url'], 'http://featherfiles.aviary.com/') !== 0
|| $_POST['name'] != fix_filename($_POST['name'], $transliteration)
|| !in_array(strtolower($info['extension']), array('jpg','jpeg','png')))
{
die('wrong data');
}
$image_data = get_file_by_url($_POST['url']);
if ($image_data === FALSE)
{
die(lang_Aviary_No_Save);
}
file_put_contents($current_path.$_POST['path'].$_POST['name'],$image_data);
create_img_gd($current_path.$_POST['path'].$_POST['name'], $thumbs_base_path.$_POST['path'].$_POST['name'], 122, 91);
// TODO something with this function cause its blowing my mind
new_thumbnails_creation($current_path.$_POST['path'],$current_path.$_POST['path'].$_POST['name'],$_POST['name'],$current_path,$relative_image_creation,$relative_path_from_current_pos,$relative_image_creation_name_to_prepend,$relative_image_creation_name_to_append,$relative_image_creation_width,$relative_image_creation_height,$fixed_image_creation,$fixed_path_from_filemanager,$fixed_image_creation_name_to_prepend,$fixed_image_creation_to_append,$fixed_image_creation_width,$fixed_image_creation_height);
break;
case 'extract':
if(strpos($_POST['path'],'/')===0 || strpos($_POST['path'],'../')!==FALSE || strpos($_POST['path'],'./')===0) {
die('wrong path');
}
$path = $current_path.$_POST['path'];
$info = pathinfo($path);
$base_folder = $current_path.fix_dirname($_POST['path'])."/";
switch($info['extension'])
{
case "zip":
$zip = new ZipArchive;
if ($zip->open($path) === TRUE) {
//make all the folders
for($i = 0; $i < $zip->numFiles; $i++)
{
$OnlyFileName = $zip->getNameIndex($i);
$FullFileName = $zip->statIndex($i);
if (substr($FullFileName['name'], -1, 1) =="/")
{
create_folder($base_folder.$FullFileName['name']);
}
}
//unzip into the folders
for($i = 0; $i < $zip->numFiles; $i++)
{
$OnlyFileName = $zip->getNameIndex($i);
$FullFileName = $zip->statIndex($i);
if (!(substr($FullFileName['name'], -1, 1) =="/"))
{
$fileinfo = pathinfo($OnlyFileName);
if(in_array(strtolower($fileinfo['extension']),$ext))
{
copy('zip://'. $path .'#'. $OnlyFileName , $base_folder.$FullFileName['name'] );
}
}
}
$zip->close();
}
else {
die(lang_Zip_No_Extract);
}
break;
case "gz":
$p = new PharData($path);
$p->decompress(); // creates files.tar
break;
case "tar":
// unarchive from the tar
$phar = new PharData($path);
$phar->decompressFiles();
$files = array();
check_files_extensions_on_phar( $phar, $files, '', $ext );
$phar->extractTo( $current_path.fix_dirname( $_POST['path'] )."/", $files, TRUE );
break;
default:
die(lang_Zip_Invalid);
}
break;
case 'media_preview':
$preview_file = $_GET["file"];
$info = pathinfo($preview_file);
?>
<div id="jp_container_1" class="jp-video " style="margin:0 auto;">
<div class="jp-type-single">
<div id="jquery_jplayer_1" class="jp-jplayer"></div>
<div class="jp-gui">
<div class="jp-video-play">
<a href="javascript:;" class="jp-video-play-icon" tabindex="1">play</a>
</div>
<div class="jp-interface">
<div class="jp-progress">
<div class="jp-seek-bar">
<div class="jp-play-bar"></div>
</div>
</div>
<div class="jp-current-time"></div>
<div class="jp-duration"></div>
<div class="jp-controls-holder">
<ul class="jp-controls">
<li><a href="javascript:;" class="jp-play" tabindex="1">play</a></li>
<li><a href="javascript:;" class="jp-pause" tabindex="1">pause</a></li>
<li><a href="javascript:;" class="jp-stop" tabindex="1">stop</a></li>
<li><a href="javascript:;" class="jp-mute" tabindex="1" title="mute">mute</a></li>
<li><a href="javascript:;" class="jp-unmute" tabindex="1" title="unmute">unmute</a></li>
<li><a href="javascript:;" class="jp-volume-max" tabindex="1" title="max volume">max volume</a></li>
</ul>
<div class="jp-volume-bar">
<div class="jp-volume-bar-value"></div>
</div>
<ul class="jp-toggles">
<li><a href="javascript:;" class="jp-full-screen" tabindex="1" title="full screen">full screen</a></li>
<li><a href="javascript:;" class="jp-restore-screen" tabindex="1" title="restore screen">restore screen</a></li>
<li><a href="javascript:;" class="jp-repeat" tabindex="1" title="repeat">repeat</a></li>
<li><a href="javascript:;" class="jp-repeat-off" tabindex="1" title="repeat off">repeat off</a></li>
</ul>
</div>
<div class="jp-title" style="display:none;">
<ul>
<li></li>
</ul>
</div>
</div>
</div>
<div class="jp-no-solution">
<span>Update Required</span>
To play the media you will need to either update your browser to a recent version or update your <a href="http://get.adobe.com/flashplayer/" target="_blank">Flash plugin</a>.
</div>
</div>
</div>
<?php
if(in_array(strtolower($info['extension']), $ext_music)) {
?>
<script type="text/javascript">
$(document).ready(function(){
$("#jquery_jplayer_1").jPlayer({
ready: function () {
$(this).jPlayer("setMedia", {
title:"<?php $_GET['title']; ?>",
mp3: "<?php echo $preview_file; ?>",
m4a: "<?php echo $preview_file; ?>",
oga: "<?php echo $preview_file; ?>",
wav: "<?php echo $preview_file; ?>"
});
},
swfPath: "js",
solution:"html,flash",
supplied: "mp3, m4a, midi, mid, oga,webma, ogg, wav",
smoothPlayBar: true,
keyEnabled: false
});
});
</script>
<?php
} elseif(in_array(strtolower($info['extension']), $ext_video)) {
?>
<script type="text/javascript">
$(document).ready(function(){
$("#jquery_jplayer_1").jPlayer({
ready: function () {
$(this).jPlayer("setMedia", {
title:"<?php $_GET['title']; ?>",
m4v: "<?php echo $preview_file; ?>",
ogv: "<?php echo $preview_file; ?>"
});
},
swfPath: "js",
solution:"html,flash",
supplied: "mp4, m4v, ogv, flv, webmv, webm",
smoothPlayBar: true,
keyEnabled: false
});
});
</script>
<?php
}
break;
case 'copy_cut':
if ($_POST['sub_action'] != 'copy' && $_POST['sub_action'] != 'cut') {
die('wrong sub-action');
}
if (trim($_POST['path']) == '' || trim($_POST['path_thumb']) == '') {
die('no path');
}
$path = $current_path.$_POST['path'];
if (is_dir($path))
{
// can't copy/cut dirs
if ($copy_cut_dirs === FALSE){
die(sprintf(lang_Copy_Cut_Not_Allowed, ($_POST['sub_action'] == 'copy' ? lcfirst(lang_Copy) : lcfirst(lang_Cut)), lang_Folders));
}
// size over limit
if ($copy_cut_max_size !== FALSE && is_int($copy_cut_max_size)){
if (($copy_cut_max_size * 1024 * 1024) < foldersize($path)){
die(sprintf(lang_Copy_Cut_Size_Limit, ($_POST['sub_action'] == 'copy' ? lcfirst(lang_Copy) : lcfirst(lang_Cut)), $copy_cut_max_size));
}
}
// file count over limit
if ($copy_cut_max_count !== FALSE && is_int($copy_cut_max_count)){
if ($copy_cut_max_count < filescount($path)){
die(sprintf(lang_Copy_Cut_Count_Limit, ($_POST['sub_action'] == 'copy' ? lcfirst(lang_Copy) : lcfirst(lang_Cut)), $copy_cut_max_count));
}
}
}
else {
// can't copy/cut files
if ($copy_cut_files === FALSE){
die(sprintf(lang_Copy_Cut_Not_Allowed, ($_POST['sub_action'] == 'copy' ? lcfirst(lang_Copy) : lcfirst(lang_Cut)), lang_Files));
}
}
$_SESSION['RF']['clipboard']['path'] = $_POST['path'];
$_SESSION['RF']['clipboard']['path_thumb'] = $_POST['path_thumb'];
$_SESSION['RF']['clipboard_action'] = $_POST['sub_action'];
break;
case 'clear_clipboard':
$_SESSION['RF']['clipboard'] = NULL;
$_SESSION['RF']['clipboard_action'] = NULL;
break;
default: die('no action passed');
}
}
else
{
die('no action passed');
}
?>

View File

@@ -0,0 +1 @@
Deny from all

View File

@@ -0,0 +1,349 @@
<?php
use Thelia\Core\HttpFoundation\Request;
use Thelia\Core\Thelia;
use Thelia\Model\ConfigQuery;
use Symfony\Component\Filesystem\Filesystem;
function generateFolder($env)
{
$webMediaPath = THELIA_WEB_DIR.'media';
$webMediaEnvPath = null;
if ($env !== "prod") {
//Remove separtion between dev and prod in particular environment
$env = str_replace('_dev', '', $env);
$webMediaEnvPath = $webMediaPath.DS.$env;
}
$fileSystem = new Filesystem();
// Create the media directory in the web root , if required
if (null !== $webMediaEnvPath) {
if (false === $fileSystem->exists($webMediaEnvPath)) {
$fileSystem->mkdir($webMediaEnvPath.DS.'upload');
$fileSystem->mkdir($webMediaEnvPath.DS.'thumbs');
}
} else {
if (false === $fileSystem->exists($webMediaPath)) {
$fileSystem->mkdir($webMediaPath.DS.'upload');
$fileSystem->mkdir($webMediaPath.DS.'thumbs');
}
}
}
$env = getenv('THELIA_ENV') ?: 'prod';
if (file_exists(__DIR__.'/../../../../../../../../core/vendor/autoload.php')) {
// Symlinked with std install
require_once __DIR__.'/../../../../../../../../core/vendor/autoload.php';
} elseif (file_exists(__DIR__.'/../../../../core/vendor/autoload.php')) {
// Hard copy with std install
require_once __DIR__.'/../../../../core/vendor/autoload.php';
} elseif (file_exists(__DIR__.'/../../../../../../../../bootstrap.php')) {
// Symlinked with thelia-project
require_once __DIR__.'/../../../../../../../../bootstrap.php';
} elseif (file_exists(__DIR__.'/../../../../bootstrap.php')) {
// Hard copy with thelia-project
require_once __DIR__.'/../../../../bootstrap.php';
}
/** @var Request $request */
$request = Request::createFromGlobals();
$thelia = new Thelia($env, false);
$thelia->boot();
/** @var \Symfony\Component\DependencyInjection\ContainerInterface $container */
$container = $thelia->getContainer();
$eventDispatcher = $container->get('event_dispatcher');
$container->get('thelia.translator');
$container->get('thelia.url.manager');
$container->set('request', $request);
$container->get('request_stack')->push($request);
$event = new \Thelia\Core\Event\SessionEvent(THELIA_CACHE_DIR.$env, false, $env);
$eventDispatcher->dispatch(\Thelia\Core\TheliaKernelEvents::SESSION, $event);
$session = $event->getSession();
$session->start();
$request->setSession($session);
/** @var \Thelia\Core\Security\SecurityContext $securityContext */
$securityContext = $container->get('thelia.securityContext');
// We just check the current user has the ADMIN role.
$isGranted = $securityContext->isGranted(['ADMIN'], [], [], []);
if (false === $isGranted) {
echo "Sorry, it seems that you're not allowed to use this function. ADMIN role is required.";
exit;
}
//------------------------------------------------------------------------------
// DO NOT COPY THESE VARIABLES IN FOLDERS config.php FILES
//------------------------------------------------------------------------------
//**********************
//Path configuration
//**********************
// In this configuration the media folder is located in the /web directory.
// base url of site (without final /). if you prefer relative urls leave empty.
$base_url = rtrim(ConfigQuery::getConfiguredShopUrl(), '/');
// Argh, url_site is not defined ?!
if (empty($base_url)) {
// A we did not used the router to access this dialog, we cannot use the URL class. Use the good old method.
$base_url = $request->getSchemeAndHttpHost().preg_replace('!/tinymce/filemanager/dialog.php.*$!', '', $_SERVER['REQUEST_URI']);
}
//Check for backward compatibility
if ($env !== "prod") {
// path from base_url to base of upload folder for current env (with start and final /)
$upload_dir = '/media/'.$env.'/upload/';
// path from base_url to base of upload folder for current env (with start and final /)
$thumbs_dir = '/media/'.$env.'/thumbs/';
// path to file manager folder to upload folder for current env (with final /)
$current_path = THELIA_WEB_DIR.'media'.DS.$env.DS.'upload'.DS;
// path to file manager folder to thumbs folder for current env (with final /)
// WARNING: thumbs folder should not be inside the upload folder
$thumbs_base_path = THELIA_WEB_DIR.'media'.DS.$env.DS.'thumbs'.DS;
} else {
// path from base_url to base of upload folder (with start and final /)
$upload_dir = '/media/upload/';
// path from base_url to base of upload folder (with start and final /)
$thumbs_dir = '/media/thumbs/';
// path to file manager folder to upload folder (with final /)
$current_path = THELIA_WEB_DIR.'media'.DS.'upload'.DS;
// path to file manager folder to thumbs folder (with final /)
// WARNING: thumbs folder should not be inside the upload folder
$thumbs_base_path = THELIA_WEB_DIR.'media'.DS.'thumbs'.DS;
}
generateFolder($env);
// path from base_url to filemanager folder (with start and final /)
$filemanager_dir = '/tinymce/filemanager/';
// Set the language to the back-office current language, if it is available
$current_locale = $request->getSession()->getLang()->getLocale();
if (file_exists(__DIR__.DS.'..'.DS.'lang.'.DS.$current_locale.'.php')) {
$default_language = $current_locale;
} else {
$default_language = 'en_EN';
}
// OPTIONAL SECURITY
// if set to true only those will access RF whose url contains the access key(akey) like:
// <input type="button" href="../filemanager/dialog.php?field_id=imgField&lang=en_EN&akey=myPrivateKey" value="Files">
// in tinymce a new parameter added: filemanager_access_key:"myPrivateKey"
// example tinymce config:
// tiny init ...
//
// external_filemanager_path:"../filemanager/",
// filemanager_title:"Filemanager" ,
// filemanager_access_key:"myPrivateKey" ,
// ...
define('USE_ACCESS_KEYS', false); // TRUE or FALSE
// add access keys eg: array('myPrivateKey', 'someoneElseKey');
// keys should only containt (a-z A-Z 0-9 \ . _ -) characters
// if you are integrating lets say to a cms for admins, i recommend making keys randomized something like this:
// $username = 'Admin';
// $salt = 'dsflFWR9u2xQa' (a hard coded string)
// $akey = md5($username.$salt);
// DO NOT use 'key' as access key!
// Keys are CASE SENSITIVE!
$access_keys = array('myPrivateKey', 'someoneElseKey');
//--------------------------------------------------------------------------------------------------------
// YOU CAN COPY AND CHANGE THESE VARIABLES INTO FOLDERS config.php FILES TO CUSTOMIZE EACH FOLDER OPTIONS
//--------------------------------------------------------------------------------------------------------
$MaxSizeUpload = 100; //Mb
// SERVER OVERRIDE
if ((int) (ini_get('post_max_size')) < $MaxSizeUpload) {
$MaxSizeUpload = (int) (ini_get('post_max_size'));
}
// $default_language = "en_EN"; //default language file name
$icon_theme = "ico"; //ico or ico_dark you can cusatomize just putting a folder inside filemanager/img
$show_folder_size = true; //Show or not show folder size in list view feature in filemanager (is possible, if there is a large folder, to greatly increase the calculations)
$show_sorting_bar = true; //Show or not show sorting feature in filemanager
$loading_bar = true; //Show or not show loading bar
$transliteration = false; //active or deactive the transliteration (mean convert all strange characters in A..Za..z0..9 characters)
//*******************************************
//Images limit and resizing configuration
//*******************************************
// set maximum pixel width and/or maximum pixel height for all images
// If you set a maximum width or height, oversized images are converted to those limits. Images smaller than the limit(s) are unaffected
// if you don't need a limit set both to 0
$image_max_width = 0;
$image_max_height = 0;
//Automatic resizing //
// If you set $image_resizing to TRUE the script converts all uploaded images exactly to image_resizing_width x image_resizing_height dimension
// If you set width or height to 0 the script automatically calculates the other dimension
// Is possible that if you upload very big images the script not work to overcome this increase the php configuration of memory and time limit
$image_resizing = false;
$image_resizing_width = 0;
$image_resizing_height = 0;
//******************
// Default layout setting
//
// 0 => boxes
// 1 => detailed list (1 column)
// 2 => columns list (multiple columns depending on the width of the page)
// YOU CAN ALSO PASS THIS PARAMETERS USING SESSION VAR => $_SESSION['RF']["VIEW"]=
//
//******************
$default_view = 0;
//set if the filename is truncated when overflow first row
$ellipsis_title_after_first_row = true;
//*************************
//Permissions configuration
//******************
$delete_files = true;
$create_folders = true;
$delete_folders = true;
$upload_files = true;
$rename_files = true;
$rename_folders = true;
$duplicate_files = true;
$copy_cut_files = true; // for copy/cut files
$copy_cut_dirs = true; // for copy/cut directories
// defines size limit for paste in MB / operation
// set 'FALSE' for no limit
$copy_cut_max_size = 100;
// defines file count limit for paste / operation
// set 'FALSE' for no limit
$copy_cut_max_count = 200;
//IF any of these limits reached, operation won't start and generate warning
//**********************
//Allowed extensions (lowercase insert)
//**********************
$ext_img = array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg'); //Images
$ext_file = array(
'doc',
'docx',
'rtf',
'pdf',
'xls',
'xlsx',
'txt',
'csv',
'html',
'xhtml',
'psd',
'sql',
'log',
'fla',
'xml',
'ade',
'adp',
'mdb',
'accdb',
'ppt',
'pptx',
'odt',
'ots',
'ott',
'odb',
'odg',
'otp',
'otg',
'odf',
'ods',
'odp',
'css',
'ai',
); //Files
$ext_video = array('mov', 'mpeg', 'mp4', 'avi', 'mpg', 'wma', "flv", "webm"); //Video
$ext_music = array('mp3', 'm4a', 'ac3', 'aiff', 'mid', 'ogg', 'wav'); //Audio
$ext_misc = array('zip', 'rar', 'gz', 'tar', 'iso', 'dmg'); //Archives
$ext = array_merge($ext_img, $ext_file, $ext_misc, $ext_video, $ext_music); //allowed extensions
/******************
* AVIARY config
*******************/
$aviary_active = false;
$aviary_key = "dvh8qudbp6yx2bnp";
$aviary_secret = "m6xaym5q42rpw433";
$aviary_version = 3;
$aviary_language = 'en';
//The filter and sorter are managed through both javascript and php scripts because if you have a lot of
//file in a folder the javascript script can't sort all or filter all, so the filemanager switch to php script.
//The plugin automatic swich javascript to php when the current folder exceeds the below limit of files number
$file_number_limit_js = 500;
//**********************
// Hidden files and folders
//**********************
// set the names of any folders you want hidden (eg "hidden_folder1", "hidden_folder2" ) Remember all folders with these names will be hidden (you can set any exceptions in config.php files on folders)
$hidden_folders = array();
// set the names of any files you want hidden. Remember these names will be hidden in all folders (eg "this_document.pdf", "that_image.jpg" )
$hidden_files = array('config.php');
/*******************
* JAVA upload
*******************/
$java_upload = true;
$JAVAMaxSizeUpload = 200; //Gb
//************************************
//Thumbnail for external use creation
//************************************
// New image resized creation with fixed path from filemanager folder after uploading (thumbnails in fixed mode)
// If you want create images resized out of upload folder for use with external script you can choose this method,
// You can create also more than one image at a time just simply add a value in the array
// Remember than the image creation respect the folder hierarchy so if you are inside source/test/test1/ the new image will create at
// path_from_filemanager/test/test1/
// PS if there isn't write permission in your destination folder you must set it
$fixed_image_creation = false; //activate or not the creation of one or more image resized with fixed path from filemanager folder
$fixed_path_from_filemanager = array(
'../test/',
'../test1/',
); //fixed path of the image folder from the current position on upload folder
$fixed_image_creation_name_to_prepend = array('', 'test_'); //name to prepend on filename
$fixed_image_creation_to_append = array('_test', ''); //name to appendon filename
$fixed_image_creation_width = array(300, 400); //width of image (you can leave empty if you set height)
$fixed_image_creation_height = array(200, ''); //height of image (you can leave empty if you set width)
// New image resized creation with relative path inside to upload folder after uploading (thumbnails in relative mode)
// With Responsive filemanager you can create automatically resized image inside the upload folder, also more than one at a time
// just simply add a value in the array
// The image creation path is always relative so if i'm inside source/test/test1 and I upload an image, the path start from here
$relative_image_creation = false; //activate or not the creation of one or more image resized with relative path from upload folder
$relative_path_from_current_pos = array(
'thumb/',
'thumb/',
); //relative path of the image folder from the current position on upload folder
$relative_image_creation_name_to_prepend = array('', 'test_'); //name to prepend on filename
$relative_image_creation_name_to_append = array('_test', ''); //name to append on filename
$relative_image_creation_width = array(300, 400); //width of image (you can leave empty if you set height)
$relative_image_creation_height = array(200, ''); //height of image (you can leave empty if you set width)
;

View File

@@ -0,0 +1,6 @@
/*!
* bootstrap-lightbox.css v0.6.0
* Copyright 2013 Jason Butz
* http://www.apache.org/licenses/LICENSE-2.0.txt
*/
.lightbox{position:relative;top:70px;z-index:1050;line-height:0;text-align:center;background-color:transparent;outline:0}.lightbox .hide{display:none}.lightbox .in{display:block}.lightbox-content{display:inline-block;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.lightbox-content .lightbox-caption{position:absolute;right:12px;bottom:11px;left:11px;padding:2%;font-size:14px;line-height:18px;color:white;text-align:center;text-shadow:0 -1px 0 #000;text-shadow:0 -1px 0 rgba(0,0,0,0.3);background:#000;background:rgba(0,0,0,0.6)}.lightbox-header .close{margin-top:-16px;margin-right:-16px;font-size:2em;color:white;opacity:.8;filter:alpha(opacity=80)}.lightbox-header .close :hover{opacity:.4;filter:alpha(opacity=40)}

View File

@@ -0,0 +1,8 @@
/*!
* Bootstrap Modal
*
* Copyright Jordan Schroter
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*/.modal-open{overflow:hidden}.modal-open.page-overflow .page-container,.modal-open.page-overflow .page-container .navbar-fixed-top,.modal-open.page-overflow .page-container .navbar-fixed-bottom,.modal-open.page-overflow .modal-scrollable{overflow-y:scroll}@media (max-width:840px){.modal-open.page-overflow .page-container .navbar-fixed-top,.modal-open.page-overflow .page-container .navbar-fixed-bottom{overflow-y:visible}}.modal-scrollable{position:fixed;top:0;bottom:0;left:0;right:0;overflow:auto}.modal{outline:0;position:absolute;margin-top:0;top:50%;overflow:visible}.modal.fade{top:-100%;-webkit-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out}.modal.fade.in{top:50%}.modal-body{max-height:none;overflow:visible}.modal.modal-absolute{position:absolute;z-index:950}.modal .loading-mask{position:absolute;top:0;bottom:0;left:0;right:0;background:#fff;border-radius:6px}.modal-backdrop.modal-absolute{position:absolute;z-index:940}.modal-backdrop,.modal-backdrop.fade.in{opacity:.85;filter:alpha(opacity=85);background:#eee}.modal.container{width:940px;margin-left:-470px}.modal-overflow.modal{top:1%}.modal-overflow.modal.fade{top:-100%}.modal-overflow.modal.fade.in{top:1%}.modal-overflow .modal-body{overflow:auto;-webkit-overflow-scrolling:touch}@media (min-width:1200px){.modal.container{width:1170px;margin-left:-585px}}@media (max-width:840px){.modal,.modal.container,.modal.modal-overflow{top:1%;right:1%;left:1%;bottom:auto;width:auto!important;height:auto!important;margin:0!important;padding:0!important}.modal.fade.in,.modal.container.fade.in,.modal.modal-overflow.fade.in{top:1%;bottom:auto}.modal-body,.modal-overflow .modal-body{position:static;margin:0;height:auto!important;max-height:none!important;overflow:visible!important}.modal-footer,.modal-overflow .modal-footer{position:static}}.loading-spinner{position:absolute;top:50%;left:50%;margin:-12px 0 0 -12px}.animated{-webkit-animation-duration:1s;-moz-animation-duration:1s;-o-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px)}}@-moz-keyframes shake{0%,100%{-moz-transform:translateX(0)}10%,30%,50%,70%,90%{-moz-transform:translateX(-10px)}20%,40%,60%,80%{-moz-transform:translateX(10px)}}@-o-keyframes shake{0%,100%{-o-transform:translateX(0)}10%,30%,50%,70%,90%{-o-transform:translateX(-10px)}20%,40%,60%,80%{-o-transform:translateX(10px)}}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}.shake{-webkit-animation-name:shake;-moz-animation-name:shake;-o-animation-name:shake;animation-name:shake}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,410 @@
/* The MIT License */
.dropzone,
.dropzone *,
.dropzone-previews,
.dropzone-previews * {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.dropzone {
position: relative;
border: 1px solid rgba(0,0,0,0.08);
background: rgba(0,0,0,0.02);
padding: 1em;
}
.dropzone.dz-clickable {
cursor: pointer;
}
.dropzone.dz-clickable .dz-message,
.dropzone.dz-clickable .dz-message span {
cursor: pointer;
}
.dropzone.dz-clickable * {
cursor: default;
}
.dropzone .dz-message {
opacity: 1;
-ms-filter: none;
filter: none;
}
.dropzone.dz-drag-hover {
border-color: rgba(0,0,0,0.15);
background: rgba(0,0,0,0.04);
}
.dropzone.dz-started .dz-message {
display: none;
}
.dropzone .dz-preview,
.dropzone-previews .dz-preview {
background: rgba(255,255,255,0.8);
position: relative;
display: inline-block;
margin: 17px;
vertical-align: top;
border: 1px solid #acacac;
padding: 6px 6px 6px 6px;
}
.dropzone .dz-preview.dz-file-preview [data-dz-thumbnail],
.dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail] {
display: none;
}
.dropzone .dz-preview .dz-details,
.dropzone-previews .dz-preview .dz-details {
width: 100px;
height: 100px;
position: relative;
background: #ebebeb;
padding: 5px;
margin-bottom: 22px;
}
.dropzone .dz-preview .dz-details .dz-filename,
.dropzone-previews .dz-preview .dz-details .dz-filename {
overflow: hidden;
height: 100%;
}
.dropzone .dz-preview .dz-details img,
.dropzone-previews .dz-preview .dz-details img {
position: absolute;
top: 0;
left: 0;
width: 100px;
height: 100px;
}
.dropzone .dz-preview .dz-details .dz-size,
.dropzone-previews .dz-preview .dz-details .dz-size {
position: absolute;
bottom: -28px;
left: 3px;
height: 28px;
line-height: 28px;
}
.dropzone .dz-preview.dz-error .dz-error-mark,
.dropzone-previews .dz-preview.dz-error .dz-error-mark {
display: block;
}
.dropzone .dz-preview.dz-success .dz-success-mark,
.dropzone-previews .dz-preview.dz-success .dz-success-mark {
display: block;
}
.dropzone .dz-preview:hover .dz-details img,
.dropzone-previews .dz-preview:hover .dz-details img {
display: none;
}
.dropzone .dz-preview .dz-success-mark,
.dropzone-previews .dz-preview .dz-success-mark,
.dropzone .dz-preview .dz-error-mark,
.dropzone-previews .dz-preview .dz-error-mark {
display: none;
position: absolute;
width: 40px;
height: 40px;
font-size: 30px;
text-align: center;
right: -10px;
top: -10px;
}
.dropzone .dz-preview .dz-success-mark,
.dropzone-previews .dz-preview .dz-success-mark {
color: #8cc657;
}
.dropzone .dz-preview .dz-error-mark,
.dropzone-previews .dz-preview .dz-error-mark {
color: #ee162d;
}
.dropzone .dz-preview .dz-progress,
.dropzone-previews .dz-preview .dz-progress {
position: absolute;
top: 100px;
left: 6px;
right: 6px;
height: 6px;
background: #d7d7d7;
display: none;
}
.dropzone .dz-preview .dz-progress .dz-upload,
.dropzone-previews .dz-preview .dz-progress .dz-upload {
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 0%;
background-color: #8cc657;
}
.dropzone .dz-preview.dz-processing .dz-progress,
.dropzone-previews .dz-preview.dz-processing .dz-progress {
display: block;
}
.dropzone .dz-preview .dz-error-message,
.dropzone-previews .dz-preview .dz-error-message {
display: none;
position: absolute;
top: -5px;
left: -20px;
background: rgba(245,245,245,0.8);
padding: 8px 10px;
color: #800;
min-width: 140px;
max-width: 500px;
z-index: 500;
}
.dropzone .dz-preview:hover.dz-error .dz-error-message,
.dropzone-previews .dz-preview:hover.dz-error .dz-error-message {
display: block;
}
.dropzone {
border: 1px solid rgba(0,0,0,0.03);
min-height: 360px;
-webkit-border-radius: 3px;
border-radius: 3px;
background: rgba(0,0,0,0.03);
padding: 23px;
}
.dropzone .dz-default.dz-message {
opacity: 1;
-ms-filter: none;
filter: none;
-webkit-transition: opacity 0.3s ease-in-out;
-moz-transition: opacity 0.3s ease-in-out;
-o-transition: opacity 0.3s ease-in-out;
-ms-transition: opacity 0.3s ease-in-out;
transition: opacity 0.3s ease-in-out;
/*background-image: url("../img/spritemap.png");*/
background-repeat: no-repeat;
background-position: 0 0;
position: absolute;
width: 428px;
height: 123px;
margin-left: -214px;
margin-top: -61.5px;
top: 50%;
left: 50%;
}
@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) {
.dropzone .dz-default.dz-message {
/*background-image: url("../img/spritemap@2x.png");*/
-webkit-background-size: 428px 406px;
-moz-background-size: 428px 406px;
background-size: 428px 406px;
}
}
.dropzone .dz-default.dz-message span {
display: none;
}
.dropzone.dz-square .dz-default.dz-message {
background-position: 0 -123px;
width: 268px;
margin-left: -134px;
height: 174px;
margin-top: -87px;
}
.dropzone.dz-drag-hover .dz-message {
opacity: 0.15;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=15)";
filter: alpha(opacity=15);
}
.dropzone.dz-started .dz-message {
display: block;
opacity: 0;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
}
.dropzone .dz-preview,
.dropzone-previews .dz-preview {
-webkit-box-shadow: 1px 1px 4px rgba(0,0,0,0.16);
box-shadow: 1px 1px 4px rgba(0,0,0,0.16);
font-size: 14px;
}
.dropzone .dz-preview.dz-image-preview:hover .dz-details img,
.dropzone-previews .dz-preview.dz-image-preview:hover .dz-details img {
display: block;
opacity: 0.1;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)";
filter: alpha(opacity=10);
}
.dropzone .dz-preview.dz-success .dz-success-mark,
.dropzone-previews .dz-preview.dz-success .dz-success-mark {
opacity: 1;
-ms-filter: none;
filter: none;
}
.dropzone .dz-preview.dz-error .dz-error-mark,
.dropzone-previews .dz-preview.dz-error .dz-error-mark {
opacity: 1;
-ms-filter: none;
filter: none;
}
.dropzone .dz-preview.dz-error .dz-progress .dz-upload,
.dropzone-previews .dz-preview.dz-error .dz-progress .dz-upload {
background: #ee1e2d;
}
.dropzone .dz-preview .dz-error-mark,
.dropzone-previews .dz-preview .dz-error-mark,
.dropzone .dz-preview .dz-success-mark,
.dropzone-previews .dz-preview .dz-success-mark {
display: block;
opacity: 0;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
-webkit-transition: opacity 0.4s ease-in-out;
-moz-transition: opacity 0.4s ease-in-out;
-o-transition: opacity 0.4s ease-in-out;
-ms-transition: opacity 0.4s ease-in-out;
transition: opacity 0.4s ease-in-out;
/*background-image: url("../img/spritemap.png");*/
background-repeat: no-repeat;
}
@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) {
.dropzone .dz-preview .dz-error-mark,
.dropzone-previews .dz-preview .dz-error-mark,
.dropzone .dz-preview .dz-success-mark,
.dropzone-previews .dz-preview .dz-success-mark {
/*background-image: url("../img/spritemap@2x.png");*/
-webkit-background-size: 428px 406px;
-moz-background-size: 428px 406px;
background-size: 428px 406px;
}
}
.dropzone .dz-preview .dz-error-mark span,
.dropzone-previews .dz-preview .dz-error-mark span,
.dropzone .dz-preview .dz-success-mark span,
.dropzone-previews .dz-preview .dz-success-mark span {
display: none;
}
.dropzone .dz-preview .dz-error-mark,
.dropzone-previews .dz-preview .dz-error-mark {
background-position: -268px -123px;
}
.dropzone .dz-preview .dz-success-mark,
.dropzone-previews .dz-preview .dz-success-mark {
background-position: -268px -163px;
}
.dropzone .dz-preview .dz-progress .dz-upload,
.dropzone-previews .dz-preview .dz-progress .dz-upload {
-webkit-animation: loading 0.4s linear infinite;
-moz-animation: loading 0.4s linear infinite;
-o-animation: loading 0.4s linear infinite;
-ms-animation: loading 0.4s linear infinite;
animation: loading 0.4s linear infinite;
-webkit-transition: width 0.3s ease-in-out;
-moz-transition: width 0.3s ease-in-out;
-o-transition: width 0.3s ease-in-out;
-ms-transition: width 0.3s ease-in-out;
transition: width 0.3s ease-in-out;
-webkit-border-radius: 2px;
border-radius: 2px;
position: absolute;
top: 0;
left: 0;
width: 0%;
height: 100%;
/*background-image: url("../img/spritemap.png");*/
background-repeat: repeat-x;
background-position: 0px -400px;
}
@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) {
.dropzone .dz-preview .dz-progress .dz-upload,
.dropzone-previews .dz-preview .dz-progress .dz-upload {
/*background-image: url("../img/spritemap@2x.png");*/
-webkit-background-size: 428px 406px;
-moz-background-size: 428px 406px;
background-size: 428px 406px;
}
}
.dropzone .dz-preview.dz-success .dz-progress,
.dropzone-previews .dz-preview.dz-success .dz-progress {
display: block;
opacity: 0;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
-webkit-transition: opacity 0.4s ease-in-out;
-moz-transition: opacity 0.4s ease-in-out;
-o-transition: opacity 0.4s ease-in-out;
-ms-transition: opacity 0.4s ease-in-out;
transition: opacity 0.4s ease-in-out;
}
.dropzone .dz-preview .dz-error-message,
.dropzone-previews .dz-preview .dz-error-message {
display: block;
opacity: 0;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
-webkit-transition: opacity 0.3s ease-in-out;
-moz-transition: opacity 0.3s ease-in-out;
-o-transition: opacity 0.3s ease-in-out;
-ms-transition: opacity 0.3s ease-in-out;
transition: opacity 0.3s ease-in-out;
}
.dropzone .dz-preview:hover.dz-error .dz-error-message,
.dropzone-previews .dz-preview:hover.dz-error .dz-error-message {
opacity: 1;
-ms-filter: none;
filter: none;
}
.dropzone a.dz-remove,
.dropzone-previews a.dz-remove {
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fafafa), color-stop(1, #eee));
background-image: -webkit-linear-gradient(top, #fafafa 0, #eee 100%);
background-image: -moz-linear-gradient(top, #fafafa 0, #eee 100%);
background-image: -o-linear-gradient(top, #fafafa 0, #eee 100%);
background-image: -ms-linear-gradient(top, #fafafa 0, #eee 100%);
background-image: linear-gradient(top, #fafafa 0, #eee 100%);
-webkit-border-radius: 2px;
border-radius: 2px;
border: 1px solid #eee;
text-decoration: none;
display: block;
padding: 4px 5px;
text-align: center;
color: #aaa;
margin-top: 26px;
}
.dropzone a.dz-remove:hover,
.dropzone-previews a.dz-remove:hover {
color: #666;
}
@-moz-keyframes loading {
0% {
background-position: 0 -400px;
}
100% {
background-position: -7px -400px;
}
}
@-webkit-keyframes loading {
0% {
background-position: 0 -400px;
}
100% {
background-position: -7px -400px;
}
}
@-o-keyframes loading {
0% {
background-position: 0 -400px;
}
100% {
background-position: -7px -400px;
}
}
@-ms-keyframes loading {
0% {
background-position: 0 -400px;
}
100% {
background-position: -7px -400px;
}
}
@keyframes loading {
0% {
background-position: 0 -400px;
}
100% {
background-position: -7px -400px;
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,38 @@
.context-menu-list{font-family:'Open Sans', sans-serif;width:200px;display:inline-block;position:absolute;list-style-type:none;border:1px solid #DDD;background:#fff;font-size:12px;margin:0;padding:5px}
.context-menu-item{background-color:#fff;position:relative;height:auto;word-wrap:break-word;-webkit-user-select:none;-moz-user-select:0;-ms-user-select:none;user-select:none;padding:5px 5px 5px 30px}
.context-menu-item:last-child{border:none}
.context-menu-separator{padding-bottom:0;border-bottom:1px solid #DDD}
.context-menu-item > label > input,.context-menu-item > label > textarea{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}
.context-menu-item.hover{cursor:pointer;background-color:#DDD}
.context-menu-item.disabled{color:#666}
.context-menu-input.hover,.context-menu-item.disabled.hover{cursor:default;background-color:#EEE}
.context-menu-submenu:after{content:">";color:#666;position:absolute;top:0;right:3px;z-index:1}
.context-menu-item.icon{min-height:18px;vertical-align:middle;background-repeat:no-repeat;background-position:4px 5px;width:auto;display:list-item}
.context-menu-item.icon-edit{background-image:url(../img/page_white_edit.png)}
.context-menu-item.icon-cut{background-image:url(../img/cut.png)}
.context-menu-item.icon-copy{background-image:url(../img/copy.png)}
.context-menu-item.icon-rename{background-image:url(../img/rename.png)}
.context-menu-item.icon-preview{background-image:url(../img/preview.png)}
.context-menu-item.icon-dimension{background-image:url(../img/dimension.png)}
.context-menu-item.icon-date{background-image:url(../img/date.png)}
.context-menu-item.icon-label{background-image:url(../img/label.png)}
.context-menu-item.icon-size{background-image:url(../img/size.png)}
.context-menu-item.icon-download{background-image:url(../img/download.png)}
.context-menu-item.icon-paste{background-image:url(../img/page_white_paste.png)}
.context-menu-item.icon-clipboard-apply {background-image:url(../img/clipboard_apply.png)}
.context-menu-item.icon-delete{background-image:url(../img/page_white_delete.png)}
.context-menu-item.icon-add{background-image:url(../img/page_white_add.png)}
.context-menu-item.icon-quit{background-image:url(../img/door.png)}
.context-menu-item.icon-info{background-image:url(../img/info.png)}
.context-menu-item.icon-extract{background-image:url(../img/zip.png)}
.context-menu-item.icon-url{background-image:url(../img/url.png)}
.context-menu-item.icon-edit_img{background-image:url(../img/edit_img.png)}
.context-menu-item.icon-duplicate{background-image:url(../img/duplicate.png)}
.context-menu-input > label > *{vertical-align:top}
.context-menu-input > label > input[type=checkbox],.context-menu-input > label > input[type=radio]{margin-left:-17px}
.context-menu-input > label > span{margin-left:5px}
.context-menu-input > label,.context-menu-input > label > input[type=text],.context-menu-input > label > textarea,.context-menu-input > label > select{display:block;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}
.context-menu-input > label > textarea{height:100px}
.context-menu-item > .context-menu-list{display:none;right:-5px;top:5px}
.context-menu-item.hover > .context-menu-list{display:block}
.context-menu-accesskey{text-decoration:underline}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,926 @@
*, *:after, *:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
body, html {
font-family: 'Open Sans', sans-serif;
font-size: 100%; padding: 0; margin: 0;}
body{
padding-top: 32px;
font-weight:200;
background:#ececec;
overflow: -moz-scrollbars-vertical;
}
#qLpercentage{
font-family: 'Open Sans', sans-serif;
font-size: 40px;
line-height: 40px;
color:#bbbbbb;
font-weight: 200;
height: 60px;
-webkit-border-radius: 10px;
border-radius: 10px;
padding: 10px;
text-shadow: 1px 1px 2px #ffffff;
filter: dropshadow(color=#ffffff, offx=1, offy=1);
}
#qLbar{
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZ3JhZC11Y2dnLWdlbmVyYXRlZCkiIC8+Cjwvc3ZnPg==);
background: -moz-linear-gradient(top, rgba(122,122,122,0.4) 0%, rgba(122,122,122,0.4) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(122,122,122,0.4)), color-stop(100%,rgba(122,122,122,0.4))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#667a7a7a', endColorstr='#667a7a7a',GradientType=0 ); /* IE6-8 */
z-index:200;
margin:0px;
overflow: hidden;
}
[class^="rficon-"],[class*=" rficon-"] {
display:inline-block;
width:16px;
height:16px;
margin-top:1px;
*margin-right:.3em;
line-height:16px;
vertical-align:text-top;
background-position: 0 0;
background-repeat:no-repeat
}
.rficon-clipboard-apply {
background-image:url(../img/clipboard_apply.png);
}
.rficon-clipboard-clear {
background-image:url(../img/clipboard_clear.png);
}
.btn{
-webkit-border-radius: 0px;
border-radius: 0px;
}
.container-fluid{padding-right:0 !important;margin-top:10px !important;}
.img-precontainer{
margin: auto;
width: 100%;
text-align: center;
background: white;
border:none;
}
.img-container{
height: 91px;
width: 122px;
padding: 0px;
border:none;
overflow: hidden;
display: table-cell;
text-align: center;
vertical-align: middle;
margin: auto;
}
ul.breadcrumb{
margin-bottom:5px;
-webkit-border-radius: 0px;
border-radius: 0px;
padding-bottom: 4px;
padding-top: 6px;
background: #f0f0f0;
-webkit-box-shadow: 0 1px 4px rgba(0,0,0,0.065);
-moz-box-shadow: 0 1px 4px rgba(0,0,0,0.065);
box-shadow: 0 1px 4px rgba(0,0,0,0.065);
border-bottom: 1px solid #bbbbbb;
.pull-left i{ margin-top:2px;}
}
.alert {
padding: 8px 35px 8px 14px;
margin-bottom:2px;
border: 1px solid #aaaaaa;
color:#666666;
font-weight: 200;
font-size: 13px;
-webkit-border-radius: 0px;
border-radius: 0px;
background: white;
}
.img-container * ,.img-container-mini * {
vertical-align: middle;
}
#help{
display: none;
}
/*\*//*/
.img-container,.img-container-mini {
display: block;
}
.img-container span, .img-container-mini span {
display: inline-block;
height: 100%;
width: 1px;
}
/**/
iframe{
overflow: auto;
-webkit-overflow-scrolling:touch;
}
.upload-tabbable{
margin-left: 5px;
margin-right: 5px;
.upload-help{
font-size: 11px;
font-weight: 200;
color: #777;
text-shadow: 0 1px 0 #fff;
text-align: center;
}
.nav{
margin:0px;
li a{
font-size: 13px;
font-weight: 200;
color: #777;
text-shadow: 0 1px 0 #fff;
}
}
.tab-content{
padding: 5px;
border-bottom: 1px solid #dddddd;
border-left: 1px solid #dddddd;
border-rigth: 1px solid #dddddd;
background: white;
margin-bottom: 5px;
}
}
input#filter-input{
margin:0px;
width: 84px;
height: 26px;
vertical-align: bottom;
margin-bottom: 2px;
-webkit-border-radius: 0;
border-radius: 0;
font-size: 12px;
font-weight:200;
position:relative;
left:1px;
}
.qq-uploader .span9{margin-left:14px !important;width:690px !important;}
.space10{ clear:both; height:10px; }
h4{ font-size:12px; font-weight:200; margin: 0px; text-align: center; padding: 0px; margin-top:6px; line-height: 18px; }
h3{ font-size:14px; font-weight:200;}
.boxes{ border:1px solid #CCCCCC; word-wrap: break-word; background:white;
-webkit-box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.2);box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.2); min-height:115px;
text-align: center;}
.container-fluid{ padding:0px 10px !important;}
body .avpw .avpw_primary_button,
body .avpw .avpw_primary_button:link,
body .avpw .avpw_primary_button:visited,
body .avpw .avpw_primary_button:active {
background-color: #999999;
color: #ffffff;
background-image:none;
border:none;
}
body .avpw .avpw_primary_button:hover{
border:none;
background-color: #666666;
}
.uploader{
position:fixed;
top:50px;
left:14px;
margin:auto;
width:100%;
z-index:9999;
overflow: hidden;
background:#eeeeee;
padding-top:20px;
border:1px solid #cccccc;
display:none;
-webkit-box-shadow: 0px 0px 10px 0px rgba(1, 1, 1, 0.5);
box-shadow: 0px 0px 10px 0px rgba(1, 1, 1, 0.5);
}
.download-form{
margin-bottom:25px;
}
.grid li i{
margin-left:2px;
margin-right: 2px;
z-index:0;
}
.box,.boxx{
text-align: center;
word-wrap: break-word;
vertical-align: top;
text-align: left;
position: relative;
border: none;
box-shadow: none;
z-index: 100;
padding: 4px;
}
.box .btn{
width: 100%;
background: none;
box-shadow: none;
border:none;
z-index: 200;
}
.navbar{
margin-bottom: 0px;
border-bottom: 1px solid #bbbbbb;
.navbar-inner{
border: none;
min-height: 35px;
-webkit-border-radius: 0px;
border-radius: 0px;
padding-bottom: 2px;
margin: 0px;
padding-right: 8px;
padding-left: 8px;
.container-fluid{
margin: 0px;
margin-top: 0px !important;
padding: 0px;
.brand{
display: none;
}
.filters span{
margin-top:0px;
font-size:13px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff; }
}
}
}
ul.sorting{
position: absolute;
left: -25px;
top:20px;
min-width: 0px;
background: #eeeeee;
li a:hover{
background: #aaaaaa;
}
}
.btn-group .dropdown-toggle.sorting-btn{
background: none;
border: none;
box-shadow: none;
position: relative;
-webkit-box-shadow:none;
top:-5px;
font-size: 13px;
}
.btn-group .dropdown-toggle.sorting-btn:hover{
background: none;
border: none;
box-shadow: none;
-webkit-box-shadow:none;
}
ul.sorting.dropdown-menu>li>a{
font-size: 12px;
text-shadow: none;
&.ascending{
background-image: url(../img/down.png);
background-repeat: no-repeat;
background-position: 6px 8px;
}
&.descending{
background-image: url(../img/up.png);
background-repeat: no-repeat;
background-position: 6px 8px;
}
}
.sorter-container{
a.sorter{
color:black;
}
a.ascending{
padding-left:9px;
background-image: url(../img/down.png);
background-repeat: no-repeat;
background-position: 0px 3px;
}
a.descending{
padding-left:9px;
background-image: url(../img/up.png);
background-repeat: no-repeat;
background-position: 0px 4px;
}
margin-top:5px;
margin-bottom:0px;
-webkit-border-radius: 0px;
border-radius: 0px;
padding-bottom: 4px;
padding-top: 6px;
-webkit-box-shadow: 0 1px 4px rgba(0,0,0,0.065);
-moz-box-shadow: 0 1px 4px rgba(0,0,0,0.065);
box-shadow: 0 1px 4px rgba(0,0,0,0.065);
background-color: #f5f5f5;
position: relative;
border-bottom: 1px solid #bbbbbb;
height: 24px;
.img-dimension,.file-date,.file-size,.file-extension,.file-name,.file-operations{
display: block;position: absolute;
top: 0px;
z-index: 100;
-webkit-box-shadow: none;
box-shadow: none;
text-align: left;
font-size: 13px;
margin-top: 1px;
color:#999999;
}
.file-operations{
width: 110px;
right:0px;
}
.img-dimension{
width: 65px;
right: 123px;
}
.file-date{
width: 70px;
right: 188px;
}
.file-size{
width: 55px;
right: 258px;
}
.file-extension{
width: 40px;
right: 313px;
}
.file-name{
width: 50px;
left: 52px;
}
}
.img-dimension,.file-date,.file-size,.file-extension,.file-name,.file-operations{
font-size:12px;
font-weight:200;
color:#777;text-shadow:0 1px 0 #fff;
display: none;
}
.view-controller{
text-align: left;
.btn-group>.btn:first-child,.btn-group>.btn:last-child{
-webkit-border-radius: 0px;
border-radius: 0px;
}
}
.navbar .filters .btn {
margin-bottom: 2px;
padding-top:2px;
padding-bottom:2px;
padding-left: 8px;
padding-right: 8px;
margin-top:5px;
}
.filters .types{
text-align: right;
}
@media(max-width:780px){
#view2{
display: none;
}
}
@media(max-width:839px){
body{
padding-top: 0px;
}
.filters .types{
text-align: left;
}
.navbar .navbar-inner .container-fluid .brand{
display: block;
}
.navbar .navbar-inner{
padding-bottom: 4px;
}
.filters{
div.span3.half,div.half.span6{
float:none;
width:100%;
}
}
.container-fluid{
margin:0px !important;
padding: 0px;
}
#qLbar{
height:50px !important;
}
}
@media(min-width:400px) and (max-width:839px){
.filters .row-fluid .half{
width:48.61878453038674%;*width:48.56559304102504%; float:left;
}
}
.tooltip.in{
z-index: 10000;
opacity:1;
filter:alpha(opacity=1);
font-weight: bold;
}
.tooltip{
font-weight: bold;
z-index: 10000;
}
/* GRID */
.grid {
padding: 0px 0px;
margin: 0 auto;
list-style: none;
-webkit-overflow-scrolling: touch;
}
.grid li {
display: inline-block;
width: 124px;
border:none;
margin: 4px;
margin-bottom:8px;
padding: 0px;
vertical-align: top;
}
.grid figure {
margin: 0;
position: relative;
display: block;
width: 122px;
margin: auto;
&:hover{ background: #e0e0e0 !important;}
}
.list-view1.grid li{
width:100%;
figure{
width:100%;
}
}
.grid figcaption {
text-align: center;
padding: 2px;
padding-top: 8px;
color: white;
height: 30px;
width: 122px;
margin-left:0px;
margin-right: 0px;
position: absolute;
top: auto;
bottom: 0;
-webkit-box-shadow: inset 0px 0px 8px 0px rgba(41, 41, 41, 0.5);
box-shadow: inset 0px 0px 8px 0px rgba(41, 41, 41, 0.5);
a{
margin: 0px;
padding: 3px;
}
h3 {
margin: 0;
padding: 0;
color: #fff;
}
}
.grid h4{
text-align: center;
color: black;
padding: 0px;
margin-bottom: 4px;
margin-top: 4px;
}
/* Individual Caption Styles */
/* Caption Style 2 */
.grid figure .box {
box-sizing: content-box;
}
.list-view0.grid,.list-view1.grid,.list-view2.grid{
figure{
.box{
max-width: 100%;
display: block;
position: relative;
overflow: hidden;
z-index: 1;
h4.ellipsis{
height:18px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
h4{
z-index: 1;
a{
z-index: 1;
}
}
}
}
.selected{
-webkit-box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.25);
box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.25);
//border: 1px solid #777777;
}
}
.no-touch .list-view0 figure .box{
z-index: 1;
-webkit-transition: -webkit-transform 0.3s;
-moz-transition: -moz-transform 0.3s;
transition: transform 0.3s;
}
.ui-state-highlight{
border:1px solid red;
}
.no-touch .list-view0 figure:hover .box,
.no-touch .list-view0 figure.cs-hover .box {
-webkit-box-shadow: 0px 0px 4px 0px rgba(1, 1, 1, 0.5);
box-shadow: 0px 0px 4px 0px rgba(1, 1, 1, 0.5);
-webkit-transform: translateY(-26px);
-moz-transform: translateY(-26px);
-ms-transform: translateY(-26px);
transform: translateY(-26px);
}
.list-view0 figure:hover .box.no-effect,
.list-view0 figure.cs-hover .box.no-effect,.no-effect{
-webkit-box-shadow: none;
box-shadow: none;
-webkit-transform: none;
-moz-transform: none;
-ms-transform: none;
transform: none;
}
.list-view0 .img-precontainer-mini{
display: none;
background: none;
}
a,a:hover{
color:black;
text-decoration: none;
}
.back-directory{
.img-precontainer,.img-precontainer-mini,.box{
background: none;
}
}
form{
margin:0px;
padding: 0px;
}
.modal-body{
form,input{
margin:0px;
}
}
.modal-header h3{
font-weight: 300;
font-size: 20px;
}
/* LIST VIEW */
.list-view1.sorter-container{
display: block;
}
.list-view0.sorter-container, .list-view2.sorter-container{
display: none;
}
.list-view0.grid{
.img-precontainer{
.img-container{
img{
max-width:122px !important;
max-height:91px !important;
}
img.icon{
width: 122px;
margin-top:0px;
}
}
.filetype{
position:absolute;
top:0px;
width:120px;
text-align:center;
color:white;
font-size: 13px;
line-height: 22px;
}
}
.cover{
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC4yNSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(top, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.25) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.25)), color-stop(100%,rgba(255,255,255,0.25))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#40ffffff', endColorstr='#40ffffff',GradientType=0 ); /* IE6-8 */
width: 122px;
position:absolute;
top:22px;
right:0px;
height: 69px;
}
.box{
background: white;
}
.directory{
background: #dddddd;
}
figure.back-directory{
.directory{
background: #bbbbbb;
}
}
figcaption{
background:#ffffff;
}
}
.list-view1.grid , .list-view2.grid {
li{
margin: 0px;
&.back{
figure.back-directory{
height: 34px;
}
}
}
li:nth-child(odd) figure {background: #f9f9f9; }
li:nth-child(odd) figure.directory {background: #eaeaea; }
li figure{
border-bottom: 1px solid #cccccc;
background: white;
&.back-directory{
background: #bbbbbb;
.box{
background: none;
}
}
&.directory{
background: #efefef;
box{
padding: 0px;
min-height: 10px;
}
}
.box{
h4{
padding-top:1px;
font-size: 13px;
text-align: left;
}
margin-left: 50px;
-webkit-transition: none;
-moz-transition: none;
transition: none;
}
}
.img-precontainer-mini{
display: block;
position: absolute;
width: 45px;
height: 34px;
overflow: hidden;
text-align: center;
img{
height: 34px;
}
.filetype{
position:absolute;
top:5px;
text-align: center;
left:5px;
padding:1px 2px;
font-size: 13px;
line-height: 22px;
width:34px;
height: 24px;
color:white;
background: #333333;
}
}
.cover{
display: none;
}
.img-container-mini{
width: 45px;
height: 34px;
border:none;
overflow: hidden;
display: table-cell;
text-align: center;
vertical-align: middle;
margin: auto;
}
.img-precontainer-mini.original-thumb{
padding: 0px;
img{
width: auto;
margin: 0px;
height: 34px;
}
img.original{
width: auto;
width: auto;
height: auto;
}
}
.img-precontainer{
display: none;
}
figcaption{
background:none;
width: 120px;
position: absolute;
right: 0px;
top: 0px;
z-index: 1;
bottom: 0;
-webkit-box-shadow: none;
box-shadow: none;
text-align: right;
}
.selected{
-webkit-box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.2);
box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.2);
}
}
.list-view1.grid{
.img-dimension,.file-date,.file-size,.file-extension{
overflow: hidden;
display: block;position: absolute;
top: 0px;
z-index: 1;
-webkit-box-shadow: none;
box-shadow: none;
text-align: left;
margin-top:7px;
}
.img-dimension{
width: 65px;
right: 120px;
}
.file-date{
width: 70px;
right: 185px;
}
.file-size{
width: 55px;
right: 255px;
}
.file-extension{
width: 40px;
right: 310px;
}
figure .box{
padding-right: 352px;
}
}
.list-view2.grid{
figure{
.box{
padding-right: 115px;
}
}
}
@media(max-width:610px){
.list-view1.grid figure{
.box{
padding-right: 312px;
}
.file-extension{
display: none;
}
}
.sorter-container .file-extension{
display: none;
}
}
@media(max-width:565px){
.list-view1.grid figure{
.box{
padding-right: 257px;
}
.file-size{
display: none;
}
}
.sorter-container .file-size{
display: none;
}
}
@media(max-width:495px){
.list-view1.grid figure{
.box{
padding-right: 187px;
}
.file-date{
display: none;
}
}
.sorter-container .file-date{
display: none;
}
}
@media(max-width:430px){
.list-view1.grid figure{
.box{
padding-right: 115px;
}
.img-dimension{
display: none;
}
}
.sorter-container .img-dimension{
display: none;
}
.breadcrumb{
margin-left:0px;
margin-right:0px;
}
}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.pdf{ background:#CB0011; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.css{ background:#D10698; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ai{ background:#D6772F; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.psd{ background:#0960A4; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.html,&.xhtml{ background:#035BC4; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.fla,&.flv{ background:#CF302E; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ppt,&.pptx{ background:#DA5B00; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.xls,&.xlsx,&.css{ background:#1A712C; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.rts,&.doc,&.docx{ background:#002093; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.rar,&.zip,&.gzip{ background:#FE9221; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.mp4,&.mpeg,&.mov,&.avi,&.mpg,&.wma,&.webm{ background:#31231E; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.mp3,&.m4a,&.ac3,&.aiff,&.mid,&.ogg,&.wav{ background:#9F008B; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.odt,&.ots,&.ott,&.odb,&.odg,&.otp,&.otg,&.odf,&.ods,&.odp{ background:#367BBE; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.jpg,&.jpeg,&.png,&.bmp,&.gif,&.tiff,&.svg{ background:#CFA554; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.txt,&.sql,&.xml,&.log,&.iso,&.dmg{ background:#CACACA; }}}
.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ade,&.adp,&.mdb,&.accdb{ background:#B61C19; }}}

View File

@@ -0,0 +1,901 @@
<?php
include('config/config.php');
if (USE_ACCESS_KEYS == TRUE){
if (!isset($_GET['akey'], $access_keys) || empty($access_keys)){
die('Access Denied!');
}
$_GET['akey'] = strip_tags(preg_replace( "/[^a-zA-Z0-9\._-]/", '', $_GET['akey']));
if (!in_array($_GET['akey'], $access_keys)){
die('Access Denied!');
}
}
$_SESSION['RF']["verify"]= "RESPONSIVEfilemanager";
if(isset($_POST['submit'])){
include('upload.php');
}else{
include('include/utils.php');
if (isset($_GET['fldr'])
&& !empty($_GET['fldr'])
&& strpos($_GET['fldr'],'../')===FALSE
&& strpos($_GET['fldr'],'./')===FALSE)
$subdir = urldecode(trim(strip_tags($_GET['fldr']),"/") ."/");
else
$subdir = '';
if($subdir==""){
if(!empty($_COOKIE['last_position'])
&& strpos($_COOKIE['last_position'],'.')===FALSE)
$subdir= trim($_COOKIE['last_position']);
}
//remember last position
setcookie('last_position',$subdir,time() + (86400 * 7));
if($subdir=="/"){
$subdir="";
}
/***
*SUB-DIR CODE
***/
if(!isset($_SESSION['RF']["subfolder"])) $_SESSION['RF']["subfolder"]='';
$rfm_subfolder = '';
if(!empty($_SESSION['RF']["subfolder"]) && strpos($_SESSION['RF']["subfolder"],'../')===FALSE
&& strpos($_SESSION['RF']["subfolder"],'./')===FALSE && strpos($_SESSION['RF']["subfolder"],"/")!==0
&& strpos($_SESSION['RF']["subfolder"],'.')===FALSE) $rfm_subfolder= $_SESSION['RF']['subfolder'];
if($rfm_subfolder!="" && $rfm_subfolder[strlen($rfm_subfolder)-1]!="/") $rfm_subfolder.="/";
if(!file_exists($current_path . $rfm_subfolder.$subdir)){
$subdir='';
if(!file_exists($current_path . $rfm_subfolder.$subdir)){
$rfm_subfolder="";
}
}
if(trim($rfm_subfolder)==""){
$cur_dir = $upload_dir . $subdir;
$cur_path = $current_path . $subdir;
$thumbs_path = $thumbs_base_path;
$cur_thumbs_dir = $thumbs_dir;
$parent=$subdir;
}else{
$cur_dir = $upload_dir . $rfm_subfolder.$subdir;
$cur_path = $current_path . $rfm_subfolder.$subdir;
$thumbs_path = $thumbs_base_path. $rfm_subfolder;
$cur_thumbs_dir = $thumbs_dir. $rfm_subfolder;
$parent=$rfm_subfolder.$subdir;
}
$cycle=true;
$max_cycles=50;
$i=0;
while($cycle && $i<$max_cycles){
$i++;
if($parent=="./") $parent="";
if(file_exists($current_path.$parent."config.php")){
require_once($current_path.$parent."config.php");
$cycle=false;
}
if($parent=="") $cycle=false;
else $parent=fix_dirname($parent)."/";
}
if(!is_dir($thumbs_path.$subdir)){
create_folder(false, $thumbs_path.$subdir);
}
if(isset($_GET['popup'])) $popup= strip_tags($_GET['popup']); else $popup=0;
//Sanitize popup
$popup=!!$popup;
//view type
if(!isset($_SESSION['RF']["view_type"])){ $view=$default_view; $_SESSION['RF']["view_type"] = $view; }
if(isset($_GET['view'])){ $view=fix_get_params($_GET['view']); $_SESSION['RF']["view_type"] = $view; }
$view=$_SESSION['RF']["view_type"];
if(isset($_GET["filter"])) $filter=fix_get_params($_GET["filter"]);
else $filter='';
if(!isset($_SESSION['RF']['sort_by'])) $_SESSION['RF']['sort_by']='';
if(isset($_GET["sort_by"])) $sort_by=$_SESSION['RF']['sort_by']=fix_get_params($_GET["sort_by"]);
else $sort_by=$_SESSION['RF']['sort_by'];
if(!isset($_SESSION['RF']['descending'])) $_SESSION['RF']['descending']=false;
if(isset($_GET["descending"])) $descending=$_SESSION['RF']['descending']=fix_get_params($_GET["descending"])==="true";
else $descending=$_SESSION['RF']['descending'];
$lang=$default_language;
if(isset($_GET['lang']) && $_GET['lang'] != 'undefined' && $_GET['lang']!='') {
$lang=fix_get_params($_GET['lang']);
$lang=trim($lang);
}
$language_file = 'lang/'.$default_language.'.php';
if ($lang!=$default_language) {
$path_parts = pathinfo($lang);
if(is_readable('lang/' .$path_parts['basename']. '.php')){
$language_file = 'lang/' .$path_parts['basename']. '.php';
}
else {
echo "<script>console.log('The ".$lang." language file is not readable! Falling back...');</script>";
}
}
// add lang file to session for easy include
$_SESSION['RF']['language_file'] = $language_file;
require_once $language_file;
if(!isset($_GET['type'])) $_GET['type']=0;
if(!isset($_GET['field_id'])) $_GET['field_id']='';
$field_id=isset($_GET['field_id']) ? fix_get_params($_GET['field_id']) : '';
$type_param=fix_get_params($_GET['type']);
$get_params = http_build_query(array(
'type' => $type_param,
'lang' => $lang,
'popup' => $popup,
'field_id' => $field_id,
'akey' => (isset($_GET['akey']) && $_GET['akey'] != '' ? $_GET['akey'] : 'key'),
'fldr' => ''
));
?>
<!DOCTYPE html>
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="robots" content="noindex,nofollow">
<title>Responsive FileManager</title>
<link rel="shortcut icon" href="img/ico/favicon.ico">
<link href="css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css" />
<link href="css/bootstrap-lightbox.min.css" rel="stylesheet" type="text/css" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<link href="css/dropzone.min.css" type="text/css" rel="stylesheet" />
<?php
$sprite_lang_file = 'img/spritemap_'.$lang.'.png';
$sprite_lang_file2 = 'img/spritemap@2x_'.$lang.'.png';
if ( ! file_exists($sprite_lang_file) || ! file_exists($sprite_lang_file2)){
//fallback
$sprite_lang_file = 'img/spritemap_en_EN.png';
$sprite_lang_file2 = 'img/spritemap@2x_en_EN.png';
if ( ! file_exists($sprite_lang_file) || ! file_exists($sprite_lang_file2)){
// we are in deep ****
echo '<script>console.log("Error: Spritemap not found!");</script>';
// exit();
}
}
?>
<style>
.dropzone .dz-default.dz-message,
.dropzone .dz-preview .dz-error-mark,
.dropzone-previews .dz-preview .dz-error-mark,
.dropzone .dz-preview .dz-success-mark,
.dropzone-previews .dz-preview .dz-success-mark,
.dropzone .dz-preview .dz-progress .dz-upload,
.dropzone-previews .dz-preview .dz-progress .dz-upload {
background-image: url(<?php echo $sprite_lang_file; ?>);
}
@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) {
.dropzone .dz-default.dz-message,
.dropzone .dz-preview .dz-error-mark,
.dropzone-previews .dz-preview .dz-error-mark,
.dropzone .dz-preview .dz-success-mark,
.dropzone-previews .dz-preview .dz-success-mark,
.dropzone .dz-preview .dz-progress .dz-upload,
.dropzone-previews .dz-preview .dz-progress .dz-upload {
background-image: url(<?php echo $sprite_lang_file; ?>);
}
}
</style>
<link href="css/jquery.contextMenu.min.css" rel="stylesheet" type="text/css" />
<link href="css/bootstrap-modal.min.css" rel="stylesheet" type="text/css" />
<link href="jPlayer/skin/blue.monday/jplayer.blue.monday.css" rel="stylesheet" type="text/css">
<!--[if lt IE 8]><style>
.img-container span, .img-container-mini span {
display: inline-block;
height: 100%;
}
</style><![endif]-->
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
if (typeof jQuery === 'undefined')
{
document.write(unescape("%3Cscript src='js/jquery.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/bootstrap-lightbox.min.js"></script>
<script type="text/javascript" src="js/dropzone.min.js"></script>
<script type="text/javascript" src="js/jquery.touchSwipe.min.js"></script>
<script type="text/javascript" src="js/modernizr.custom.js"></script>
<script type="text/javascript" src="js/bootbox.min.js"></script>
<script type="text/javascript" src="js/bootstrap-modal.min.js"></script>
<script type="text/javascript" src="js/bootstrap-modalmanager.min.js"></script>
<script type="text/javascript" src="jPlayer/jquery.jplayer.min.js"></script>
<script type="text/javascript" src="js/imagesloaded.pkgd.min.js"></script>
<script type="text/javascript" src="js/jquery.queryloader2.min.js"></script>
<?php
if($aviary_active){
if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) { ?>
<script type="text/javascript" src="https://dme0ih8comzn4.cloudfront.net/js/feather.js"></script>
<?php }else{ ?>
<script type="text/javascript" src="http://feather.aviary.com/js/feather.js "></script>
<?php }} ?>
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.6.2/html5shiv.js"></script>
<![endif]-->
<script src="js/jquery.ui.position.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.10.4.custom.js" type="text/javascript"></script>
<script src="js/jquery.contextMenu.min.js" type="text/javascript"></script>
<script>
var ext_img=new Array('<?php echo implode("','", $ext_img)?>');
var allowed_ext=new Array('<?php echo implode("','", $ext)?>');
var loading_bar=<?php echo $loading_bar?"true":"false"; ?>;
var image_editor=<?php echo $aviary_active?"true":"false"; ?>;
//dropzone config
Dropzone.options.myAwesomeDropzone = {
dictInvalidFileType: "<?php echo lang_Error_extension;?>",
dictFileTooBig: "<?php echo lang_Error_Upload; ?>",
dictResponseError: "SERVER ERROR",
paramName: "file", // The name that will be used to transfer the file
maxFilesize: <?php echo $MaxSizeUpload; ?>, // MB
url: "upload.php",
accept: function(file, done) {
var extension=file.name.split('.').pop();
extension=extension.toLowerCase();
if ($.inArray(extension, allowed_ext) > -1) {
done();
}
else {
done("<?php echo lang_Error_extension;?>");
}
}
};
if (image_editor) {
var featherEditor = new Aviary.Feather({
apiKey: "<?php echo $aviary_key; ?>",
apiVersion: <?php echo $aviary_version; ?>,
language: "<?php echo $aviary_language; ?>",
theme: 'light',
tools: 'all',
onSave: function(imageID, newURL) {
show_animation();
var img = document.getElementById(imageID);
img.src = newURL;
$.ajax({
type: "POST",
url: "ajax_calls.php?action=save_img",
data: { url: newURL, path:$('#sub_folder').val()+$('#fldr_value').val(), name:$('#aviary_img').data('name') }
}).done(function( msg ) {
featherEditor.close();
d = new Date();
$("figure[data-name='"+$('#aviary_img').data('name')+"']").find('img').each(function(){
$(this).attr('src',$(this).attr('src')+"?"+d.getTime());
});
$("figure[data-name='"+$('#aviary_img').data('name')+"']").find('figcaption a.preview').each(function(){
$(this).data('url',$(this).data('url')+"?"+d.getTime());
});
hide_animation();
});
return false;
},
onError: function(errorObj) {
bootbox.alert(errorObj.message);
}
});
}
</script>
<script type="text/javascript" src="js/include.min.js"></script>
</head>
<body>
<input type="hidden" id="popup" value="<?php echo $popup; ?>" />
<input type="hidden" id="view" value="<?php echo $view; ?>" />
<input type="hidden" id="cur_dir" value="<?php echo $cur_dir; ?>" />
<input type="hidden" id="cur_dir_thumb" value="<?php echo $thumbs_path.$subdir; ?>" />
<input type="hidden" id="insert_folder_name" value="<?php echo lang_Insert_Folder_Name; ?>" />
<input type="hidden" id="new_folder" value="<?php echo lang_New_Folder; ?>" />
<input type="hidden" id="ok" value="<?php echo lang_OK; ?>" />
<input type="hidden" id="cancel" value="<?php echo lang_Cancel; ?>" />
<input type="hidden" id="rename" value="<?php echo lang_Rename; ?>" />
<input type="hidden" id="lang_duplicate" value="<?php echo lang_Duplicate; ?>" />
<input type="hidden" id="duplicate" value="<?php if($duplicate_files) echo 1; else echo 0; ?>" />
<input type="hidden" id="base_url" value="<?php echo $base_url?>"/>
<input type="hidden" id="base_url_true" value="<?php echo base_url(); ?>"/>
<input type="hidden" id="fldr_value" value="<?php echo $subdir; ?>"/>
<input type="hidden" id="sub_folder" value="<?php echo $rfm_subfolder; ?>"/>
<input type="hidden" id="file_number_limit_js" value="<?php echo $file_number_limit_js; ?>" />
<input type="hidden" id="descending" value="<?php echo $descending?"true":"false"; ?>" />
<?php $protocol = 'http'; ?>
<input type="hidden" id="current_url" value="<?php echo str_replace(array('&filter='.$filter),array(''),$protocol."://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); ?>" />
<input type="hidden" id="lang_show_url" value="<?php echo lang_Show_url; ?>" />
<input type="hidden" id="copy_cut_files_allowed" value="<?php if($copy_cut_files) echo 1; else echo 0; ?>" />
<input type="hidden" id="copy_cut_dirs_allowed" value="<?php if($copy_cut_dirs) echo 1; else echo 0; ?>" />
<input type="hidden" id="copy_cut_max_size" value="<?php echo $copy_cut_max_size; ?>" />
<input type="hidden" id="copy_cut_max_count" value="<?php echo $copy_cut_max_count; ?>" />
<input type="hidden" id="lang_copy" value="<?php echo lang_Copy; ?>" />
<input type="hidden" id="lang_cut" value="<?php echo lang_Cut; ?>" />
<input type="hidden" id="lang_paste" value="<?php echo lang_Paste; ?>" />
<input type="hidden" id="lang_paste_here" value="<?php echo lang_Paste_Here; ?>" />
<input type="hidden" id="lang_paste_confirm" value="<?php echo lang_Paste_Confirm; ?>" />
<input type="hidden" id="lang_files_on_clipboard" value="<?php echo lang_Files_ON_Clipboard; ?>" />
<input type="hidden" id="clipboard" value="<?php echo ((isset($_SESSION['RF']['clipboard']['path']) && trim($_SESSION['RF']['clipboard']['path']) != null) ? 1 : 0); ?>" />
<input type="hidden" id="lang_clear_clipboard_confirm" value="<?php echo lang_Clear_Clipboard_Confirm; ?>" />
<input type="hidden" id="lang_file_info" value="<?php echo fix_strtoupper(lang_File_info); ?>" />
<input type="hidden" id="lang_edit_image" value="<?php echo lang_Edit_image; ?>" />
<input type="hidden" id="lang_extract" value="<?php echo lang_Extract; ?>" />
<input type="hidden" id="transliteration" value="<?php echo $transliteration?"true":"false"; ?>" />
<?php if($upload_files){ ?>
<!-- uploader div start -->
<div class="uploader">
<center><button class="btn btn-inverse close-uploader"><i class="icon-backward icon-white"></i> <?php echo lang_Return_Files_List?></button></center>
<div class="space10"></div><div class="space10"></div>
<div class="tabbable upload-tabbable"> <!-- Only required for left/right tabs -->
<?php if($java_upload){ ?>
<ul class="nav nav-tabs">
<li class="active"><a href="#tab1" data-toggle="tab"><?php echo lang_Upload_base; ?></a></li>
<li><a href="#tab2" id="uploader-btn" data-toggle="tab"><?php echo lang_Upload_java; ?></a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab1">
<?php } ?>
<form action="dialog.php" method="post" enctype="multipart/form-data" id="myAwesomeDropzone" class="dropzone">
<input type="hidden" name="path" value="<?php echo $cur_path?>"/>
<input type="hidden" name="path_thumb" value="<?php echo $thumbs_path.$subdir?>"/>
<div class="fallback">
<?php echo lang_Upload_file?>:<br/>
<input name="file" type="file" />
<input type="hidden" name="fldr" value="<?php echo $subdir; ?>"/>
<input type="hidden" name="view" value="<?php echo $view; ?>"/>
<input type="hidden" name="type" value="<?php echo $type_param; ?>"/>
<input type="hidden" name="field_id" value="<?php echo $field_id; ?>"/>
<input type="hidden" name="popup" value="<?php echo $popup; ?>"/>
<input type="hidden" name="lang" value="<?php echo $lang; ?>"/>
<input type="hidden" name="filter" value="<?php echo $filter; ?>"/>
<input type="submit" name="submit" value="<?php echo lang_OK?>" />
</form>
</div>
<div class="upload-help"><?php echo lang_Upload_base_help; ?></div>
<?php if($java_upload){ ?>
</div>
<div class="tab-pane" id="tab2">
<div id="iframe-container"></div>
<div class="upload-help"><?php echo lang_Upload_java_help; ?></div>
<?php } ?>
</div>
</div>
</div>
</div>
<!-- uploader div start -->
<?php } ?>
<div class="container-fluid">
<?php
$class_ext = '';
$src = '';
if ($_GET['type']==1) $apply = 'apply_img';
elseif($_GET['type']==2) $apply = 'apply_link';
elseif($_GET['type']==0 && $_GET['field_id']=='') $apply = 'apply_none';
elseif($_GET['type']==3) $apply = 'apply_video';
else $apply = 'apply';
$files = scandir($current_path.$rfm_subfolder.$subdir);
$n_files=count($files);
//php sorting
$sorted=array();
$current_folder=array();
$prev_folder=array();
foreach($files as $k=>$file){
if($file==".") $current_folder=array('file'=>$file);
elseif($file=="..") $prev_folder=array('file'=>$file);
elseif(is_dir($current_path.$rfm_subfolder.$subdir.$file)){
$date=filemtime($current_path.$rfm_subfolder.$subdir. $file);
$size=foldersize($current_path.$rfm_subfolder.$subdir. $file);
$file_ext=lang_Type_dir;
$sorted[$k]=array('file'=>$file,'date'=>$date,'size'=>$size,'extension'=>$file_ext);
}else{
$file_path=$current_path.$rfm_subfolder.$subdir.$file;
$date=filemtime($file_path);
$size=filesize($file_path);
$file_ext = substr(strrchr($file,'.'),1);
$sorted[$k]=array('file'=>$file,'date'=>$date,'size'=>$size,'extension'=>$file_ext);
}
}
function filenameSort($x, $y) {
return $x['file'] < $y['file'];
}
function dateSort($x, $y) {
return $x['date'] < $y['date'];
}
function sizeSort($x, $y) {
return $x['size'] - $y['size'];
}
function extensionSort($x, $y) {
return $x['extension'] < $y['extension'];
}
switch($sort_by){
case 'name':
usort($sorted, 'filenameSort');
break;
case 'date':
usort($sorted, 'dateSort');
break;
case 'size':
usort($sorted, 'sizeSort');
break;
case 'extension':
usort($sorted, 'extensionSort');
break;
default:
break;
}
if($descending){
$sorted=array_reverse($sorted);
}
$files=array_merge(array($prev_folder),array($current_folder),$sorted);
?>
<!-- header div start -->
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container-fluid">
<button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="brand"><?php echo lang_Toolbar; ?> -></div>
<div class="nav-collapse collapse">
<div class="filters">
<div class="row-fluid">
<div class="span3 half">
<?php if($upload_files){ ?>
<button class="tip btn upload-btn" title="<?php echo lang_Upload_file; ?>"><i class="icon-plus"></i><i class="icon-file"></i></button>
<?php } ?>
<?php if($create_folders){ ?>
<button class="tip btn new-folder" title="<?php echo lang_New_Folder?>"><i class="icon-plus"></i><i class="icon-folder-open"></i></button>
<?php } ?>
<?php if($copy_cut_files || $copy_cut_dirs){ ?>
<button class="tip btn paste-here-btn" title="<?php echo lang_Paste_Here; ?>"><i class="rficon-clipboard-apply"></i></button>
<button class="tip btn clear-clipboard-btn" title="<?php echo lang_Clear_Clipboard; ?>"><i class="rficon-clipboard-clear"></i></button>
<?php } ?>
</div>
<div class="span3 half view-controller">
<span><?php echo lang_View; ?>:</span>
<button class="btn tip<?php if($view==0) echo " btn-inverse"; ?>" id="view0" data-value="0" title="<?php echo lang_View_boxes; ?>"><i class="icon-th <?php if($view==0) echo "icon-white"; ?>"></i></button>
<button class="btn tip<?php if($view==1) echo " btn-inverse"; ?>" id="view1" data-value="1" title="<?php echo lang_View_list; ?>"><i class="icon-align-justify <?php if($view==1) echo "icon-white"; ?>"></i></button>
<button class="btn tip<?php if($view==2) echo " btn-inverse"; ?>" id="view2" data-value="2" title="<?php echo lang_View_columns_list; ?>"><i class="icon-fire <?php if($view==2) echo "icon-white"; ?>"></i></button>
</div>
<div class="span6 half types">
<span><?php echo lang_Filters; ?>:</span>
<?php if($_GET['type']!=1 && $_GET['type']!=3){ ?>
<input id="select-type-1" name="radio-sort" type="radio" data-item="ff-item-type-1" checked="checked" class="hide" />
<label id="ff-item-type-1" title="<?php echo lang_Files; ?>" for="select-type-1" class="tip btn ff-label-type-1"><i class="icon-file"></i></label>
<input id="select-type-2" name="radio-sort" type="radio" data-item="ff-item-type-2" class="hide" />
<label id="ff-item-type-2" title="<?php echo lang_Images; ?>" for="select-type-2" class="tip btn ff-label-type-2"><i class="icon-picture"></i></label>
<input id="select-type-3" name="radio-sort" type="radio" data-item="ff-item-type-3" class="hide" />
<label id="ff-item-type-3" title="<?php echo lang_Archives; ?>" for="select-type-3" class="tip btn ff-label-type-3"><i class="icon-inbox"></i></label>
<input id="select-type-4" name="radio-sort" type="radio" data-item="ff-item-type-4" class="hide" />
<label id="ff-item-type-4" title="<?php echo lang_Videos; ?>" for="select-type-4" class="tip btn ff-label-type-4"><i class="icon-film"></i></label>
<input id="select-type-5" name="radio-sort" type="radio" data-item="ff-item-type-5" class="hide" />
<label id="ff-item-type-5" title="<?php echo lang_Music; ?>" for="select-type-5" class="tip btn ff-label-type-5"><i class="icon-music"></i></label>
<?php } ?>
<input accesskey="f" type="text" class="filter-input <?php echo (($_GET['type']!=1 && $_GET['type']!=3) ? '' : 'filter-input-notype'); ?>" id="filter-input" name="filter" placeholder="<?php echo fix_strtolower(lang_Text_filter); ?>..." value="<?php echo $filter; ?>"/><?php if($n_files>$file_number_limit_js){ ?><label id="filter" class="btn"><i class="icon-play"></i></label><?php } ?>
<input id="select-type-all" name="radio-sort" type="radio" data-item="ff-item-type-all" class="hide" />
<label id="ff-item-type-all" title="<?php echo lang_All; ?>" <?php if($_GET['type']==1 || $_GET['type']==3){ ?>style="visibility: hidden;" <?php } ?> data-item="ff-item-type-all" for="select-type-all" style="margin-rigth:0px;" class="tip btn btn-inverse ff-label-type-all"><i class="icon-align-justify icon-white"></i></label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- header div end -->
<!-- breadcrumb div start -->
<div class="row-fluid">
<?php
$link="dialog.php?".$get_params;
?>
<ul class="breadcrumb">
<li class="pull-left"><a href="<?php echo $link?>/"><i class="icon-home"></i></a></li>
<li><span class="divider">/</span></li>
<?php
$bc=explode("/",$subdir);
$tmp_path='';
if(!empty($bc))
foreach($bc as $k=>$b){
$tmp_path.=$b."/";
if($k==count($bc)-2){
?> <li class="active"><?php echo $b?></li><?php
}elseif($b!=""){ ?>
<li><a href="<?php echo $link.$tmp_path?>"><?php echo $b?></a></li><li><span class="divider"><?php echo "/"; ?></span></li>
<?php }
}
?>
<li class="pull-right"><a class="btn-small" href="javascript:void('')" id="info"><i class="icon-question-sign"></i></a></li>
<li class="pull-right"><a id="refresh" class="btn-small" href="dialog.php?<?php echo $get_params.$subdir."&".uniqid() ?>"><i class="icon-refresh"></i></a></li>
<li class="pull-right">
<div class="btn-group">
<a class="btn dropdown-toggle sorting-btn" data-toggle="dropdown" href="#">
<i class="icon-signal"></i>
<span class="caret"></span>
</a>
<ul class="dropdown-menu pull-left sorting">
<li><center><strong><?php echo lang_Sorting ?></strong></center></li>
<li><a class="sorter sort-name <?php if($sort_by=="name"){ echo ($descending)?"descending":"ascending"; } ?>" href="javascript:void('')" data-sort="name"><?php echo lang_Filename; ?></a></li>
<li><a class="sorter sort-date <?php if($sort_by=="date"){ echo ($descending)?"descending":"ascending"; } ?>" href="javascript:void('')" data-sort="date"><?php echo lang_Date; ?></a></li>
<li><a class="sorter sort-size <?php if($sort_by=="size"){ echo ($descending)?"descending":"ascending"; } ?>" href="javascript:void('')" data-sort="size"><?php echo lang_Size; ?></a></li>
<li><a class="sorter sort-extension <?php if($sort_by=="extension"){ echo ($descending)?"descending":"ascending"; } ?>" href="javascript:void('')" data-sort="extension"><?php echo lang_Type; ?></a></li>
</ul>
</div>
</li>
</ul>
</div>
<!-- breadcrumb div end -->
<div class="row-fluid ff-container">
<div class="span12">
<?php if(@opendir($current_path.$rfm_subfolder.$subdir)===FALSE){ ?>
<br/>
<div class="alert alert-error">There is an error! The upload folder there isn't. Check your config.php file. </div>
<?php }else{ ?>
<h4 id="help"><?php echo lang_Swipe_help; ?></h4>
<?php if(isset($folder_message)){ ?>
<div class="alert alert-block"><?php echo $folder_message; ?></div>
<?php } ?>
<?php if($show_sorting_bar){ ?>
<!-- sorter -->
<div class="sorter-container <?php echo "list-view".$view; ?>">
<div class="file-name"><a class="sorter sort-name <?php if($sort_by=="name"){ echo ($descending)?"descending":"ascending"; } ?>" href="javascript:void('')" data-sort="name"><?php echo lang_Filename; ?></a></div>
<div class="file-date"><a class="sorter sort-date <?php if($sort_by=="date"){ echo ($descending)?"descending":"ascending"; } ?>" href="javascript:void('')" data-sort="date"><?php echo lang_Date; ?></a></div>
<div class="file-size"><a class="sorter sort-size <?php if($sort_by=="size"){ echo ($descending)?"descending":"ascending"; } ?>" href="javascript:void('')" data-sort="size"><?php echo lang_Size; ?></a></div>
<div class='img-dimension'><?php echo lang_Dimension; ?></div>
<div class='file-extension'><a class="sorter sort-extension <?php if($sort_by=="extension"){ echo ($descending)?"descending":"ascending"; } ?>" href="javascript:void('')" data-sort="extension"><?php echo lang_Type; ?></a></div>
<div class='file-operations'><?php echo lang_Operations; ?></div>
</div>
<?php } ?>
<input type="hidden" id="file_number" value="<?php echo $n_files; ?>" />
<!--ul class="thumbnails ff-items"-->
<ul class="grid cs-style-2 <?php echo "list-view".$view; ?>" id="main-item-container">
<?php
$jplayer_ext=array("mp4","flv","webmv","webma","webm","m4a","m4v","ogv","oga","mp3","midi","mid","ogg","wav");
foreach ($files as $file_array) {
$file=$file_array['file'];
if($file == '.' || (isset($file_array['extension']) && $file_array['extension']!=lang_Type_dir) || ($file == '..' && $subdir == '') || in_array($file, $hidden_folders) || ($filter!='' && $file!=".." && strpos($file,$filter)===false))
continue;
$new_name=fix_filename($file,$transliteration);
if($file!='..' && $file!=$new_name){
//rename
rename_folder($current_path.$subdir.$new_name,$new_name,$transliteration);
$file=$new_name;
}
//add in thumbs folder if not exist
if (!file_exists($thumbs_path.$subdir.$file)) create_folder(false,$thumbs_path.$subdir.$file);
$class_ext = 3;
if($file=='..' && trim($subdir) != '' ){
$src = explode("/",$subdir);
unset($src[count($src)-2]);
$src=implode("/",$src);
if($src=='') $src="/";
}
elseif ($file!='..') {
$src = $subdir . $file."/";
}
?>
<li data-name="<?php echo $file ?>" <?php if($file=='..') echo 'class="back"'; else echo 'class="dir"'; ?>><?php
$file_prevent_rename = false;
$file_prevent_delete = false;
if (isset($filePermissions[$file])) {
$file_prevent_rename = isset($filePermissions[$file]['prevent_rename']) && $filePermissions[$file]['prevent_rename'];
$file_prevent_delete = isset($filePermissions[$file]['prevent_delete']) && $filePermissions[$file]['prevent_delete'];
}
?> <figure data-name="<?php echo $file ?>" class="<?php if($file=="..") echo "back-"; ?>directory" data-type="<?php if($file!=".."){ echo "dir"; } ?>">
<a class="folder-link" href="dialog.php?<?php echo $get_params.rawurlencode($src)."&".uniqid() ?>">
<div class="img-precontainer">
<div class="img-container directory"><span></span>
<img class="directory-img" src="img/<?php echo $icon_theme; ?>/folder<?php if($file==".."){ echo "_back"; }?>.jpg" alt="folder" />
</div>
</div>
<div class="img-precontainer-mini directory">
<div class="img-container-mini">
<span></span>
<img class="directory-img" src="img/<?php echo $icon_theme; ?>/folder<?php if($file==".."){ echo "_back"; }?>.png" alt="folder" />
</div>
</div>
<?php if($file==".."){ ?>
<div class="box no-effect">
<h4><?php echo lang_Back ?></h4>
</div>
</a>
<?php }else{ ?>
</a>
<div class="box">
<h4 class="<?php if($ellipsis_title_after_first_row){ echo "ellipsis"; } ?>"><a class="folder-link" data-file="<?php echo $file ?>" href="dialog.php?<?php echo $get_params.rawurlencode($src)."&".uniqid() ?>"><?php echo $file; ?></a></h4>
</div>
<input type="hidden" class="name" value=""/>
<input type="hidden" class="date" value="<?php echo $file_array['date']; ?>"/>
<input type="hidden" class="size" value="<?php echo $file_array['size']; ?>"/>
<input type="hidden" class="extension" value="<?php echo lang_Type_dir; ?>"/>
<div class="file-date"><?php echo date(lang_Date_type,$file_array['date'])?></div>
<?php if($show_folder_size){ ?><div class="file-size"><?php echo makeSize($file_array['size'])?></div><?php } ?>
<div class='file-extension'><?php echo lang_Type_dir; ?></div>
<figcaption>
<a href="javascript:void('')" class="tip-left edit-button rename-file-paths <?php if($rename_folders && !$file_prevent_rename) echo "rename-folder"; ?>" title="<?php echo lang_Rename?>" data-path="<?php echo $rfm_subfolder.$subdir.$file; ?>" data-thumb="<?php echo $thumbs_path.$subdir.$file; ?>">
<i class="icon-pencil <?php if(!$rename_folders || $file_prevent_rename) echo 'icon-white'; ?>"></i></a>
<a href="javascript:void('')" class="tip-left erase-button <?php if($delete_folders && !$file_prevent_delete) echo "delete-folder"; ?>" title="<?php echo lang_Erase?>" data-confirm="<?php echo lang_Confirm_Folder_del; ?>" data-path="<?php echo $rfm_subfolder.$subdir.$file; ?>" data-thumb="<?php echo $thumbs_path.$subdir .$file; ?>">
<i class="icon-trash <?php if(!$delete_folders || $file_prevent_delete) echo 'icon-white'; ?>"></i>
</a>
</figcaption>
<?php } ?>
</figure>
</li>
<?php
}
$files_prevent_duplicate = array();
foreach ($files as $nu=>$file_array) {
$file=$file_array['file'];
if($file == '.' || $file == '..' || is_dir($current_path.$rfm_subfolder.$subdir.$file) || in_array($file, $hidden_files) || !in_array(fix_strtolower($file_array['extension']), $ext) || ($filter!='' && strpos($file,$filter)===false))
continue;
$file_path=$current_path.$rfm_subfolder.$subdir.$file;
//check if file have illegal caracter
$filename=substr($file, 0, '-' . (strlen($file_array['extension']) + 1));
if($file!=fix_filename($file,$transliteration)){
$file1=fix_filename($file,$transliteration);
$file_path1=($current_path.$rfm_subfolder.$subdir.$file1);
if(file_exists($file_path1)){
$i = 1;
$info=pathinfo($file1);
while(file_exists($current_path.$rfm_subfolder.$subdir.$info['filename'].".[".$i."].".$info['extension'])) {
$i++;
}
$file1=$info['filename'].".[".$i."].".$info['extension'];
$file_path1=($current_path.$rfm_subfolder.$subdir.$file1);
}
$filename=substr($file1, 0, '-' . (strlen($file_array['extension']) + 1));
rename_file($file_path,fix_filename($filename,$transliteration),$transliteration);
$file=$file1;
$file_array['extension']=fix_filename($file_array['extension'],$transliteration);
$file_path=$file_path1;
}
$is_img=false;
$is_video=false;
$is_audio=false;
$show_original=false;
$show_original_mini=false;
$mini_src="";
$src_thumb="";
$src_thumb_url="";
$extension_lower=fix_strtolower($file_array['extension']);
if(in_array($extension_lower, $ext_img)){
$src = $base_url . $cur_dir . rawurlencode($file);
$mini_src = $src_thumb = $thumbs_path.$subdir. $file;
$src_thumb_url = $base_url . $cur_thumbs_dir.$subdir. $file;
$mini_src_url = $base_url .$thumbs_dir.$subdir. $file;
//add in thumbs folder if not exist
if(!file_exists($src_thumb)){
try {
create_img_gd($file_path, $src_thumb, 122, 91);
new_thumbnails_creation($current_path.$rfm_subfolder.$subdir,$file_path,$file,$current_path,$relative_image_creation,$relative_path_from_current_pos,$relative_image_creation_name_to_prepend,$relative_image_creation_name_to_append,$relative_image_creation_width,$relative_image_creation_height,$fixed_image_creation,$fixed_path_from_filemanager,$fixed_image_creation_name_to_prepend,$fixed_image_creation_to_append,$fixed_image_creation_width,$fixed_image_creation_height);
} catch (Exception $e) {
$src_thumb=$mini_src=$src_thumb_url="";
}
}
$is_img=true;
//check if is smaller than thumb
list($img_width, $img_height, $img_type, $attr)=getimagesize($file_path);
if($img_width<122 && $img_height<91){
$src_thumb=$current_path.$rfm_subfolder.$subdir.$file;
$show_original=true;
}
if($img_width<45 && $img_height<38){
$mini_src=$current_path.$rfm_subfolder.$subdir.$file;
$mini_src_url= $base_url.$upload_dir.$rfm_subfolder.$subdir.$file;
$show_original_mini=true;
}
}
$is_icon_thumb=false;
$is_icon_thumb_mini=false;
$no_thumb=false;
if($src_thumb==""){
$no_thumb=true;
if(file_exists('img/'.$icon_theme.'/'.$extension_lower.".jpg")){
$src_thumb ='img/'.$icon_theme.'/'.$extension_lower.".jpg";
}else{
$src_thumb = "img/".$icon_theme."/default.jpg";
}
$src_thumb_url = $base_url . $filemanager_dir . $src_thumb;
$is_icon_thumb=true;
}
if($mini_src==""){
$is_icon_thumb_mini=false;
}
$class_ext=0;
if (in_array($extension_lower, $ext_video)) {
$class_ext = 4;
$is_video=true;
}elseif (in_array($extension_lower, $ext_img)) {
$class_ext = 2;
}elseif (in_array($extension_lower, $ext_music)) {
$class_ext = 5;
$is_audio=true;
}elseif (in_array($extension_lower, $ext_misc)) {
$class_ext = 3;
}else{
$class_ext = 1;
}
if((!($_GET['type']==1 && !$is_img) && !(($_GET['type']==3 && !$is_video) && ($_GET['type']==3 && !$is_audio))) && $class_ext>0){
?>
<li class="ff-item-type-<?php echo $class_ext; ?> file" data-name="<?php echo $file; ?>"><?php
$file_prevent_rename = false;
$file_prevent_delete = false;
if (isset($filePermissions[$file])) {
if (isset($filePermissions[$file]['prevent_duplicate']) && $filePermissions[$file]['prevent_duplicate']) {
$files_prevent_duplicate[] = $file;
}
$file_prevent_rename = isset($filePermissions[$file]['prevent_rename']) && $filePermissions[$file]['prevent_rename'];
$file_prevent_delete = isset($filePermissions[$file]['prevent_delete']) && $filePermissions[$file]['prevent_delete'];
}
?> <figure data-name="<?php echo $file ?>" data-type="<?php if($is_img){ echo "img"; }else{ echo "file"; } ?>">
<a href="javascript:void('')" class="link" data-file="<?php echo $file; ?>" data-field_id="<?php echo $field_id; ?>" data-function="<?php echo $apply; ?>">
<div class="img-precontainer">
<?php if($is_icon_thumb){ ?><div class="filetype"><?php echo $extension_lower ?></div><?php } ?>
<div class="img-container">
<span></span>
<img alt="<?php echo $filename." thumbnails";?>" class="<?php echo $show_original ? "original" : "" ?> <?php echo $is_icon_thumb ? "icon" : "" ?>" src="<?php echo $src_thumb_url; ?>">
</div>
</div>
<div class="img-precontainer-mini <?php if($is_img) echo 'original-thumb' ?>">
<div class="filetype <?php echo $extension_lower ?> <?php if(!$is_icon_thumb){ echo "hide"; }?>"><?php echo $extension_lower ?></div>
<div class="img-container-mini">
<span></span>
<?php if($mini_src!=""){ ?>
<img alt="<?php echo $filename." thumbnails";?>" class="<?php echo $show_original_mini ? "original" : "" ?> <?php echo $is_icon_thumb_mini ? "icon" : "" ?>" src="<?php echo $mini_src_url; ?>">
<?php } ?>
</div>
</div>
<?php if($is_icon_thumb){ ?>
<div class="cover"></div>
<?php } ?>
</a>
<div class="box">
<h4 class="<?php if($ellipsis_title_after_first_row){ echo "ellipsis"; } ?>"><a href="javascript:void('')" class="link" data-file="<?php echo $file; ?>" data-field_id="<?php echo $field_id; ?>" data-function="<?php echo $apply; ?>">
<?php echo $filename; ?></a> </h4>
</div>
<input type="hidden" class="date" value="<?php echo $file_array['date']; ?>"/>
<input type="hidden" class="size" value="<?php echo $file_array['size'] ?>"/>
<input type="hidden" class="extension" value="<?php echo $extension_lower; ?>"/>
<input type="hidden" class="name" value=""/>
<div class="file-date"><?php echo date(lang_Date_type,$file_array['date'])?></div>
<div class="file-size"><?php echo makeSize($file_array['size'])?></div>
<div class='img-dimension'><?php if($is_img){ echo $img_width."x".$img_height; } ?></div>
<div class='file-extension'><?php echo $extension_lower; ?></div>
<figcaption>
<form action="force_download.php" method="post" class="download-form" id="form<?php echo $nu; ?>">
<input type="hidden" name="path" value="<?php echo $rfm_subfolder.$subdir?>"/>
<input type="hidden" class="name_download" name="name" value="<?php echo $file?>"/>
<a title="<?php echo lang_Download?>" class="tip-right" href="javascript:void('')" onclick="$('#form<?php echo $nu; ?>').submit();"><i class="icon-download"></i></a>
<?php if($is_img && $src_thumb!=""){ ?>
<a class="tip-right preview" title="<?php echo lang_Preview?>" data-url="<?php echo $src;?>" data-toggle="lightbox" href="#previewLightbox"><i class=" icon-eye-open"></i></a>
<?php }elseif(($is_video || $is_audio) && in_array($extension_lower,$jplayer_ext)){ ?>
<a class="tip-right modalAV <?php if($is_audio){ echo "audio"; }else{ echo "video"; } ?>"
title="<?php echo lang_Preview?>" data-url="ajax_calls.php?action=media_preview&title=<?php echo $filename; ?>&file=<?php echo $current_path.$rfm_subfolder.$subdir.$file;; ?>"
href="javascript:void('');" ><i class=" icon-eye-open"></i></a>
<?php }else{ ?>
<a class="preview disabled"><i class="icon-eye-open icon-white"></i></a>
<?php } ?>
<a href="javascript:void('')" class="tip-left edit-button rename-file-paths <?php if($rename_files && !$file_prevent_rename) echo "rename-file"; ?>" title="<?php echo lang_Rename?>" data-path="<?php echo $rfm_subfolder.$subdir .$file; ?>" data-thumb="<?php echo $thumbs_path.$subdir .$file; ?>">
<i class="icon-pencil <?php if(!$rename_files || $file_prevent_rename) echo 'icon-white'; ?>"></i></a>
<a href="javascript:void('')" class="tip-left erase-button <?php if($delete_files && !$file_prevent_delete) echo "delete-file"; ?>" title="<?php echo lang_Erase?>" data-confirm="<?php echo lang_Confirm_del; ?>" data-path="<?php echo $rfm_subfolder.$subdir.$file; ?>" data-thumb="<?php echo $thumbs_path.$subdir .$file; ?>">
<i class="icon-trash <?php if(!$delete_files || $file_prevent_delete) echo 'icon-white'; ?>"></i>
</a>
</form>
</figcaption>
</figure>
</li>
<?php
}
}
?></div>
</ul>
<?php } ?>
</div>
</div>
</div>
<script>
var files_prevent_duplicate = new Array();
<?php
foreach ($files_prevent_duplicate as $key => $value): ?>
files_prevent_duplicate[<?php echo $key;?>] = '<?php echo $value; ?>';
<?php endforeach; ?>
</script>
<!-- lightbox div start -->
<div id="previewLightbox" class="lightbox hide fade" tabindex="-1" role="dialog" aria-hidden="true">
<div class='lightbox-content'>
<img id="full-img" src="">
</div>
</div>
<!-- lightbox div end -->
<!-- loading div start -->
<div id="loading_container" style="display:none;">
<div id="loading" style="background-color:#000; position:fixed; width:100%; height:100%; top:0px; left:0px;z-index:100000"></div>
<img id="loading_animation" src="img/storing_animation.gif" alt="loading" style="z-index:10001; margin-left:-32px; margin-top:-32px; position:fixed; left:50%; top:50%"/>
</div>
<!-- loading div end -->
<!-- player div start -->
<div class="modal hide fade" id="previewAV">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h3><?php echo lang_Preview; ?></h3>
</div>
<div class="modal-body">
<div class="row-fluid body-preview">
</div>
</div>
</div>
<!-- player div end -->
<img id='aviary_img' src='' class="hide"/>
</body>
</html>
<?php } ?>

View File

@@ -0,0 +1,280 @@
<?php
include('config/config.php');
if ($_SESSION['RF']["verify"] != "RESPONSIVEfilemanager") die('forbiden');
include('include/utils.php');
$thumb_pos = strpos($_POST['path_thumb'], $thumbs_base_path);
if ($thumb_pos !=0
|| strpos($_POST['path_thumb'],'../',strlen($thumbs_base_path)+$thumb_pos)!==FALSE
|| strpos($_POST['path'],'/')===0
|| strpos($_POST['path'],'../')!==FALSE
|| strpos($_POST['path'],'./')===0)
{
die('wrong path');
}
$language_file = 'lang/'.$default_language.'.php';
if (isset($_GET['lang']) && $_GET['lang'] != 'undefined' && $_GET['lang']!='')
{
$path_parts = pathinfo($_GET['lang']);
if (is_readable('lang/' .$path_parts['basename']. '.php'))
{
$language_file = 'lang/' .$path_parts['basename']. '.php';
}
}
require_once $language_file;
$base = $current_path;
$path = $current_path.$_POST['path'];
$cycle = TRUE;
$max_cycles = 50;
$i = 0;
while($cycle && $i<$max_cycles)
{
$i++;
if ($path == $base) $cycle=FALSE;
if (file_exists($path."config.php"))
{
require_once($path."config.php");
$cycle = FALSE;
}
$path = fix_dirname($path)."/";
$cycle = FALSE;
}
$path = $current_path.$_POST['path'];
$path_thumb = $_POST['path_thumb'];
if (isset($_POST['name']))
{
$name = $_POST['name'];
if (strpos($name,'../') !== FALSE) die('wrong name');
}
$info = pathinfo($path);
if (isset($info['extension']) && !(isset($_GET['action']) && $_GET['action']=='delete_folder') && !in_array(strtolower($info['extension']), $ext))
{
die('wrong extension');
}
if (isset($_GET['action']))
{
switch($_GET['action'])
{
case 'delete_file':
if ($delete_files){
unlink($path);
if (file_exists($path_thumb)) unlink($path_thumb);
$info=pathinfo($path);
if ($relative_image_creation){
foreach($relative_path_from_current_pos as $k=>$path)
{
if ($path!="" && $path[strlen($path)-1]!="/") $path.="/";
if (file_exists($info['dirname']."/".$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension']))
{
unlink($info['dirname']."/".$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension']);
}
}
}
if ($fixed_image_creation)
{
foreach($fixed_path_from_filemanager as $k=>$path)
{
if ($path!="" && $path[strlen($path)-1] != "/") $path.="/";
$base_dir=$path.substr_replace($info['dirname']."/", '', 0, strlen($current_path));
if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension']))
{
unlink($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension']);
}
}
}
}
break;
case 'delete_folder':
if ($delete_folders){
if (is_dir($path_thumb))
{
deleteDir($path_thumb);
}
if (is_dir($path))
{
deleteDir($path);
if ($fixed_image_creation)
{
foreach($fixed_path_from_filemanager as $k=>$paths){
if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/";
$base_dir=$paths.substr_replace($path, '', 0, strlen($current_path));
if (is_dir($base_dir)) deleteDir($base_dir);
}
}
}
}
break;
case 'create_folder':
if ($create_folders)
{
create_folder(fix_path($path,$transliteration),fix_path($path_thumb,$transliteration));
}
break;
case 'rename_folder':
if ($rename_folders){
$name=fix_filename($name,$transliteration);
$name=str_replace('.','',$name);
if (!empty($name)){
if (!rename_folder($path,$name,$transliteration)) die(lang_Rename_existing_folder);
rename_folder($path_thumb,$name,$transliteration);
if ($fixed_image_creation){
foreach($fixed_path_from_filemanager as $k=>$paths){
if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/";
$base_dir=$paths.substr_replace($path, '', 0, strlen($current_path));
rename_folder($base_dir,$name,$transliteration);
}
}
}
else {
die(lang_Empty_name);
}
}
break;
case 'rename_file':
if ($rename_files){
$name=fix_filename($name,$transliteration);
if (!empty($name))
{
if (!rename_file($path,$name,$transliteration)) die(lang_Rename_existing_file);
rename_file($path_thumb,$name,$transliteration);
if ($fixed_image_creation)
{
$info=pathinfo($path);
foreach($fixed_path_from_filemanager as $k=>$paths)
{
if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/";
$base_dir = $paths.substr_replace($info['dirname']."/", '', 0, strlen($current_path));
if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension']))
{
rename_file($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'],$fixed_image_creation_name_to_prepend[$k].$name.$fixed_image_creation_to_append[$k],$transliteration);
}
}
}
}
else {
die(lang_Empty_name);
}
}
break;
case 'duplicate_file':
if ($duplicate_files)
{
$name = fix_filename($name,$transliteration);
if (!empty($name))
{
if (!duplicate_file($path,$name)) die(lang_Rename_existing_file);
duplicate_file($path_thumb,$name);
if ($fixed_image_creation)
{
$info=pathinfo($path);
foreach($fixed_path_from_filemanager as $k=>$paths)
{
if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.= "/";
$base_dir=$paths.substr_replace($info['dirname']."/", '', 0, strlen($current_path));
if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension']))
{
duplicate_file($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'],$fixed_image_creation_name_to_prepend[$k].$name.$fixed_image_creation_to_append[$k]);
}
}
}
}
else
{
die(lang_Empty_name);
}
}
break;
case 'paste_clipboard':
if ( ! isset($_SESSION['RF']['clipboard_action'], $_SESSION['RF']['clipboard']['path'], $_SESSION['RF']['clipboard']['path_thumb'])
|| $_SESSION['RF']['clipboard_action'] == ''
|| $_SESSION['RF']['clipboard']['path'] == ''
|| $_SESSION['RF']['clipboard']['path_thumb'] == '')
{
die();
}
$action = $_SESSION['RF']['clipboard_action'];
$data = $_SESSION['RF']['clipboard'];
$data['path'] = $current_path.$data['path'];
$pinfo = pathinfo($data['path']);
// user wants to paste to the same dir. nothing to do here...
if ($pinfo['dirname'] == rtrim($path, '/')) {
die();
}
// user wants to paste folder to it's own sub folder.. baaaah.
if (is_dir($data['path']) && strpos($path, $data['path']) !== FALSE){
die();
}
// something terribly gone wrong
if ($action != 'copy' && $action != 'cut'){
die('no action');
}
// check for writability
if (is_really_writable($path) === FALSE || is_really_writable($path_thumb) === FALSE){
die($path.'--'.$path_thumb.'--'.lang_Dir_No_Write);
}
// check if server disables copy or rename
if (is_function_callable(($action == 'copy' ? 'copy' : 'rename')) === FALSE){
die(sprintf(lang_Function_Disabled, ($action == 'copy' ? lcfirst(lang_Copy) : lcfirst(lang_Cut))));
}
if ($action == 'copy')
{
rcopy($data['path'], $path);
rcopy($data['path_thumb'], $path_thumb);
}
elseif ($action == 'cut')
{
rrename($data['path'], $path);
rrename($data['path_thumb'], $path_thumb);
// cleanup
if (is_dir($data['path']) === TRUE){
rrename_after_cleaner($data['path']);
rrename_after_cleaner($data['path_thumb']);
}
}
// cleanup
$_SESSION['RF']['clipboard']['path'] = NULL;
$_SESSION['RF']['clipboard']['path_thumb'] = NULL;
$_SESSION['RF']['clipboard_action'] = NULL;
break;
default:
die('wrong action');
}
}
?>

View File

@@ -0,0 +1,30 @@
<?php
include('config/config.php');
if($_SESSION['RF']["verify"] != "RESPONSIVEfilemanager") die('forbiden');
include('include/utils.php');
if(strpos($_POST['path'],'/')===0
|| strpos($_POST['path'],'../')!==FALSE
|| strpos($_POST['path'],'./')===0)
die('wrong path');
if(strpos($_POST['name'],'/')!==FALSE)
die('wrong path');
$path=$current_path.$_POST['path'];
$name=$_POST['name'];
$info=pathinfo($name);
if(!in_array(fix_strtolower($info['extension']), $ext)){
die('wrong extension');
}
header('Pragma: private');
header('Cache-control: private, must-revalidate');
header("Content-Type: application/octet-stream");
header("Content-Length: " .(string)(filesize($path.$name)) );
header('Content-Disposition: attachment; filename="'.($name).'"');
readfile($path.$name);
exit;
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Some files were not shown because too many files have changed in this diff Show More