first push

This commit is contained in:
Serveur preprod 2016-04-14 16:14:31 +02:00
parent 4612ff6d37
commit f0c0c48223
15097 changed files with 1639826 additions and 2 deletions

5
.gitignore vendored
View File

@ -9,7 +9,7 @@ log/*
modules/gamification/
upload/*
*sitemap.xml
/__install/
#### IMAGES ####
/img/*
!img/index.php
@ -42,6 +42,7 @@ config/settings.inc.php
config/settings.old.php
config/xml/*.xml
modules/*/config*.xml
/_modules/
#### THEME ####
themes/default/cache/*.js
@ -85,4 +86,4 @@ modules/*/mails/*
config.codekit
*.sublime-project
*.sublime-workspace
.zfs/
.zfs/

View File

49
CONTRIBUTING.md Executable file
View File

@ -0,0 +1,49 @@
Contributing to PrestaShop
--------------------------
PrestaShop is an open-source e-commerce solution. Everyone is welcome and even encouraged to contribute with their own improvements.
PrestaShop 1.6 is written mostly in PHP. Other languages used throughout are JavaScript, HTML, CSS, the Smarty templating language, SQL, and XML.
To contribute to the project, you should ideally be familiar with Git, the source code management system that PrestaShop uses, with the official repository being hosted on Github:
* You can learn more about Git here: http://try.github.io/ (there are many tutorials available on the Web).
* You can get help on Github here: https://help.github.com/.
* Windows users can get a nice interface for Git by installing TortoiseGit: http://code.google.com/p/tortoisegit/
Contributors should follow the following process:
1. Create your Github account, if you do not have one already.
2. Fork the PrestaShop project to your Github account.
3. Clone your fork to your local machine. Be sure to make a recursive clone (use "git clone --recursive git://github.com/username/PrestaShop.git" or check the "Recursive" box in TortoiseGit) in order to have all the PrestaShop modules cloned too!
4. Create a branch in your local clone for your changes.
5. Change the files in your branch. Be sure to follow [the coding standards][1].
6. Push your changed branch to your fork in your Github account.
7. Create a pull request for your changes on the PrestaShop project. Be sure to follow [the commit message norm][2] in your pull request. If you need help to make a pull request, read the [Github help page about creating pull requests][3].
8. Wait for one of the core developers either to include your change in the codebase, or to comment on possible improvements you should make to your code.
That's it: you have contributed to this open source project! Congratulations!
The PrestaShop documentation features a thorough explanation of the [complete process to your first pull request][4].
If you don't feel comfortable forking the project or using Git, you can also either:
* Edit a file directly within Github: browse to the target file, click the "Edit" button, make your changes in the editor then click on "Propose File Change". Github will automatically create a new fork and branch on your own Github account, then suggest to create a pull request to PrestaShop. Once the pull request is submitted, you just have to wait for a core developer to answer you.
* Submit an issue using the Forge: [PrestaShop Forge][5] is the official ticket-tracker for PrestaShop, and the best place to write a bug ticket or request an improvement, while not having to be a developer at all. You will need to create an account on the Forge: [follow these instructions][6], then wait for a core developer to answer you.
Thank you for your help in making PrestaShop even better!
### About licenses
* All core files you commit in your pull request must respect/use the [Open Software License (OSL 3.0)][7].
* All modules files you commit in your pull request must respect/use the [Academic Free License (AFL 3.0)][8].
[1]: http://doc.prestashop.com/display/PS16/Coding+Standards
[2]: http://doc.prestashop.com/display/PS16/How+to+write+a+commit+message
[3]: https://help.github.com/articles/using-pull-requests
[4]: http://doc.prestashop.com/display/PS16/Contributing+code+to+PrestaShop
[5]: http://forge.prestashop.com/
[6]: http://doc.prestashop.com/display/PS16/How+to+use+the+Forge+to+contribute+to+PrestaShop
[7]: http://opensource.org/licenses/OSL-3.0
[8]: http://opensource.org/licenses/AFL-3.0

299
CONTRIBUTORS.md Executable file
View File

@ -0,0 +1,299 @@
GitHub contributors:
--------------------------------
(d)oekia
123monsite-regis
Adonis Karavokyros
Adrien
Agence CINS
Aleksander Palyan
Alexander Grosul
Alexander Otchenashev
Alexandra Even
AlexEven
Alexey Svistunov
alexey-svistunov
Alfonso Jimenez
anat
Anatole
Andrew
antoniofr
AntonLejon
Arnaud Lemercier
axi
Axome
Balestrino
bellini13
Benjamin PONGY
BigZ
BluTiGeS
Bruno Leveque
bumbu
Burhan
Caleydon Media
cam.lafit
Captain FLAM
Captain-FLAM
ccauw
cedricfontaine
cedricgeffroy
Chen.Zhidong
Chris
Chris Gurk
ChristopheBoucaut
CINS
cippest
cmouleyre
codvir
Corentin Delcourt
Cosmin Hutanu
Cedric Mouleyre
Damien Metzger
DamienMetzger
Damon Skelhorn
Daniel
Daniele Giachino
danoosh
Danoosh Mir
David Gasperoni
David-Julian BUCH
Davy Rolink
DevNet
Dh42
Dimitrios Karvounaris
Dinis Lage
djbuch
djfm
dlage
doekia
DOEO
Dragan Skrbic
Dream me up
dreammeup
DrySs
DrySs'
dSevere
Dvir Julius
edamart
Edouard Gaulue
Emilien Puget
emilien-puget
emily-d
Eric Le Lay
erickturcios
Fabio Chelly
fchellypresta
Felipe Uribe
fetis
Florian Kwakkenbos
fram
Francois Gaillard
Francois-Marie de Jouvencel
François Gaillard
Gabriel Schwardy
Gaelle ITZKOVITZ
Gamesh
ggedamed
Gordon Coubrough
gr4devel
Granger Kevin
Gregory Roussac
gRoussac
Gregoire Belorgey
Guillaume DELOINCE
Guillaume Lafarge
Ha!*!*y
ha99y
hiousi
indesign47
iNem0o
ironwo0d
ITBpro.com
ivancasasempere
J. Danse
janisVincent
Javsmile
JEAN
jeanbe
jeckyl
Jerome Nadaud
jeromenadaud
jessylenne
Joan Juvanteny
joemartin247
Joep Hendrix
Jonadabe
Jonathan Danse
Jonathan SAHM
Jorge Vargas
joseantgv
Julien
Julien Bouchez
Julien Bourdeau
julienbourdeau
Jachym Tousek
Kevin Granger
kiropowered
kpodemski
Krystian Podemski
Kevin Dunglas
ldecoker
lesley paone
LOIC ROSSET ltd
Luca T.
Lucas CERDAN
LucasC
LyoNick
M-Mommsen
Madef
Madman
Mainmich
makk1ntosh
marcinsz101
Marco Cervellin
matiasiglesias
Mats Rynge
MatthieuB
Maxence
Maxime
mchojnacki
Michel Courtade
Mickael Desgranges
Mikael Blotin
Mikko Hellsing
Milow
Mingsong Hu
minic studio
misthero
montes
MustangZhong
natrim
neemzy
nezenmoins
Nicolas Sorosac
Niklas Ekman
Niko Wicaksono
Nils-Helge Garli Hegvik
Nino Uzelac
nturato
oleacorner
Otto Nascarella
Panagiotis Tigas
Patanock
Per Lejontand
Peter Schaeffer
peterept
PhpMadman
Pierre
Piotr Kaczor
Piotr Moćko
PrestaEdit
PrestaLab
PrestanceDesign
prestarocket
Prestaspirit
Priyank Bolia
Pronux
pxls
quadrateam
Quentin Montant
Quetzacoalt91
Raphael Malie
raulgundin
rGaillard
Rhys
Rimas Kudelis
robert
romainberger
runningz
Remi Gaillard
s-duval
sadlyblue
sagaradonis
Samy Rabih
Sarah Lorenzini
Seb
Seynaeve
sfroment42
shaffe-fr
Shagshag
Shipow
sjousse
sLorenzini
smartdatasoft
soufyan
soware
Staging
Stanislav Yordanov
Steven "SDF" Sulley
Sumh
Sylvain Gougouzian
Sylvain WITMEYER
Sebastien
Sebastien Bocahu
tchauviere
Thibaud Chauviere
thoma202
Thomas
Thomas Blanc
Thomas N
Thomas Nabord
Threef
timsit
TMMeilleur
Tom Panier
Tomasz Slominski
tucoinfo
Tung Dao
vAugagneur
Vincent Augagneur
Vincent Schoener
Vincent Terenti
vinvin27
vinzter
web-plus
Xavier
Xavier Borderie
Xavier POITAU
xKnut
yanngarras
Yoozio
zimmi1
ZiZuu.com
Zollner Robert
SVN contributors:
--------------------------------
aFolletete
aKorczak
aNiassy
bLeveque
bMancone
dMetzger
dSevere
fBrignoli
Francois Gaillard
fSerny
gBrunier
gCharmes
gPoulain
hAitmansour
jBreux
jmCollin
jObregon
lBrieu
lCherifi
lLefevre
mBertholino
mDeflotte
mMarinetti
nPellicari
rGaillard
rMalie
rMontagne
sLorenzini
sThiebaut
tDidierjean
vAugagneur
vChabot
vKham
vSchoener

2
Install_PrestaShop.html Executable file
View File

@ -0,0 +1,2 @@
<a href="http://doc.prestashop.com/display/PS15/Installing+PrestaShop?utm_source=html_installer">You will be redirected to the getting started guide</a>
<script type="text/javascript">document.location.href = 'http://doc.prestashop.com/display/PS15/Installing+PrestaShop?utm_source=html_installer';</script>

81
README.md Executable file
View File

@ -0,0 +1,81 @@
About PrestaShop
--------
PrestaShop is a free and open-source e-commerce web application, committed to providing the best shopping cart experience for both merchants and customers. It is written in PHP, is highly customizable, supports all the major payment services, is translated in many languages and localized for many countries, is fully responsive (both front- and back-office), etc. [See all the available features][1].
<p align="center">
<img src="http://www.prestashop.com/images/banners/general/ps16-screenshot-github.png" alt="PrestaShop's back-office dashboard"/>
</p>
To download the latest stable version of PrestaShop, go to [the download page][2] on the official PrestaShop site.
About this repository
--------
This repository contains the latest version of PrestaShop: version 1.6. You can learn more about the new features of this version on [the progress page][3].
Clicking the "Download ZIP" button from the root of this repository will download the current state of PrestaShop 1.6 -- a branch that is in active development, and ready for production use. Note that the ZIP file will not contain the default modules: you need to make a recursive clone using Git in order to download these files too. See [CONTRIBUTING.md][8] for more information about using Git.
Server configuration
--------
To install PrestaShop, you need a web server running PHP 5 and any flavor of MySQL 5 (MySQL, MariaDB, Percona Server, etc.).
You will also need a database administration tool, such as phpMyAdmin, in order to create a database for PrestaShop.
We recommend the Apache or Nginx web servers.
If your host does not offer PHP 5 by default, [here are a few explanations][4] about PHP 5 or the .htaccess file for certain hosting services (1&amp;1, Free.fr, OVH, Infomaniak, Amen, GoDaddy, etc.).
If you want your own store with nothing to download and install, visit [http://www.prestabox.com][5]: it lets you create your online store in less than 10 minutes without any technical knowledge.
Installation
--------
Once the files in the PrestaShop archive have been decompressed and uploaded on your hosting space, go to the root of your PrestaShop directory with your web browser, and the PrestaShop installer will start automatically. Follow the instructions until PrestaShop is installed.
If you get any PHP error, it might be that you do not have PHP 5 on your web server, or that you need to activate it. See [this page for explanations about PHP 5][4], or contact your web host directly.
If you do not find any solution to start the installer, please post about your issue on [the PrestaShop forums][6].
Documentation
--------
The official PrestaShop documentation is available online [on its own website][7].
Contributing
--------
If you want to contribute code to PrestaShop, read the [CONTRIBUTING.md][8] file in this repository or read the [tutorials about contribution][9] on the documentation site.
If you want to help translate PrestaShop in your language, [join us on Crowdin][10]!
[![Crowdin](https://crowdin.net/badges/prestashop-official/localized.png)](https://crowdin.net/project/prestashop-official)
Forums
--------
You can discuss about e-commerce, help other merchants and get help, and contribute to improving PrestaShop together with the PrestaShop community on [the PrestaShop forums][6].
Support
--------
If you need help using PrestaShop 1.6, contact the PrestaShop support team: http://support.prestashop.com/.
Thank you for downloading and using the PrestaShop e-commerce Open-source solution!
[1]: http://www.prestashop.com/en/features
[2]: http://www.prestashop.com/en/download
[3]: http://www.prestashop.com/en/progress-1-6
[4]: http://doc.prestashop.com/display/PS16/Misc.+information#Misc.information-ActivatingPHP5
[5]: http://www.prestabox.com
[6]: http://www.prestashop.com/forums/
[7]: http://doc.prestashop.com
[8]: CONTRIBUTING.md
[9]: http://doc.prestashop.com/display/PS16/Contributing+to+PrestaShop
[10]: https://crowdin.net/project/prestashop-official

54
_.htaccess Executable file
View File

@ -0,0 +1,54 @@
#start_prestablog - not remove this comment
RewriteRule ^(.*)blog$ /index.php?fc=module&module=psblog&controller=posts [QSA,L]
RewriteRule ^(.*)blog/([0-9]+)\-([a-zA-Z0-9-]*) /index.php?fc=module&module=psblog&controller=posts&post=$2 [QSA,L]
RewriteRule ^(.*)blog/category/([0-9]+)\-([a-zA-Z0-9-]*) /index.php?fc=module&module=psblog&controller=posts&category=$2 [QSA,L]
#end_prestablogAuthName "Connexion restreinte, veuillez vous identifier"
AuthType Basic
AuthUserFile "/var/www/vhosts/alloprotection.com/test/.htpasswd"
Require valid-user
# ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again
# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution
# http://www.prestashop.com - http://www.prestashop.com/forums
<IfModule mod_rewrite.c>
<IfModule mod_env.c>
SetEnv HTTP_MOD_REWRITE On
</IfModule>
RewriteEngine on
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]
# Images
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L]
RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]
# AlphaImageLoader for IE and fancybox
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]
# Dispatcher
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]
</IfModule>
AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType application/x-font-woff .woff
#If rewrite mod isn't enabled
ErrorDocument 404 /index.php?controller=404
# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again

43
adm/ajax-tab.php Executable file
View File

@ -0,0 +1,43 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
if (!defined('_PS_ADMIN_DIR_'))
define('_PS_ADMIN_DIR_', getcwd());
require(_PS_ADMIN_DIR_.'/../config/config.inc.php');
require(_PS_ADMIN_DIR_.'/functions.php');
// For retrocompatibility with "tab" parameter
if (!isset($_GET['controller']) && isset($_GET['tab']))
$_GET['controller'] = strtolower($_GET['tab']);
if (!isset($_POST['controller']) && isset($_POST['tab']))
$_POST['controller'] = strtolower($_POST['tab']);
if (!isset($_REQUEST['controller']) && isset($_REQUEST['tab']))
$_REQUEST['controller'] = strtolower($_REQUEST['tab']);
// Retrocompatibility with 1.4
$_REQUEST['ajaxMode'] = $_POST['ajaxMode'] = $_GET['ajaxMode'] = $_REQUEST['ajax'] = $_POST['ajax'] = $_GET['ajax'] = 1;
Dispatcher::getInstance()->dispatch();

125
adm/ajax.php Executable file
View File

@ -0,0 +1,125 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
if (!defined('_PS_ADMIN_DIR_'))
define('_PS_ADMIN_DIR_', getcwd());
include(_PS_ADMIN_DIR_.'/../config/config.inc.php');
/* Getting cookie or logout */
require_once(_PS_ADMIN_DIR_.'/init.php');
$context = Context::getContext();
if (Tools::isSubmit('ajaxReferrers'))
require(_PS_CONTROLLER_DIR_.'admin/AdminReferrersController.php');
if (Tools::getValue('page') == 'prestastore' AND @fsockopen('addons.prestashop.com', 80, $errno, $errst, 3))
readfile('http://addons.prestashop.com/adminmodules.php?lang='.$context->language->iso_code);
if (Tools::isSubmit('getAvailableFields') AND Tools::isSubmit('entity'))
{
$jsonArray = array();
$import = new AdminImportController();
$fields = $import->getAvailableFields(true);
foreach ($fields AS $field)
$jsonArray[] = '{"field":"'.addslashes($field).'"}';
die('['.implode(',', $jsonArray).']');
}
if (Tools::isSubmit('ajaxProductPackItems'))
{
$jsonArray = array();
$products = Db::getInstance()->executeS('
SELECT p.`id_product`, pl.`name`
FROM `'._DB_PREFIX_.'product` p
NATURAL LEFT JOIN `'._DB_PREFIX_.'product_lang` pl
WHERE pl.`id_lang` = '.(int)(Tools::getValue('id_lang')).'
'.Shop::addSqlRestrictionOnLang('pl').'
AND p.`id_product` NOT IN (SELECT DISTINCT id_product_pack FROM `'._DB_PREFIX_.'pack`)
AND p.`id_product` != '.(int)(Tools::getValue('id_product')));
foreach ($products AS $packItem)
$jsonArray[] = '{"value": "'.(int)($packItem['id_product']).'-'.addslashes($packItem['name']).'", "text":"'.(int)($packItem['id_product']).' - '.addslashes($packItem['name']).'"}';
die('['.implode(',', $jsonArray).']');
}
if (Tools::isSubmit('getChildrenCategories') && Tools::isSubmit('id_category_parent'))
{
$children_categories = Category::getChildrenWithNbSelectedSubCat(Tools::getValue('id_category_parent'), Tools::getValue('selectedCat'), Context::getContext()->language->id, null, Tools::getValue('use_shop_context'));
die(Tools::jsonEncode($children_categories));
}
if (Tools::isSubmit('getNotifications'))
{
$notification = new Notification;
die(Tools::jsonEncode($notification->getLastElements()));
}
if (Tools::isSubmit('updateElementEmployee') && Tools::getValue('updateElementEmployeeType'))
{
$notification = new Notification;
die($notification->updateEmployeeLastElement(Tools::getValue('updateElementEmployeeType')));
}
if (Tools::isSubmit('searchCategory'))
{
$q = Tools::getValue('q');
$limit = Tools::getValue('limit');
$results = Db::getInstance()->executeS(
'SELECT c.`id_category`, cl.`name`
FROM `'._DB_PREFIX_.'category` c
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category`'.Shop::addSqlRestrictionOnLang('cl').')
WHERE cl.`id_lang` = '.(int)$context->language->id.' AND c.`level_depth` <> 0
AND cl.`name` LIKE \'%'.pSQL($q).'%\'
GROUP BY c.id_category
ORDER BY c.`position`
LIMIT '.(int)$limit);
if ($results)
foreach ($results as $result)
echo trim($result['name']).'|'.(int)$result['id_category']."\n";
}
if (Tools::isSubmit('getParentCategoriesId') && $id_category = Tools::getValue('id_category'))
{
$category = new Category((int)$id_category);
$results = Db::getInstance()->executeS('SELECT `id_category` FROM `'._DB_PREFIX_.'category` c WHERE c.`nleft` < '.(int)$category->nleft.' AND c.`nright` > '.(int)$category->nright.'');
$output = array();
foreach ($results as $result)
$output[] = $result;
die(Tools::jsonEncode($output));
}
if (Tools::isSubmit('getZones'))
{
$html = '<select id="zone_to_affect" name="zone_to_affect">';
foreach (Zone::getZones() as $z)
$html .= '<option value="'.$z['id_zone'].'">'.$z['name'].'</option>';
$html .= '</select>';
$array = array('hasError' => false, 'errors' => '', 'data' => $html);
die(Tools::jsonEncode($array));
}

92
adm/ajax_products_list.php Executable file
View File

@ -0,0 +1,92 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
if (!defined('_PS_ADMIN_DIR_'))
define('_PS_ADMIN_DIR_', getcwd());
include(_PS_ADMIN_DIR_.'/../config/config.inc.php');
/* Getting cookie or logout */
require_once(_PS_ADMIN_DIR_.'/init.php');
$query = Tools::getValue('q', false);
if (!$query OR $query == '' OR strlen($query) < 1)
die();
/*
* In the SQL request the "q" param is used entirely to match result in database.
* In this way if string:"(ref : #ref_pattern#)" is displayed on the return list,
* they are no return values just because string:"(ref : #ref_pattern#)"
* is not write in the name field of the product.
* So the ref pattern will be cut for the search request.
*/
if($pos = strpos($query, ' (ref:'))
$query = substr($query, 0, $pos);
$excludeIds = Tools::getValue('excludeIds', false);
if ($excludeIds && $excludeIds != 'NaN')
$excludeIds = implode(',', array_map('intval', explode(',', $excludeIds)));
else
$excludeIds = '';
// Excluding downloadable products from packs because download from pack is not supported
$excludeVirtuals = (bool)Tools::getValue('excludeVirtuals', false);
$exclude_packs = (bool)Tools::getValue('exclude_packs', false);
$sql = 'SELECT p.`id_product`, pl.`link_rewrite`, p.`reference`, pl.`name`, MAX(image_shop.`id_image`) id_image, il.`legend`
FROM `'._DB_PREFIX_.'product` p
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (pl.id_product = p.id_product AND pl.id_lang = '.(int)Context::getContext()->language->id.Shop::addSqlRestrictionOnLang('pl').')
LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product`)'.
Shop::addSqlAssociation('image', 'i', false, 'image_shop.cover=1').'
LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)Context::getContext()->language->id.')
WHERE (pl.name LIKE \'%'.pSQL($query).'%\' OR p.reference LIKE \'%'.pSQL($query).'%\')'.
(!empty($excludeIds) ? ' AND p.id_product NOT IN ('.$excludeIds.') ' : ' ').
($excludeVirtuals ? 'AND p.id_product NOT IN (SELECT pd.id_product FROM `'._DB_PREFIX_.'product_download` pd WHERE (pd.id_product = p.id_product))' : '').
($exclude_packs ? 'AND (p.cache_is_pack IS NULL OR p.cache_is_pack = 0)' : '').
' GROUP BY p.id_product';
$items = Db::getInstance()->executeS($sql);
$acc = (bool)Tools::isSubmit('excludeIds');
if ($items && $acc)
foreach ($items AS $item)
echo trim($item['name']).(!empty($item['reference']) ? ' (ref: '.$item['reference'].')' : '').'|'.(int)($item['id_product'])."\n";
elseif ($items)
{
// packs
$results = array();
foreach ($items AS $item)
{
$product = array(
'id' => (int)($item['id_product']),
'name' => $item['name'],
'ref' => (!empty($item['reference']) ? $item['reference'] : ''),
'image' => str_replace('http://', Tools::getShopProtocol(), Context::getContext()->link->getImageLink($item['link_rewrite'], $item['id_image'], 'home_default')),
);
array_push($results, $product);
}
echo Tools::jsonEncode($results);
}
else
json_encode(new stdClass);

37342
adm/anta_a.php Normal file

File diff suppressed because it is too large Load Diff

76
adm/backup.php Executable file
View File

@ -0,0 +1,76 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
if (!defined('_PS_ADMIN_DIR_'))
define('_PS_ADMIN_DIR_', getcwd());
include(_PS_ADMIN_DIR_.'/../config/config.inc.php');
if (!Context::getContext()->employee->isLoggedBack())
Tools::redirectAdmin(Context::getContext()->link->getAdminLink('AdminLogin'));
$tabAccess = Profile::getProfileAccess(Context::getContext()->employee->id_profile,
Tab::getIdFromClassName('AdminBackup'));
if ($tabAccess['view'] !== '1')
die (Tools::displayError('You do not have permission to view this.'));
$backupdir = realpath(PrestaShopBackup::getBackupPath());
if ($backupdir === false)
die (Tools::displayError('There is no "/backup" directory.'));
if (!$backupfile = Tools::getValue('filename'))
die (Tools::displayError('No file has been specified.'));
// Check the realpath so we can validate the backup file is under the backup directory
$backupfile = realpath($backupdir.DIRECTORY_SEPARATOR.$backupfile);
if ($backupfile === false OR strncmp($backupdir, $backupfile, strlen($backupdir)) != 0 )
die (Tools::dieOrLog('The backup file does not exist.'));
if (substr($backupfile, -4) == '.bz2')
$contentType = 'application/x-bzip2';
else if (substr($backupfile, -3) == '.gz')
$contentType = 'application/x-gzip';
else
$contentType = 'text/x-sql';
$fp = @fopen($backupfile, 'r');
if ($fp === false)
die (Tools::displayError('Unable to open backup file(s).').' "'.addslashes($backupfile).'"');
// Add the correct headers, this forces the file is saved
header('Content-Type: '.$contentType);
header('Content-Disposition: attachment; filename="'.Tools::getValue('filename'). '"');
if (ob_get_level() && ob_get_length() > 0)
ob_clean();
$ret = @fpassthru($fp);
fclose($fp);
if ($ret === false)
die (Tools::displayError('Unable to display backup file(s).').' "'.addslashes($backupfile).'"');

35
adm/backups/index.php Executable file
View File

@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

36
adm/cron_currency_rates.php Executable file
View File

@ -0,0 +1,36 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
if (!defined('_PS_ADMIN_DIR_'))
define('_PS_ADMIN_DIR_', getcwd());
include(_PS_ADMIN_DIR_.'/../config/config.inc.php');
if (isset($_GET['secure_key']))
{
$secureKey = md5(_COOKIE_KEY_.Configuration::get('PS_SHOP_NAME'));
if (!empty($secureKey) AND $secureKey === $_GET['secure_key'])
Currency::refreshCurrencies();
}

43
adm/cron_delete_cart_rule.php Executable file
View File

@ -0,0 +1,43 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
//18665
if (!defined('_PS_ADMIN_DIR_'))
define('_PS_ADMIN_DIR_', getcwd());
include(_PS_ADMIN_DIR_.'/../config/config.inc.php');
if (isset($_GET['secure_key']))
{
$secureKey = md5(_COOKIE_KEY_.Configuration::get('PS_SHOP_NAME'));
if (!empty($secureKey) AND $secureKey === $_GET['secure_key'])
{
Db::getInstance()->delete('cart_rule', 'id_customer = 377');
Db::getInstance()->delete('cart_rule', 'id_customer = 27200');
Db::getInstance()->delete('cart_rule', 'id_customer = 27221');
Db::getInstance()->delete('cart_rule', 'id_customer = 64601');
}
}

37
adm/displayImage.php Executable file
View File

@ -0,0 +1,37 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
if (!defined('_PS_ADMIN_DIR_'))
define('_PS_ADMIN_DIR_', getcwd());
require_once(_PS_ADMIN_DIR_.'/../config/config.inc.php');
require_once(_PS_ADMIN_DIR_.'/init.php');
if (isset($_GET['img']) AND Validate::isMd5($_GET['img']) AND isset($_GET['name']) AND Validate::isGenericName($_GET['name']) AND file_exists(_PS_UPLOAD_DIR_.$_GET['img']))
{
header('Content-type: image/jpeg');
header('Content-Disposition: attachment; filename="'.$_GET['name'].'.jpg"');
echo file_get_contents(_PS_UPLOAD_DIR_.$_GET['img']);
}

104
adm/drawer.php Executable file
View File

@ -0,0 +1,104 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
if (!defined('_PS_ADMIN_DIR_'))
define('_PS_ADMIN_DIR_', getcwd());
include_once(_PS_ADMIN_DIR_.'/../config/config.inc.php');
$module = Tools::getValue('module');
$render = Tools::getValue('render');
$type = Tools::getValue('type');
$option = Tools::getValue('option');
$layers = Tools::getValue('layers');
$width = Tools::getValue('width');
$height = Tools::getValue('height');
$id_employee = Tools::getValue('id_employee');
$id_lang = Tools::getValue('id_lang');
if (!isset($cookie->id_employee) || !$cookie->id_employee || $cookie->id_employee != $id_employee)
die(Tools::displayError());
if (!Validate::isModuleName($module))
die(Tools::displayError());
if (!Tools::file_exists_cache($module_path = _PS_ROOT_DIR_.'/modules/'.$module.'/'.$module.'.php'))
die(Tools::displayError());
$shop_id = '';
Shop::setContext(Shop::CONTEXT_ALL);
if (Context::getContext()->cookie->shopContext)
{
$split = explode('-', Context::getContext()->cookie->shopContext);
if (count($split) == 2)
{
if ($split[0] == 'g')
{
if (Context::getContext()->employee->hasAuthOnShopGroup($split[1]))
Shop::setContext(Shop::CONTEXT_GROUP, $split[1]);
else
{
$shop_id = Context::getContext()->employee->getDefaultShopID();
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
}
}
else if (Shop::getShop($split[1]) && Context::getContext()->employee->hasAuthOnShop($split[1]))
{
$shop_id = $split[1];
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
}
else
{
$shop_id = Context::getContext()->employee->getDefaultShopID();
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
}
}
}
// Check multishop context and set right context if need
if (Shop::getContext())
{
if (Shop::getContext() == Shop::CONTEXT_SHOP && !Shop::CONTEXT_SHOP)
Shop::setContext(Shop::CONTEXT_GROUP, Shop::getContextShopGroupID());
if (Shop::getContext() == Shop::CONTEXT_GROUP && !Shop::CONTEXT_GROUP)
Shop::setContext(Shop::CONTEXT_ALL);
}
// Replace existing shop if necessary
if (!$shop_id)
Context::getContext()->shop = new Shop(Configuration::get('PS_SHOP_DEFAULT'));
elseif (Context::getContext()->shop->id != $shop_id)
Context::getContext()->shop = new Shop($shop_id);
require_once($module_path);
$graph = new $module();
$graph->setEmployee($id_employee);
$graph->setLang($id_lang);
if ($option)
$graph->setOption($option, $layers);
$graph->create($render, $type, $width, $height, $layers);
$graph->draw();

245
adm/filemanager/ajax_calls.php Executable file
View File

@ -0,0 +1,245 @@
<?php
include('config/config.php');
if ($_SESSION['verify'] != 'RESPONSIVEfilemanager')
die('forbiden');
include('include/utils.php');
if (isset($_GET['action']))
switch ($_GET['action'])
{
case 'view':
if (isset($_GET['type']))
$_SESSION['view_type'] = $_GET['type'];
else
die('view type number missing');
break;
case 'sort':
if (isset($_GET['sort_by']))
$_SESSION['sort_by'] = $_GET['sort_by'];
if (isset($_GET['descending']))
$_SESSION['descending'] = $_GET['descending'] === 'true';
break;
case 'image_size':
if (realpath(dirname(_PS_ROOT_DIR_.$_POST['path'])) != realpath(_PS_ROOT_DIR_.$upload_dir))
die();
$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('file could not be loaded');
}
$put_contents_path = $current_path;
if (isset($_POST['path']))
$put_contents_path .= str_replace("\0", "", $_POST['path']);
if (isset($_POST['name']))
$put_contents_path .= str_replace("\0", "", $_POST['name']);
file_put_contents($put_contents_path, $image_data);
//new thumb creation
//try{
create_img_gd($current_path.$_POST['path'].$_POST['name'], $thumbs_base_path.$_POST['path'].$_POST['name'], 122, 91);
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);
/*} catch (Exception $e) {
$src_thumb=$mini_src="";
}*/
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 ($FullFileName['name'][strlen($FullFileName['name']) - 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 (!($FullFileName['name'][strlen($FullFileName['name']) - 1] == '/'))
{
$fileinfo = pathinfo($OnlyFileName);
if (in_array(strtolower($fileinfo['extension']), $ext))
{
copy('zip://'.$path.'#'.$OnlyFileName, $base_folder.$FullFileName['name']);
}
}
}
$zip->close();
}
else
echo 'failed to open file';
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;
}
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 Tools::safeOutput($_GET['title']); ?>",
mp3: "<?php echo Tools::safeOutput($preview_file); ?>",
m4a: "<?php echo Tools::safeOutput($preview_file); ?>",
oga: "<?php echo Tools::safeOutput($preview_file); ?>",
wav: "<?php echo Tools::safeOutput($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 Tools::safeOutput($_GET['title']); ?>",
m4v: "<?php echo Tools::safeOutput($preview_file); ?>",
ogv: "<?php echo Tools::safeOutput($preview_file); ?>"
});
},
swfPath: "js",
solution: "html,flash",
supplied: "mp4, m4v, ogv, flv, webmv, webm",
smoothPlayBar: true,
keyEnabled: false
});
});
</script>
<?php
}
break;
}
else
die('no action passed');
?>

168
adm/filemanager/config/config.php Executable file
View File

@ -0,0 +1,168 @@
<?php
session_start();
mb_internal_encoding('UTF-8');
if (!defined('_PS_ADMIN_DIR_'))
define('_PS_ADMIN_DIR_', getcwd().'/../');
require_once(_PS_ADMIN_DIR_.'/../config/config.inc.php');
require_once(_PS_ADMIN_DIR_.'/init.php');
$products_accesses = Profile::getProfileAccess(Context::getContext()->employee->id_profile, Tab::getIdFromClassName('AdminProducts'));
$cms_accesses = Profile::getProfileAccess(Context::getContext()->employee->id_profile, Tab::getIdFromClassName('AdminCmsContent'));
if (!$products_accesses['edit'] && !$cms_accesses['edit'])
die(Tools::displayError());
//------------------------------------------------------------------------------
// DON'T COPY THIS VARIABLES IN FOLDERS config.php FILES
//------------------------------------------------------------------------------
//**********************
//Path configuration
//**********************
// In this configuration the folder tree is
// root
// |- source <- upload folder
// |- thumbs <- thumbnail folder [must have write permission (755)]
// |- filemanager
// |- js
// | |- tinymce
// | | |- plugins
// | | | |- responsivefilemanager
// | | | | |- plugin.min.js
$base_url="http://".$_SERVER['HTTP_HOST']; // DON'T TOUCH (base url (only domain) of site (without final /)).
$upload_dir = __PS_BASE_URI__.'img/cms/'; // path from base_url to base of upload folder (with start and final /)
$current_path = _PS_ROOT_DIR_.'/img/cms/'; // relative path from filemanager folder to upload folder (with final /)
//thumbs folder can't put inside upload folder
$thumbs_base_path = _PS_ROOT_DIR_.'/img/tmp/cms/'; // relative path from filemanager folder to thumbs folder (with final /)
$thumbs_base_path = _PS_ROOT_DIR_.'/img/cms/'; // relative path from filemanager folder to thumbs folder (with final /)
//--------------------------------------------------------------------------------------------------------
// YOU CAN COPY AND CHANGE THESE VARIABLES INTO FOLDERS config.php FILES TO CUSTOMIZE EACH FOLDER OPTIONS
//--------------------------------------------------------------------------------------------------------
$MaxSizeUpload=100; //Mb
$default_language="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["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;
//**********************
//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=false;
$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)}

8
adm/filemanager/css/bootstrap-modal.min.css vendored Executable file
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

9
adm/filemanager/css/bootstrap.min.css vendored Executable file

File diff suppressed because one or more lines are too long

410
adm/filemanager/css/dropzone.css Executable file
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;
}
}

1
adm/filemanager/css/dropzone.min.css vendored Executable file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,37 @@
.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/page_white_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-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}

1
adm/filemanager/css/style.css Executable file

File diff suppressed because one or more lines are too long

895
adm/filemanager/css/style.less Executable file
View File

@ -0,0 +1,895 @@
*, *: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;
}
.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;
}
.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.2);
box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.2);
}
}
.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;
}
.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);
background: red;
}
}
.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; }}}

990
adm/filemanager/dialog.php Executable file
View File

@ -0,0 +1,990 @@
<?php
include('config/config.php');
$_SESSION["verify"] = "RESPONSIVEfilemanager";
if (isset($_POST['submit']))
include('upload.php');
else
{
include('include/utils.php');
if (isset($_GET['fldr'])
&& !empty($_GET['fldr'])
&& preg_match('/\.{1,2}[\/|\\\]/', urldecode($_GET['fldr'])) === 0
)
$subdir = urldecode(trim(str_replace("\0", '', $_GET['fldr']), '/').'/');
else
$subdir = '';
//remember last position
setcookie('last_position', $subdir, time() + (86400 * 7));
if ($subdir == '')
{
if (!empty($_COOKIE['last_position'])
&& strpos($_COOKIE['last_position'], '.') === false
)
$subdir = trim($_COOKIE['last_position']);
}
if ($subdir == '/')
$subdir = '';
/***
*SUB-DIR CODE
***/
if (!isset($_SESSION['subfolder'])) $_SESSION['subfolder'] = '';
$subfolder = '';
if (!empty($_SESSION['subfolder']) && strpos($_SESSION['subfolder'], '../') === false
&& strpos($_SESSION['subfolder'], './') === false && strpos($_SESSION['subfolder'], '/') !== 0
&& strpos($_SESSION['subfolder'], '.') === false
) $subfolder = $_SESSION['subfolder'];
if ($subfolder != '' && $subfolder[strlen($subfolder) - 1] != '/') $subfolder .= '/';
if (!file_exists($current_path.$subfolder.$subdir))
{
$subdir = '';
if (!file_exists($current_path.$subfolder.$subdir))
$subfolder = '';
}
if (trim($subfolder) == '')
{
$cur_dir = $upload_dir.$subdir;
$cur_path = $current_path.$subdir;
$thumbs_path = $thumbs_base_path;
$parent = $subdir;
} else
{
$cur_dir = $upload_dir.$subfolder.$subdir;
$cur_path = $current_path.$subfolder.$subdir;
$thumbs_path = $thumbs_base_path.$subfolder;
$parent = $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 = $_GET['popup']; else $popup = 0;
//Sanitize popup
$popup = !!$popup;
//view type
if (!isset($_SESSION['view_type']))
{
$view = $default_view;
$_SESSION['view_type'] = $view;
}
if (isset($_GET['view']))
{
$view = $_GET['view'];
$_SESSION['view_type'] = $view;
}
$view = $_SESSION['view_type'];
if (isset($_GET['filter'])) $filter = fix_filename($_GET['filter'], $transliteration);
else $filter = '';
if (!isset($_SESSION['sort_by'])) $_SESSION['sort_by'] = '';
if (isset($_GET['sort_by'])) $sort_by = $_SESSION['sort_by'] = fix_filename($_GET['sort_by'], $transliteration);
else $sort_by = $_SESSION['sort_by'];
if (!isset($_SESSION['descending'])) $_SESSION['descending'] = false;
if (isset($_GET['descending'])) $descending = $_SESSION['descending'] = fix_filename($_GET['descending'], $transliteration) === 'true';
else $descending = $_SESSION['descending'];
$lang = $default_language;
if (isset($_GET['lang']) && $_GET['lang'] != 'undefined' && $_GET['lang'] != '')
$lang = $_GET['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
$lang = $default_language;
}
require_once $language_file;
if (!isset($_GET['type'])) $_GET['type'] = 0;
if (!isset($_GET['field_id'])) $_GET['field_id'] = '';
$get_params = http_build_query(
array(
'type' => Tools::safeOutput($_GET['type']),
'lang' => Tools::safeOutput($lang),
'popup' => $popup,
'field_id' => isset($_GET['field_id']) ? (int)$_GET['field_id'] : '',
'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"/>
<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.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 Tools::safeOutput($popup); ?>"/>
<input type="hidden" id="view" value="<?php echo Tools::safeOutput($view); ?>"/>
<input type="hidden" id="cur_dir" value="<?php echo Tools::safeOutput($cur_dir); ?>"/>
<input type="hidden" id="cur_dir_thumb" value="<?php echo Tools::safeOutput($subdir); ?>"/>
<input type="hidden" id="insert_folder_name" value="<?php echo Tools::safeOutput(lang_Insert_Folder_Name); ?>"/>
<input type="hidden" id="new_folder" value="<?php echo Tools::safeOutput(lang_New_Folder); ?>"/>
<input type="hidden" id="ok" value="<?php echo Tools::safeOutput(lang_OK); ?>"/>
<input type="hidden" id="cancel" value="<?php echo Tools::safeOutput(lang_Cancel); ?>"/>
<input type="hidden" id="rename" value="<?php echo Tools::safeOutput(lang_Rename); ?>"/>
<input type="hidden" id="lang_duplicate" value="<?php echo Tools::safeOutput(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 Tools::safeOutput($base_url) ?>"/>
<input type="hidden" id="base_url_true" value="<?php echo base_url(); ?>"/>
<input type="hidden" id="fldr_value" value="<?php echo Tools::safeOutput($subdir); ?>"/>
<input type="hidden" id="sub_folder" value="<?php echo Tools::safeOutput($subfolder); ?>"/>
<input type="hidden" id="file_number_limit_js" value="<?php echo Tools::safeOutput($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'].Tools::safeOutput($_SERVER['REQUEST_URI'])); ?>"/>
<input type="hidden" id="lang_show_url" value="<?php echo Tools::safeOutput(lang_Show_url); ?>"/>
<input type="hidden" id="lang_extract" value="<?php echo Tools::safeOutput(lang_Extract); ?>"/>
<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 Tools::safeOutput(lang_Edit_image); ?>"/>
<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 Tools::safeOutput(lang_Return_Files_List) ?></button>
</center>
<div class="space10"></div>
<div class="space10"></div>
<?php if ($java_upload){ ?>
<div class="tabbable upload-tabbable"> <!-- Only required for left/right tabs -->
<ul class="nav nav-tabs">
<li class="active"><a href="#tab1" data-toggle="tab"><?php echo Tools::safeOutput(lang_Upload_base); ?></a></li>
<li><a href="#tab2" id="uploader-btn" data-toggle="tab"><?php echo Tools::safeOutput(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 Tools::safeOutput($subfolder.$subdir); ?>"/>
<input type="hidden" name="path_thumb" value="<?php echo Tools::safeOutput($subfolder.$subdir); ?>"/>
<div class="fallback">
<?php echo lang_Upload_file ?>:<br/>
<input name="file" type="file"/>
<input type="hidden" name="fldr" value="<?php echo Tools::safeOutput($subdir); ?>"/>
<input type="hidden" name="view" value="<?php echo Tools::safeOutput($view); ?>"/>
<input type="hidden" name="type" value="<?php echo Tools::safeOutput($_GET['type']); ?>"/>
<input type="hidden" name="field_id" value="<?php echo (int)$_GET['field_id']; ?>"/>
<input type="hidden" name="popup" value="<?php echo Tools::safeOutput($popup); ?>"/>
<input type="hidden" name="lang" value="<?php echo Tools::safeOutput($lang); ?>"/>
<input type="hidden" name="filter" value="<?php echo Tools::safeOutput($filter); ?>"/>
<input type="submit" name="submit" value="<?php echo lang_OK ?>"/>
</div>
</form>
<div class="upload-help"><?php echo Tools::safeOutput(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 Tools::safeOutput(lang_Upload_java_help); ?></div>
</div>
<?php } ?>
</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.$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.$subfolder.$subdir.$file))
{
$date = filemtime($current_path.$subfolder.$subdir.$file);
$size = foldersize($current_path.$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.$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 Tools::safeOutput(lang_Toolbar); ?> -></div>
<div class="nav-collapse collapse">
<div class="filters">
<div class="row-fluid">
<div class="span3 half">
<span><?php echo Tools::safeOutput(lang_Actions); ?>:</span>
<?php if ($upload_files)
{
?>
<button class="tip btn upload-btn" title="<?php echo Tools::safeOutput(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 Tools::safeOutput(lang_New_Folder) ?>">
<i class="icon-plus"></i><i class="icon-folder-open"></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 Tools::safeOutput(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 Tools::safeOutput(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 Tools::safeOutput(lang_View_columns_list); ?>">
<i class="icon-fire <?php if ($view == 2) echo "icon-white"; ?>"></i></button>
</div>
<div class="span6 types">
<span><?php echo Tools::safeOutput(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 Tools::safeOutput(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 Tools::safeOutput(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 Tools::safeOutput(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 Tools::safeOutput(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 Tools::safeOutput(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" id="filter-input" name="filter" placeholder="<?php echo fix_strtolower(lang_Text_filter); ?>..." value="<?php echo Tools::safeOutput($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 Tools::safeOutput(lang_All); ?>" <?php if (Tools::getValue('type') == 1 || Tools::getValue('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 Tools::safeOutput($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 Tools::safeOutput($b) ?></li><?php
} elseif ($b != "")
{
?>
<li><a href="<?php echo Tools::safeOutput($link.$tmp_path)?>"><?php echo Tools::safeOutput($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 Tools::safeOutput($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 Tools::safeOutput(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 Tools::safeOutput(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 Tools::safeOutput(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 Tools::safeOutput(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 Tools::safeOutput(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.$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 Tools::safeOutput(lang_Swipe_help); ?></h4>
<?php if (isset($folder_message))
{
?>
<div class="alert alert-block"><?php echo Tools::safeOutput($folder_message); ?></div>
<?php } ?>
<?php if ($show_sorting_bar)
{
?>
<!-- sorter -->
<div class="sorter-container <?php echo "list-view".Tools::safeOutput($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 Tools::safeOutput(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 Tools::safeOutput(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 Tools::safeOutput(lang_Size); ?></a></div>
<div class='img-dimension'><?php echo Tools::safeOutput(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 Tools::safeOutput(lang_Type); ?></a></div>
<div class='file-operations'><?php echo Tools::safeOutput(lang_Operations); ?></div>
</div>
<?php } ?>
<input type="hidden" id="file_number" value="<?php echo Tools::safeOutput($n_files); ?>"/>
<!--ul class="thumbnails ff-items"-->
<ul class="grid cs-style-2 <?php echo "list-view".Tools::safeOutput($view); ?>">
<?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 Tools::safeOutput($file) ?>" <?php if ($file == '..') echo 'class="back"'; else echo 'class="dir"'; ?>>
<figure data-name="<?php echo Tools::safeOutput($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 Tools::safeOutput($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 Tools::safeOutput($icon_theme); ?>/folder<?php if ($file == "..")
{
echo "_back";
} ?>.png" alt="folder"/>
</div>
</div>
<?php if ($file == ".."){ ?>
<div class="box no-effect">
<h4><?php echo Tools::safeOutput(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 Tools::safeOutput($file) ?>" href="dialog.php?<?php echo Tools::safeOutput($get_params.rawurlencode($src)."&".uniqid()) ?>"><?php echo Tools::safeOutput($file); ?></a>
</h4>
</div>
<input type="hidden" class="name" value=""/>
<input type="hidden" class="date" value="<?php echo Tools::safeOutput($file_array['date']); ?>"/>
<input type="hidden" class="size" value="<?php echo Tools::safeOutput($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 <?php if ($rename_folders) echo "rename-folder"; ?>" title="<?php echo lang_Rename ?>" data-path="<?php echo Tools::safeOutput($subfolder.$subdir.$file); ?>" data-thumb="<?php echo Tools::safeOutput($subdir.$file); ?>">
<i class="icon-pencil <?php if (!$rename_folders) echo 'icon-white'; ?>"></i></a>
<a href="javascript:void('')" class="tip-left erase-button <?php if ($delete_folders) echo "delete-folder"; ?>" title="<?php echo lang_Erase ?>" data-confirm="<?php echo lang_Confirm_Folder_del; ?>" data-path="<?php echo Tools::safeOutput($subfolder.$subdir.$file); ?>" data-thumb="<?php echo Tools::safeOutput($subdir.$file); ?>">
<i class="icon-trash <?php if (!$delete_folders) echo 'icon-white'; ?>"></i>
</a>
</figcaption>
<?php } ?>
</figure>
</li>
<?php
}
foreach ($files as $nu => $file_array) {
$file = $file_array['file'];
if ($file == '.' || $file == '..' || is_dir($current_path.$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.$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.$subfolder.$subdir.$file1);
if (file_exists($file_path1))
{
$i = 1;
$info = pathinfo($file1);
while (file_exists($current_path.$subfolder.$subdir.$info['filename'].".[".$i."].".$info['extension']))
{
$i++;
}
$file1 = $info['filename'].".[".$i."].".$info['extension'];
$file_path1 = ($current_path.$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 = "";
$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;
if (strpos($src_thumb, _PS_ROOT_DIR_) === 0)
$mini = $thumb = __PS_BASE_URI__.substr($thumbs_path.$subdir.$file, strlen(_PS_ROOT_DIR_) + 1);
//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.$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 = "";
}
}
$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.$subfolder.$subdir.$file;
$show_original = true;
}
if ($img_width < 45 && $img_height < 38)
{
$mini_src = $current_path.$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";
}
$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 ((!(Tools::getValue('type') == 1 && !$is_img) && !((Tools::getValue('type') == 3 && !$is_video) && (Tools::getValue('type') == 3 && !$is_audio))) && $class_ext > 0){
?>
<li class="ff-item-type-<?php echo Tools::safeOutput($class_ext); ?> file" data-name="<?php echo Tools::safeOutput($file); ?>">
<figure data-name="<?php echo Tools::safeOutput($file) ?>" data-type="<?php if ($is_img)
{
echo "img";
} else
{
echo "file";
} ?>">
<a href="javascript:void('')" class="link" data-file="<?php echo Tools::safeOutput($file); ?>" data-field_id="" data-function="<?php echo Tools::safeOutput($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 Tools::safeOutput($filename." thumbnails"); ?>" class="<?php echo $show_original ? "original" : "" ?> <?php echo $is_icon_thumb ? "icon" : "" ?>" src="<?php echo Tools::safeOutput($thumb); ?>">
</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 Tools::safeOutput($filename." thumbnails"); ?>" class="<?php echo $show_original_mini ? "original" : "" ?> <?php echo $is_icon_thumb_mini ? "icon" : "" ?>" src="<?php echo Tools::safeOutput($mini); ?>">
<?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 Tools::safeOutput($file); ?>" data-field_id="" data-function="<?php echo Tools::safeOutput($apply); ?>">
<?php echo Tools::safeOutput($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 Tools::safeOutput($extension_lower); ?></div>
<figcaption>
<form action="force_download.php" method="post" class="download-form" id="form<?php echo Tools::safeOutput($nu); ?>">
<input type="hidden" name="path" value="<?php echo Tools::safeOutput($subfolder.$subdir) ?>"/>
<input type="hidden" class="name_download" name="name" value="<?php echo Tools::safeOutput($file) ?>"/>
<a title="<?php echo lang_Download ?>" class="tip-right" href="javascript:void('')" onclick="$('#form<?php echo Tools::safeOutput($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 Tools::safeOutput($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 Tools::safeOutput($filename); ?>&file=<?php echo Tools::safeOutput($current_path.$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 <?php if ($rename_files) echo "rename-file"; ?>" title="<?php echo lang_Rename ?>" data-path="<?php echo Tools::safeOutput($subfolder.$subdir.$file); ?>" data-thumb="<?php echo Tools::safeOutput($subdir.$file); ?>">
<i class="icon-pencil <?php if (!$rename_files) echo 'icon-white'; ?>"></i></a>
<a href="javascript:void('')" class="tip-left erase-button <?php if ($delete_files) echo "delete-file"; ?>" title="<?php echo lang_Erase ?>" data-confirm="<?php echo lang_Confirm_del; ?>" data-path="<?php echo Tools::safeOutput($subfolder.$subdir.$file); ?>" data-thumb="<?php echo Tools::safeOutput($subdir.$file); ?>">
<i class="icon-trash <?php if (!$delete_files) echo 'icon-white'; ?>"></i>
</a>
</form>
</figcaption>
</figure>
</li>
<?php
}
}
?></div>
</ul>
<?php } ?>
</div>
</div>
</div>
<!----- 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 } ?>

205
adm/filemanager/execute.php Executable file
View File

@ -0,0 +1,205 @@
<?php
include('config/config.php');
if ($_SESSION['verify'] != 'RESPONSIVEfilemanager') die('forbiden');
include('include/utils.php');
$_POST['path_thumb'] = $thumbs_base_path.$_POST['path_thumb'];
if (!isset($_POST['path_thumb']) && trim($_POST['path_thumb']) == '')
die('wrong path');
$thumb_pos = strpos($_POST['path_thumb'], $thumbs_base_path);
if ($thumb_pos === false
|| preg_match('/\.{1,2}[\/|\\\]/', $_POST['path_thumb']) !== 0
|| preg_match('/\.{1,2}[\/|\\\]/', $_POST['path']) !== 0
)
die('wrong path');
$language_file = 'lang/en.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;
if (isset($_POST['path']))
$path = $current_path.str_replace("\0", "", $_POST['path']);
else
$path = $current_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.str_replace("\0", "", $_POST['path']);
$path_thumb = $_POST['path_thumb'];
if (isset($_POST['name']))
{
$name = $_POST['name'];
if (preg_match('/\.{1,2}[\/|\\\]/', $name) !== 0) 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;
default:
die('wrong action');
break;
}
}
?>

View File

@ -0,0 +1,27 @@
<?php
include('config/config.php');
if ($_SESSION['verify'] != 'RESPONSIVEfilemanager') die('forbiden');
include('include/utils.php');
if (preg_match('/\.{1,2}[\/|\\\]/', $_POST['path']) !== 0)
die('wrong path');
if (strpos($_POST['name'], '/') !== false || 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;
?>

BIN
adm/filemanager/img/cut.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

BIN
adm/filemanager/img/date.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 471 B

BIN
adm/filemanager/img/dimension.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 B

BIN
adm/filemanager/img/door.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 B

BIN
adm/filemanager/img/down.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 B

BIN
adm/filemanager/img/download.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 B

BIN
adm/filemanager/img/duplicate.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 B

BIN
adm/filemanager/img/edit_img.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
adm/filemanager/img/ico/ac3.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
adm/filemanager/img/ico/accdb.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
adm/filemanager/img/ico/ade.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
adm/filemanager/img/ico/adp.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
adm/filemanager/img/ico/ai.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
adm/filemanager/img/ico/aiff.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
adm/filemanager/img/ico/avi.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
adm/filemanager/img/ico/bmp.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
adm/filemanager/img/ico/css.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
adm/filemanager/img/ico/csv.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
adm/filemanager/img/ico/dmg.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
adm/filemanager/img/ico/doc.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
adm/filemanager/img/ico/docx.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
adm/filemanager/img/ico/fla.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
adm/filemanager/img/ico/flv.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 979 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 795 B

BIN
adm/filemanager/img/ico/gif.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
adm/filemanager/img/ico/gz.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
adm/filemanager/img/ico/html.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
adm/filemanager/img/ico/iso.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
adm/filemanager/img/ico/jpeg.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
adm/filemanager/img/ico/jpg.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
adm/filemanager/img/ico/log.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
adm/filemanager/img/ico/m4a.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
adm/filemanager/img/ico/mdb.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
adm/filemanager/img/ico/mid.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
adm/filemanager/img/ico/mov.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
adm/filemanager/img/ico/mp3.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
adm/filemanager/img/ico/mp4.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
adm/filemanager/img/ico/mpeg.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
adm/filemanager/img/ico/mpg.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
adm/filemanager/img/ico/odb.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
adm/filemanager/img/ico/odf.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
adm/filemanager/img/ico/odg.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
adm/filemanager/img/ico/odp.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
adm/filemanager/img/ico/ods.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
adm/filemanager/img/ico/odt.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
adm/filemanager/img/ico/ogg.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
adm/filemanager/img/ico/otg.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
adm/filemanager/img/ico/otp.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
adm/filemanager/img/ico/ots.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
adm/filemanager/img/ico/ott.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
adm/filemanager/img/ico/pdf.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
adm/filemanager/img/ico/png.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
adm/filemanager/img/ico/ppt.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
adm/filemanager/img/ico/pptx.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
adm/filemanager/img/ico/psd.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
adm/filemanager/img/ico/rar.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
adm/filemanager/img/ico/rtf.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
adm/filemanager/img/ico/sql.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
adm/filemanager/img/ico/svg.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
adm/filemanager/img/ico/tar.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
adm/filemanager/img/ico/tiff.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
adm/filemanager/img/ico/txt.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

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