Browse Source

New version with php-piratebox insteaf of DropCenter

Julien VAUBOURG 10 years ago
parent
commit
c23c811366
100 changed files with 135 additions and 10016 deletions
  1. 2 1
      README.md
  2. 34 23
      conf/nginx_captive-piratebox.conf
  3. 38 0
      conf/piratebox_config.php.tpl
  4. 27 0
      manifest.json
  5. BIN
      screenshot.png
  6. 34 14
      scripts/install
  7. 0 132
      sources.patch
  8. 0 49
      sources/README.md
  9. BIN
      sources/favicon.ico
  10. 0 23
      sources/footer.php
  11. 0 75
      sources/header.php
  12. 0 10
      sources/index.php
  13. 0 35
      sources/install.php
  14. 0 102
      sources/lang/LangGenerator.php
  15. 0 96
      sources/lang/en - English
  16. 0 95
      sources/lang/fr - Francais
  17. 0 563
      sources/php/action.php
  18. 0 47
      sources/php/config.php
  19. 0 818
      sources/php/function.php
  20. 0 1043
      sources/php/rain.tpl.class.php
  21. 0 5872
      sources/php/zip.class.php
  22. 0 945
      sources/tpl/UnderBlack/css/styles.css
  23. 0 49
      sources/tpl/UnderBlack/footer.html
  24. 0 24
      sources/tpl/UnderBlack/header.html
  25. BIN
      sources/tpl/UnderBlack/img/background_tile_2.jpg
  26. BIN
      sources/tpl/UnderBlack/img/background_tile_3.jpg
  27. BIN
      sources/tpl/UnderBlack/img/defaultAvatar.png
  28. BIN
      sources/tpl/UnderBlack/img/discussIcon.png
  29. BIN
      sources/tpl/UnderBlack/img/done.png
  30. BIN
      sources/tpl/UnderBlack/img/eventIcon.png
  31. BIN
      sources/tpl/UnderBlack/img/extension/archive.png
  32. BIN
      sources/tpl/UnderBlack/img/extension/audio.png
  33. BIN
      sources/tpl/UnderBlack/img/extension/authors.png
  34. BIN
      sources/tpl/UnderBlack/img/extension/bin.png
  35. BIN
      sources/tpl/UnderBlack/img/extension/blank.png
  36. BIN
      sources/tpl/UnderBlack/img/extension/bmp.png
  37. BIN
      sources/tpl/UnderBlack/img/extension/c.png
  38. BIN
      sources/tpl/UnderBlack/img/extension/calc.png
  39. BIN
      sources/tpl/UnderBlack/img/extension/cd.png
  40. BIN
      sources/tpl/UnderBlack/img/extension/copying.png
  41. BIN
      sources/tpl/UnderBlack/img/extension/cpp.png
  42. BIN
      sources/tpl/UnderBlack/img/extension/css.png
  43. BIN
      sources/tpl/UnderBlack/img/extension/deb.png
  44. BIN
      sources/tpl/UnderBlack/img/extension/default.png
  45. BIN
      sources/tpl/UnderBlack/img/extension/doc.png
  46. BIN
      sources/tpl/UnderBlack/img/extension/draw.png
  47. BIN
      sources/tpl/UnderBlack/img/extension/eps.png
  48. BIN
      sources/tpl/UnderBlack/img/extension/exe.png
  49. BIN
      sources/tpl/UnderBlack/img/extension/folder-home.png
  50. BIN
      sources/tpl/UnderBlack/img/extension/folder-open.png
  51. BIN
      sources/tpl/UnderBlack/img/extension/folder-page.png
  52. BIN
      sources/tpl/UnderBlack/img/extension/folder-parent.png
  53. BIN
      sources/tpl/UnderBlack/img/extension/gif.png
  54. BIN
      sources/tpl/UnderBlack/img/extension/gzip.png
  55. BIN
      sources/tpl/UnderBlack/img/extension/h.png
  56. BIN
      sources/tpl/UnderBlack/img/extension/hpp.png
  57. BIN
      sources/tpl/UnderBlack/img/extension/html.png
  58. BIN
      sources/tpl/UnderBlack/img/extension/ico.png
  59. BIN
      sources/tpl/UnderBlack/img/extension/image.png
  60. BIN
      sources/tpl/UnderBlack/img/extension/install.png
  61. BIN
      sources/tpl/UnderBlack/img/extension/java.png
  62. BIN
      sources/tpl/UnderBlack/img/extension/jpg.png
  63. BIN
      sources/tpl/UnderBlack/img/extension/js.png
  64. BIN
      sources/tpl/UnderBlack/img/extension/log.png
  65. BIN
      sources/tpl/UnderBlack/img/extension/makefile.png
  66. BIN
      sources/tpl/UnderBlack/img/extension/package.png
  67. BIN
      sources/tpl/UnderBlack/img/extension/pdf.png
  68. BIN
      sources/tpl/UnderBlack/img/extension/php.png
  69. BIN
      sources/tpl/UnderBlack/img/extension/playlist.png
  70. BIN
      sources/tpl/UnderBlack/img/extension/png.png
  71. BIN
      sources/tpl/UnderBlack/img/extension/pres.png
  72. BIN
      sources/tpl/UnderBlack/img/extension/psd.png
  73. BIN
      sources/tpl/UnderBlack/img/extension/py.png
  74. BIN
      sources/tpl/UnderBlack/img/extension/rar.png
  75. BIN
      sources/tpl/UnderBlack/img/extension/rb.png
  76. BIN
      sources/tpl/UnderBlack/img/extension/readme.png
  77. BIN
      sources/tpl/UnderBlack/img/extension/rpm.png
  78. BIN
      sources/tpl/UnderBlack/img/extension/rss.png
  79. BIN
      sources/tpl/UnderBlack/img/extension/rtf.png
  80. BIN
      sources/tpl/UnderBlack/img/extension/script.png
  81. BIN
      sources/tpl/UnderBlack/img/extension/source.png
  82. BIN
      sources/tpl/UnderBlack/img/extension/sql.png
  83. BIN
      sources/tpl/UnderBlack/img/extension/tar.png
  84. BIN
      sources/tpl/UnderBlack/img/extension/tex.png
  85. BIN
      sources/tpl/UnderBlack/img/extension/tiff.png
  86. BIN
      sources/tpl/UnderBlack/img/extension/txt.png
  87. BIN
      sources/tpl/UnderBlack/img/extension/unknown.png
  88. BIN
      sources/tpl/UnderBlack/img/extension/vcal.png
  89. BIN
      sources/tpl/UnderBlack/img/extension/video.png
  90. BIN
      sources/tpl/UnderBlack/img/extension/xml.png
  91. BIN
      sources/tpl/UnderBlack/img/extension/zip.png
  92. BIN
      sources/tpl/UnderBlack/img/giant-logo.png
  93. BIN
      sources/tpl/UnderBlack/img/homeIcon.png
  94. BIN
      sources/tpl/UnderBlack/img/icons.png
  95. BIN
      sources/tpl/UnderBlack/img/logo.png
  96. BIN
      sources/tpl/UnderBlack/img/menuIcons.png
  97. BIN
      sources/tpl/UnderBlack/img/preloader.gif
  98. BIN
      sources/tpl/UnderBlack/img/toolTips.gif
  99. BIN
      sources/tpl/UnderBlack/img/uploadButton.png
  100. 0 0
      sources/tpl/UnderBlack/index.html

+ 2 - 1
README.md

@@ -3,7 +3,7 @@
 
 PirateBox app for [YunoHost](http://yunohost.org/).
 
-Based on [DropCenter](http://projet.idleman.fr/dropcenter/) (the project was patched in order to remove the authentication mechanism and some other useless features).
+Based on [php-piratebox](https://github.com/jvaubourg/php-piratebox).
 
 ## Features
 
@@ -13,6 +13,7 @@ Based on [DropCenter](http://projet.idleman.fr/dropcenter/) (the project was pat
 * No authentication required for uploading, downloading or deleting (lawless zone)
 * Of course, works without internet connection
 * [Screenshot](https://raw.githubusercontent.com/jvaubourg/piratebox_ynh/master/screenshot.png)
+* [Web interface features](https://github.com/jvaubourg/php-piratebox) and more screenshots
 
 The YunoHost administration is only available through the wired connection.
 

+ 34 - 23
conf/nginx_captive-piratebox.conf

@@ -19,35 +19,46 @@ server {
   listen 4280 default_server;
   listen [::]:4280 default_server;
 
+  root <TPL:NGINX_REALPATH>;
+  client_max_body_size 10G;
+
   if ($host != '<TPL:DOMAIN>') {
     set $args '';
     rewrite ^ http://<TPL:DOMAIN>;
   }
 
+  location /public/uploads/ {
+    add_header Content-Type "application/octet-stream";
+    add_header Content-Disposition "attachment; filename=$1";
+  }
+
+  location /public/chat/ {
+    deny all;
+    return 403;
+  }
+
+  location ~ \.php {
+    include fastcgi_params;
+
+    client_body_temp_path /var/spool/piratebox/;
+    fastcgi_pass_request_body off;
+    client_body_in_file_only clean;
+    fastcgi_param REQUEST_BODY_FILE $request_body_file;
+
+    fastcgi_read_timeout 600;
+    fastcgi_send_timeout 600;
+    fastcgi_index index.php;
+    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+    fastcgi_pass unix:/var/run/php5-fpm-<TPL:PHP_NAME>.sock;
+  }
+
+  location @piratebox {
+    rewrite ^/(.*)$ /?/get&dir=$1;
+  }
+
   location / {
-    alias <TPL:NGINX_REALPATH>;
-  
-    index index.php;
-    client_max_body_size 10G;
-    try_files $uri $uri/ index.php;
-  
-    location ~ [^/]\.php(/|$) {
-      include fastcgi_params;
-
-      client_body_temp_path /var/spool/piratebox/;
-      fastcgi_pass_request_body off;
-      client_body_in_file_only clean;
-      fastcgi_param REQUEST_BODY_FILE $request_body_file;
-
-      fastcgi_read_timeout 600;
-      fastcgi_send_timeout 600;
-      fastcgi_index index.php;
-      fastcgi_pass unix:/var/run/php5-fpm-<TPL:PHP_NAME>.sock;
-
-      fastcgi_split_path_info ^(.+?\.php)(/.*)$;
-      fastcgi_param REMOTE_USER $remote_user;
-      fastcgi_param PATH_INFO $fastcgi_path_info;
-    }
+    index index.html index.php;
+    try_files $uri $uri/ @piratebox;
   }
 
   access_log /var/log/nginx/piratebox-access.log;

+ 38 - 0
conf/piratebox_config.php.tpl

@@ -0,0 +1,38 @@
+<?php
+
+/* PirateBox app for YunoHost
+ * Copyright (C) 2015 Julien Vaubourg <julien@vaubourg.com>
+ * Contribute at https://github.com/jvaubourg/piratebox_ynh
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+$options = [
+  'app_name'           => "PirateBox",
+
+  'base_path'          => "<TPL:NGINX_REALPATH>",
+  'base_uri'           => "/",
+
+  'allow_renaming'     => <TPL:OPT_RENAMING>,
+  'allow_deleting'     => <TPL:OPT_DELETING>,
+  'allow_newfolders'   => true,
+
+  'enable_chat'        => <TPL:OPT_CHAT>,
+  'default_pseudo'     => "anonymous",
+
+  'time_format'        => "d/m/y H:i",
+  'fancyurls'          => true,
+];
+
+?>

+ 27 - 0
manifest.json

@@ -22,6 +22,33 @@
         },
         "example": "pirate.box",
         "default": "pirate.box"
+      },
+      {
+        "name": "opt_deleting",
+        "ask": {
+            "en": "Can users delete files? (yes/no)",
+            "fr": "Les utilisateurs peuvent-ils supprimer des fichiers ? (yes/no)"
+        },
+        "example": "yes",
+        "default": "yes"
+      },
+      {
+        "name": "opt_renaming",
+        "ask": {
+            "en": "Can users rename files? (yes/no)",
+            "fr": "Les utilisateurs peuvent-ils renommer des fichiers ? (yes/no)"
+        },
+        "example": "yes",
+        "default": "yes"
+      },
+      {
+        "name": "opt_chat",
+        "ask": {
+            "en": "Enable the chat? (yes/no)",
+            "fr": "Activer le chat ? (yes/no)"
+        },
+        "example": "yes",
+        "default": "yes"
       }
     ]
   }

BIN
screenshot.png


+ 34 - 14
scripts/install

@@ -20,6 +20,27 @@
 # Retrieve arguments
 domain=${1}
 url_path=/piratebox
+opt_deleting=${2}
+opt_renaming=${3}
+opt_chat=${4}
+
+if [ "${opt_deleting}" == yes ]; then
+  opt_deleting=true
+else
+  opt_deleting=false
+fi
+
+if [ "${opt_renaming}" == yes ]; then
+  opt_renaming=true
+else
+  opt_renaming=false
+fi
+
+if [ "${opt_chat}" == yes ]; then
+  opt_chat=true
+else
+  opt_chat=false
+fi
 
 # Check domain/path availability
 sudo yunohost app checkurl ${domain}${url_path} -a piratebox
@@ -28,7 +49,7 @@ if [ ! $? -eq 0 ]; then
 fi
 
 # Install packages
-packages='php5-fpm iptables libnet-dns-perl'
+packages='php5-fpm iptables libnet-dns-perl git'
 export DEBIAN_FRONTEND=noninteractive
 
 sudo apt-get --assume-yes --force-yes install ${packages}
@@ -48,24 +69,23 @@ sudo install -b -o root -g root -m 0644 ../conf/nginx_piratebox.conf "/etc/nginx
 sudo install -b -o root -g root -m 0644 ../conf/phpfpm_piratebox.conf /etc/php5/fpm/pool.d/piratebox.conf
 
 # Copy web sources
-sudo mkdir -pm 0755 /var/www/piratebox/
-sudo cp -a ../sources/* /var/www/piratebox/
-sudo mkdir /var/www/piratebox/tpl/tmp/
+sudo git clone https://github.com/jvaubourg/php-piratebox.git /var/www/piratebox/
 
 sudo chown -R root: /var/www/piratebox/
-sudo chmod -R 0644 /var/www/piratebox/*
+sudo chmod -R 0644 /var/www/piratebox/
 sudo find /var/www/piratebox/ -type d -exec chmod +x {} \;
 
-# Fix permissions
-sudo chown -R www-data: /var/www/piratebox/tpl/tmp/
-sudo chown -R www-data: /var/www/piratebox/uploads/
-
-# Create fixed DC user
-sudo tee /var/www/piratebox/uploads/.dc/.user.dc.php > /dev/null << EOF
-<?php /*{"login":"pirate","avatar":"","password":"","rank":"admin","mail":"","notifMail":"off","lang":"en - English"}*/ ?>
-EOF
+sudo install -b -o root -g root -m 0644 ../conf/piratebox_config.php.tpl /var/www/piratebox/config.php
 
-sudo touch /var/www/piratebox/uploads/avatars/pirate.jpg
+# Fix permissions
+sudo chown -R www-data: /var/www/piratebox/public/uploads/
+sudo chown -R www-data: /var/www/piratebox/public/chat/
+
+# Fix php-piratebox configuration
+sudo sed 's|<TPL:NGINX_REALPATH>|/var/www/piratebox/|g' -i /var/www/piratebox/config.php
+sudo sed "s|<TPL:OPT_RENAMING>|$opt_renaming|g" -i /var/www/piratebox/config.php
+sudo sed "s|<TPL:OPT_DELETING>|$opt_deleting|g" -i /var/www/piratebox/config.php
+sudo sed "s|<TPL:OPT_CHAT>|$opt_chat|g" -i /var/www/piratebox/config.php
 
 # Fix confs
 ## nginx

File diff suppressed because it is too large
+ 0 - 132
sources.patch


+ 0 - 49
sources/README.md

@@ -1,49 +0,0 @@
-
-A PROPOS
-====
-
-DropCenter est un programme sous licence CC BY NC SA développé en PHP/Javascript (garanti sans flash) qui ne nécessite aucune base de données et qui vous permet d’envoyer un ou plusieurs fichiers en ligne (upload) d’un simple glisser-déposer du bureau vers votre navigateur.
-
-Le script utilise les technologies les plus récentes et, en conséquence, ne fonctionne à l’heure actuelle que sur les navigateurs sérieux et récents (Firefox, Chrome, Opera, Safari…), vous pouvez donc l’utiliser quel que soit votre système d’exploitation (Linux, Windows ou Mac).
-
-
-Programme : Drop Center
-Version : V2
-Distribution : BETA
-Auteurs :   
--Valentin CARRUESCO aka Idleman (contact@dropcenter.fr	-	http://blog.idleman.fr)
--Paul R aka Fox http://fox-photography.net63.net/me-contacter
-
-Plugins : 
--Jquery (www.jquery.com)
--Phpjs (www.phpjs.org)
--PclZip (www.phpconcept.net/pclzip/)
--RainTPL (www.raintpl.com)
-		  
-Icones : Faenza Icons par tiheum (http://tiheum.deviantart.com/art/Faenza-Icons-173323228)
-
-
-INSTALLATION
-====
-
-- Décompressez l'archive de dropCenter
-- Envoyez le tout sur votre ftp
-- Autorisez l'écriture sur le répertoire /uploads (chmod 775)
-- Entrez l'adresse du dropCenter dans votre naviguateur, à la première connexion, le login et le mot de passe souhaité pour l'administrateur seront demandés.
-- Le script est installé !!
-- Vous pouvez télécharger le programme bureautique DropNews en addition du dropcenter pour être informé par notification sur votre bureau de tous les nouveaux évènements du dropcenter. (voir le site officiel : http://projet.idleman.fr/dropcenter)
-
-
-FAQ
-====
-
-Une question ? Un problème? 
-
-Afin d'obtenir une FAQ à jour, merci de vous référer à la foire aux question disponible sur le site officiel à l'adresse :
-http://projet.idleman.fr/dropcenter/?page=FAQ
-
-
-LICENCE
-====
-
-Ce programme est sous licence CC BY NC SA

BIN
sources/favicon.ico


+ 0 - 23
sources/footer.php

@@ -1,23 +0,0 @@
-<?php
-/*
- @nom: footer
- @description: Page commune a toute l'application qui affiche le pied du site
- */
-require_once('header.php');
-
-
-$infoFiles = countFiles();
-
-$totalSize = 0;
-
-foreach($infoFiles as $file){
-	$totalSize += $file['size'];
-}
-
-$tpl->assign('fileNumber', count($infoFiles));
-$tpl->assign('totalSize', $totalSize );
-
-//C'est ici qu'on assigne la vue préalablement définie dans les pages incluses par la variable $view
-$html = $tpl->draw($view);
-
-?>

+ 0 - 75
sources/header.php

@@ -1,75 +0,0 @@
-<?php
-session_start();
-header( 'content-type: text/html; charset=utf-8' );
-require_once('php/rain.tpl.class.php');
-require_once('php/config.php');
-require_once('php/function.php');
-
-mb_internal_encoding("UTF-8" );
-mb_http_output("UTF-8" );
-mb_http_input("UTF-8" );
- 
-iconv_set_encoding("internal_encoding", "UTF-8" );
-iconv_set_encoding("output_encoding", "UTF-8" );
-iconv_set_encoding("input_encoding", "UTF-8" );
- 
-header('Content-Type: text/html; charset=utf-8');
-
-//Instanciation du template
-$tpl = new RainTPL();
-
-//Definition des dossiers de template
-raintpl::configure("base_url", null );
-raintpl::configure("tpl_dir", './tpl/'.DEFAULT_THEME.'/' );
-raintpl::configure("cache_dir", "./tpl/tmp/" );
-
-$user = null;
-
-$tpl->assign('DC_TITLE',DC_TITLE);//Titre du dropCenter
-$tpl->assign('DC_DESCRIPTION',DC_DESCRIPTION);//description du dropCenter
-$tpl->assign('DC_LOGO',DC_LOGO);//logo central du dropCenter (Si rien n'est mis, le logo par défaut apparaît)
-$tpl->assign('DC_LICENCE',DC_LICENCE);//License de votre dropCenter
-$tpl->assign('UPLOAD_FOLDER',UPLOAD_FOLDER);//chemin vers le dossier d'upload (ne pas oublier de mettre les droits d'écriture sur ce dossier)
-$tpl->assign('NAME_LIMIT',NAME_LIMIT);//Nombre maximal de caractères affichés pour les fichiers
-$tpl->assign('NAME_LIMIT_BORDER',NAME_LIMIT_BORDER);//Les caractères qui s'afficheront pour signifier qu'un nom est raccourci
-$tpl->assign('MAX_SIZE',MAX_SIZE);//Taille maximale authorisée par fichier en Mo (Pensez a configurer post_max_size et upload_max_size dans le fichier php.ini de votre serveur si vous voulez uploader de gros fichiers).
-$tpl->assign('FORBIDEN_FORMAT',FORBIDEN_FORMAT);//Les extensions interdites à l'exécution séparées par des virgules (les fichiers seront bien envoyés mais un .txt sera rajouté à l'extension afin d'empêcher les utilisateurs d'exécuter leurs fichiers sur le serveur
-$tpl->assign('AVATAR_DEFAULT',AVATAR_DEFAULT); //chemin de l'avatar par défaut
-$tpl->assign('AVATARFOLDER',AVATARFOLDER); //dossier contenant les avatars
-$tpl->assign('FORTUNE',FORTUNE);//Affiche une citation aléatoire Chuck Norris Facts (mettre à false pour ne pas afficher)
-$tpl->assign('RSS_MAIL',RSS_MAIL);
-$tpl->assign('READ_FOR_ANONYMOUS',READ_FOR_ANONYMOUS);// Définit si les visiteurs non authentifiés peuvent lire le contenu du dropCenter (true = lecture possible, false = lecture interdite)
-$tpl->assign('DC_LANG',DC_LANG);//Définit la langue par défaut
-$tpl->assign('DIR_LANG',DIR_LANG);//Dossier des fichiers de langue
-$tpl->assign('MAIL',MAIL);//Autorise les notifications par e-mail
-$tpl->assign('DISPLAY_DOTFILES',DISPLAY_DOTFILES);//Affiche ou non les dossiers/fichiers commençant par un point
-$tpl->assign('DISPLAY_UPDATE',DISPLAY_UPDATE);//Activer la vérification des mises-à-jour
-$tpl->assign('DISPLAY_AVATAR_FOLDER',DISPLAY_AVATAR_FOLDER);//Afficher le dossier des avatars
-
-$tpl->assign('DCFOLDER',DCFOLDER); //fichier contenant les données d'évènements
-$tpl->assign('LANGFOLDER',LANGFOLDER); //dossier contenant les fichiers données de traductions
-$tpl->assign('EVENTFILE',EVENTFILE); //fichier contenant les données d'évènements
-$tpl->assign('USERFILE',USERFILE); //fichier contenant les données utilisateurs
-$tpl->assign('CONFIGFILE',CONFIGFILE); //fichier contenant les données utilisateurs
-$tpl->assign('TAGSFILE',TAGSFILE); //fichier contenant les tags des fichiers envoyés
-$tpl->assign('CHUCKFILE',CHUCKFILE);//Nom du fichier fortune contenant les citations de Chuck Norris
-
-$tpl->assign('SECURE_DELIMITER_BEGIN',SECURE_DELIMITER_BEGIN); //
-$tpl->assign('SECURE_DELIMITER_END',SECURE_DELIMITER_END); //
-$tpl->assign('DC_VERSION',DC_VERSION); //Version du programme
-$tpl->assign('DC_NAME',DC_NAME);//Nom du programme
-$tpl->assign('DC_VERSION_NUMBER',DC_VERSION_NUMBER);//Nom du programme
-$tpl->assign('DC_WEBSITE',DC_WEBSITE);//Site du programme
-
-if(file_exists('./'.DCFOLDER.USERFILE)){
-		$user = parseUsers('./')[0];
-		$_SESSION['user'] = serialize($user);
-		$_SESSION['tpmToken'] = sha1(time().rand(0,100));
-		$tpl->assign('user',$user);
-		$_ = getLang();
-}else{
-	if(strpos($_SERVER['PHP_SELF'], 'install.php')===false){
-	header('location: install.php');
-	}
-}
-?>

+ 0 - 10
sources/index.php

@@ -1,10 +0,0 @@
-<?php
-//é
-require_once('header.php') ;
-	$tpl->assign('userList',parseUsers('./'));
-	$tpl->assign('dir',scandir(DIR_LANG));
-	$tpl->assign('tpmToken',(isset($_SESSION['tpmToken'])?$_SESSION['tpmToken']:'')); 
-	$tpl->assign('error',(isset($_GET['error'])?addslashes(htmlentities($_GET['error'])):null));
-	$view = 'index';
-require_once('footer.php');
-?>

+ 0 - 35
sources/install.php

@@ -1,35 +0,0 @@
-<?php 
-//é
-require_once('header.php') ;
- 
-
-		$tests = array();
-		if (!@function_exists('file_get_contents')){
-		 $tests['error'][] = tt('La fonction requise "file_get_contents" est inaccessible sur votre serveur, verifiez votre version de PHP.');
-		}else{
-		 $tests['succes'][] = tt('La fonction requise "file_get_contents" est accessible sur votre serveur');	
-		}
-		if (!@function_exists('file_put_contents')){
-		 $tests['error'][] = tt('La fonction requise "file_put_contents" est inaccessible sur votre serveur, verifiez votre version de PHP.');
-		}else{
-		 $tests['succes'][] = tt('La fonction requise "file_put_contents" est accessible sur votre serveur');	
-		}
-		if (@version_compare(PHP_VERSION, '4.3.0') <= 0){
-		 $tests['warning'][] = tt('Votre version de PHP (%) est trop ancienne, il est possible que certaines fonctionalitees du script comportent des disfonctionnements.',array(PHP_VERSION));
-		}else{
-		 $tests['succes'][] = tt('Votre version de PHP (%) est compatible avec le script',array(PHP_VERSION));	
-		}
-		if(is_writable('../'.UPLOAD_FOLDER)){
-			$tests['error'][] = tt('Le dossier de stockage des donnees "%" est inaccessible en ecriture, verifiez que vous avez bien regle les permissions via un chmod777 sur le dossier.',array(UPLOAD_FOLDER));
-		}else{
-		 $tests['succes'][] = tt('Le dossier de stockage des donnees "%" est accessible en ecriture',array(UPLOAD_FOLDER));	
-		}
-
-	$tpl->assign('tests',$tests);
-	$tpl->assign('testsCount',count($tests));
-	$tpl->assign('dir',scandir(DIR_LANG));
-	$tpl->assign('presumedRoot',str_replace(basename(__FILE__),'','http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']));
-	$view = 'install';
-
-require_once('footer.php') 
-?>

+ 0 - 102
sources/lang/LangGenerator.php

@@ -1,102 +0,0 @@
-<style>
-table tr td{
-	padding:5px;
-	border:1px solid #cecece;
-	font-family:Verdana;
-	font-size:11px;
-}
-</style>
-
-
-
-<?php 
-
-$_ = array_map('htmlentities',array_merge($_POST,$_GET));
-$currentLang = (isset($_['edit'])?$_['edit']:false); ?>
-
-<form action="#" method="POST">
-<table cellspadding="0" cellspacing="0" style="width:100%;">
-	<tr style="background-color:#000000;color:#ffffff;" >
-		<td colspan="2">Langue: <input type="text" value="<?php echo $currentLang; ?>" name="lang"> , Charger une langue existante : <select name="langSelection" onchange="if(this.value!='')window.location='LangGenerator.php?edit='+this.value;">
-	<option value=""></option>
-<?php 
-
-
-
-$langFiles = scandir(dirname(__FILE__));
-foreach($langFiles as $file){
-	if(is_file($file) && strpos($file, '.')===false){
-		?><option value="<?php echo $file; ?>"><?php echo $file; ?></option><?php
-	}
-}
-?>
-</select></td>
-
-	</tr>
-
-<?php
-$template = file((!$currentLang?'fr - Francais':$currentLang));
-$refTab = array(); 
-$refNum = 0;
-foreach($template as $line){
-	list($key,$value) = explode('[::->]',$line);
-		$refTab[$refNum] = $key ; 
-	?>
-	<tr <?php echo( $refNum %2!=0?'style="background-color:#dedede;"':'') ?> ><td><?php echo $key; ?></td><td style="width:50%;"><input style="width:100%;" type="text" name="key<?php echo $refNum ?>" <?php
-
-	 if($currentLang!=false){
-	 	echo ' value="'.str_replace('"','&quot;',utf8_encode($value)).'" ';
-	 	} 
-
-	 ?> placeholder="<?php echo str_replace('"','&quot;',utf8_encode($value)); ?>"/></td></tr><?php
-	$refNum++;
-}
-?>
-<tr style="background-color:#000000;color:#ffffff;" ><td colspan ="2" ><input type="submit" name="Generer" value="G&eacute;nerer"></td></tr>
-</table>
-
-</form>
-
-
-<form action="#" method="POST">
-Langue: <input type="text" value="<?php echo $currentLang; ?>" name="lang"> <br><br>
-<textarea name="all">
-<?php
-foreach($template as $line){
-	list($key,$value) = explode('[::->]',$line);
-	echo $value;
-}
-?>
-</textarea>
-<input type="submit" name="Generer2" value="G&eacute;nerer">
-</form>
-
-<?php
-	if(isset($_['Generer'])){
-		foreach($_ as $key=>$value){
-			if(substr($key, 0,3)=="key"){
-				$key = substr($key, 3);
-				$lines[] = $refTab[$key].'[::->]'.$value;
-			}
-		}
-		file_put_contents($_['lang'], implode("\n",$lines));
-	}
-
-
-	if(isset($_['Generer2'])){
-
-		$allLines = explode("\n",$_['all']);
-
-		foreach($allLines as $key=>$value){
-			
-				$lines[] = $refTab[$key].'[::->]'.$value;
-			
-		}
-		
-		file_put_contents($_['lang'], implode("\n",$lines));
-	}
-
-
-?>
-
-

+ 0 - 96
sources/lang/en - English

@@ -1,96 +0,0 @@
-Installation du programme[::->]Install the program
-Aucun administrateur n'est defini, merci de remplir les informations ci dessous.[::->]Admin is undefined, please create an administrator before using program
-Login[::->]Login
-Password[::->]Password
-Avatar[::->]Avatar
-Mail[::->]Mail
-Racine du programme[::->]Program root
-Creer[::->]Create
-Preferences[::->]Preferences
-Profil[::->]Profile
-CopyrightFooter[::->][%%] V[%%] ([%%]) by <a href="[%%]">DropTeam</a> build with jQuery Filedrop plugin. Under licence [%%]. 
-% fichiers disponibles pour un poids total de %[::->]<span class="blue">[%%]</span> file(s) added for a total size of <span class="blue">[%%]</span>
-Flux RSS[::->]RSS Feed
-Abonnez vous au flux rss pour suivre les evenements du DropCenter[::->]Subscribe to RSS Feed in order to follow DropCenter's events
-Droppez le fichier ici pour l'uploader. <br /><i>(Enfin tout depend de votre navigateur)</i>[::->]Drop your file(s) here for upload<br /><i>(well, it depends on your browser)</i>
-Connecte en tant que %[::->]Logged as [%%]
-Deconnexion[::->]Logout
-Nouveau dossier[::->]+ Folder 
-Nouveau dossier (%)[::->]New folder
-Nom du dossier[::->]Folder name
-Comptes[::->]Accounts
-Sauvegarde[::->]Backup
-Parametres[::->]Settings
-Administrateur[::->]Administrator
-Utilisateur[::->]User
-Valider[::->]Submit
-Ajouter[::->]Add
-Langue[::->]Language
-Notification par mail ?[::->]Notification by mail ?
-On[::->]On
-Off[::->]Off
-Liste des utilisateurs[::->]Users
-Ajouter un utilisateur[::->]Add user
-Rang[::->]Rank
-Supprimer[::->]Delete
-Etes-vous sur de vouloir supprimer cet utilisateur?[::->]Do you really want remove this user?
-Vous n'avez pas les droits pour supprimer ce fichier[::->]You don't have rights to remove this file
-Vous ne pouvez rien envoyer car vous n'avez aucun droits d'ajout sur le dropCenter[::->]You couldn't send files because you don't have rights
-Probleme rencontre lors de l'upload[::->]Error occuring while transfert
-Taille maximale : %Mo depassee[::->]Maximal size authorized : [%%]Mo
-Fichier envoye avec succes![::->]File sent with succes
-Erreur, mauvaise methode http [::->]Error, Wrong http method
-Vous n'avez pas les droits pour renommer ce fichier[::->]You don't have rights to rename this file
-Impossible de renommer le fichier, nom incorrect ou fichier inexistant[::->]Error while renaming file : file name is incorrect or file doesn't exist.
-Vous n'avez pas les droits pour ajouter un tag &agrave; ce fichier[::->]You don't have the rights to add a tag to this file
-Impossible de supprimer le fichier, nom incorrect ou fichier inexistant[::->]Error while deleting file : file name is incorrect or file doesn't exist.
-Fichier correctement supprime[::->]File has been correctly removed
-Dossier correctement supprime[::->]Folder has been correctly removed
-aucun fichier[::->]no files
-Impossible de zipper le fichier, nom incorrect ou fichier inexistant :[::->]Error while compressing file : file name is incorrect or file doesn't exist.
-Vous n'avez pas les droits pour zipper ce fichier[::->]You don't have right to compress this file
-a ajoute un fichier[::->]have added a file
-a ajoute un ou plusieurs fichiers[::->]have added one or more files
-Ajout d'un ou plusieurs fichiers par[::->]One or more files added by
-a ajoute % fichier%[::->]have added [%%] file[%%]
-a ajoute le fichier <a target="_blank" href="%">%</a> le %[::->]have added a file <a target="_blank" href="[%%]">[%%]</a> at [%%]
-a ajoute le fichier <a target="_blank" href="%">%</a> le %[::->]have added a file <a target="_blank" href="[%%]">[%%]</a> at [%%]
-a supprime un fichier[::->]have removed a file
-a supprime le fichier % le %[::->]have removed the file [%%] at [%%]
-a supprime un dossier[::->]have removed a folder
-a supprime le dossier % le %[::->]have removed the folder [%%] at [%%]
-a renomme un fichier[::->]have renamed a file
-a renomme un dossier[::->]have renamed a folder
-a renomme le fichier % en <a target="_blank" href="%">%</a> le %[::->]have renamed the file [%%] to <a target="_blank" href="[%%]">[%%]</a>  at [%%]
-a renomme le dossier % en <a target="_blank" href="%">%</a> le %[::->]have renamed the folder [%%] to <a target="_blank" href="[%%]">[%%]</a>  at [%%]
-a ajoute l'utilisateur[::->]have added the user
-a ajoute l'utilisateur % le %[::->]have added the user [%%] at [%%]
-a installe le dropCenter[::->]have installed the DropCenter
-a installe le dropCenter le %[::->]have installed the DropCenter at [%%]
-a supprime l'utilisateur[::->]have deleted the user
-a supprime l'utilisateur % le %[::->]have deleted the user [%%] at [%%]
-a fait un backup des fichiers[::->]have made a backup of all files
-a fait un backup des fichiers disponible sur <a target="_blank" href="%">%</a> le %[::->]have made a backup of all files on <a target="_blank" href="[%%]">[%%]</a> at [%%]
-Le fichier % a ete supprime par % le %[::->]The file [%%] was deleted by [%%] at [%%]
-Le fichier % a ete ajoute par % le %[::->]The file [%%] was added by [%%] at [%%]
-Le fichier % a ete renomme en % par % le %[::->]The file [%%] was renamed to [%%] by [%%] at [%%]
-Le dossier % a ete renomme en % par % le %[::->]The folder [%%] was renamed to [%%] by [%%] at [%%]
-Ceci est un message automatique du[::->]This is an automatic message of
-ne pas repondre[::->]don't reply
-Fichier correctement deplace[::->]File correctly moved
-Impossible de deplacer le fichier[::->]Unable to move file
-Impossible de deplacer le fichier, fichier incorrect ou inexistant[::->]Unable to move file,wrong path or missing file
-Impossible de deplacer le fichier, dossier incorrect ou inexistant[::->]Unable to move file, wrong path or missing folder
-Vous n\'avez pas les droits pour deplacer ce fichier[::->]You doesn't have right to move file
-Impossible de renommer l element % en %, l element % existe deja[::->]Unable to rename element [%%] to [%%], element [%%] already exist
-La fonction requise "file_get_contents" est inaccessible sur votre serveur, verifiez votre version de PHP.[::->]The required function "file_get_contents" is unavailable on you're host, please check you're PHP version.
-La fonction requise "file_get_contents" est accessible sur votre serveur[::->]The required function "file_get_contents" is available on you're host
-La fonction requise "file_put_contents" est inaccessible sur votre serveur, verifiez votre version de PHP.[::->]The required function "file_put_contents" is unavailable on you're host, please check you're PHP version.
-La fonction requise "file_put_contents" est accessible sur votre serveur[::->]The required function "file_put_contents" is available on you're host
-Votre version de PHP (%) est trop ancienne, il est possible que certaines fonctionalitees du script comportent des disfonctionnements.[::->]You're PHP version ([%%]) is too old, some fonctionnalities might be disable.
-Votre version de PHP (%) est compatible avec le script[::->]You're PHP version ([%%]) is compatible with the script
-Le dossier de stockage des donnees "%" est inaccessible en ecriture, verifiez que vous avez bien regle les permissions via un chmod777 sur le dossier.[::->]The data folder "[%%]" is unwrittable, please check the chmod permissions are set on 777.
-Le dossier de stockage des donnees "%" est accessible en ecriture[::->]The data folder "[%%]" is writtable
-Champs obligatoires non remplis[::->]Main fields are empty
- - Taille maximale par fichier : %.[::->] - Max size per file : <span class="blue">[%%]</span>.
-Erreur, un nom de dossier ne peux contenir les caracteres suivants[::->]Error, file/folder's name can't contain follow characters : /,\,:,?,",<,>

+ 0 - 95
sources/lang/fr - Francais

@@ -1,95 +0,0 @@
-Installation du programme[::->]Installation du programme
-Aucun administrateur n'est defini, merci de remplir les informations ci dessous.[::->]Aucun administrateur n'est défini, merci de remplir les informations ci-dessous.
-Login[::->]Identifiant
-Password[::->]Mot de passe
-Avatar[::->]Avatar
-Mail[::->]Email
-Racine du programme[::->]Racine du programme
-Creer[::->]Cr&eacute;er
-Preferences[::->]Pr&eacute;f&eacute;rences
-Profil[::->]Profil
-CopyrightFooter[::->][%%] V[%%] ([%%]) par <a href="[%%]">DropTeam</a>, licence [%%] - 
-% fichiers disponibles pour un poids total de %[::->]<span class="blue">[%%]</span> fichier(s), poids total : <span class="blue">[%%]</span>
-Flux RSS[::->]Flux RSS
-Abonnez vous au flux rss pour suivre les evenements du DropCenter[::->]Abonnez-vous au flux rss pour suivre les &eacute;v&egrave;nements du DropCenter
-Droppez le fichier ici pour l'uploader. <br /><i>(Enfin tout depend de votre navigateur)</i>[::->]Droppez le fichier ici pour l'uploader. <br /><i>(Enfin tout d&eacute;pend de votre navigateur)</i>
-Deconnexion[::->]D&eacute;connexion
-Nouveau dossier[::->]+ Dossier 
-Nouveau dossier (%)[::->]Nouveau dossier
-Nom du dossier[::->]Nom du dossier
-Comptes[::->]Comptes
-Sauvegarde[::->]Sauvegarde
-Parametres[::->]Param&egrave;tres
-Administrateur[::->]Administrateur
-Utilisateur[::->]Utilisateur
-Valider[::->]Valider
-Ajouter[::->]Ajouter
-Langue[::->]Langue
-Notification par mail ?[::->]Notifications par email ? 
-On[::->]Activ&eacute;es
-Off[::->]D&eacute;sactiv&eacute;es
-Liste des utilisateurs[::->]Liste des utilisateurs
-Ajouter un utilisateur[::->]Ajouter un utilisateur
-Rang[::->]Rang
-Supprimer[::->]Supprimer
-Etes-vous sur de vouloir supprimer cet utilisateur?[::->]Etes-vous s&ucirc;r de vouloir supprimer cet utilisateur?
-Vous n'avez pas les droits pour supprimer ce fichier[::->]Vous n'avez pas les droits pour supprimer ce fichier
-Vous ne pouvez rien envoyer car vous n'avez aucun droits d'ajout sur le dropCenter[::->]Vous ne pouvez rien envoyer car vous n'avez aucun droit d'ajout sur le dropCenter
-Probleme rencontre lors de l'upload[::->]Probl&egrave;me rencontr&eacute; lors de l'upload
-Taille maximale : %Mo depassee[::->]Taille maximale : [%%]Mo d&eacute;pass&eacute;e
-Fichier envoye avec succes![::->]Fichier envoy&eacute; avec succ&egrave;s!
-Erreur, mauvaise methode http [::->]Erreur, mauvaise m&eacute;thode http 
-Vous n'avez pas les droits pour renommer ce fichier[::->]Vous n'avez pas les droits pour renommer ce fichier
-Impossible de renommer le fichier, nom incorrect ou fichier inexistant[::->]Impossible de renommer le fichier, nom incorrect ou fichier inexistant
-Vous n'avez pas les droits pour ajouter un tag a ce fichier[::->]Vous n'avez pas les droits pour ajouter un tag &agrave; ce fichier
-Impossible de supprimer le fichier, nom incorrect ou fichier inexistant[::->]Impossible de supprimer le fichier, nom incorrect ou fichier inexistant
-Fichier correctement supprime[::->]Fichier correctement supprim&eacute;
-Dossier correctement supprime[::->]Dossier correctement supprim&eacute;
-aucun fichier[::->]aucun fichier
-Impossible de zipper le fichier, nom incorrect ou fichier inexistant :[::->]Impossible de zipper le fichier, nom incorrect ou fichier inexistant :
-Vous n'avez pas les droits pour zipper ce fichier[::->]Vous n'avez pas les droits pour zipper ce fichier
-a ajoute un fichier[::->]a ajout&eacute; un fichier
-a ajoute un ou plusieurs fichiers[::->]a ajout&eacute; un ou plusieurs fichiers
-Ajout d'un ou plusieurs fichiers par[::->]Ajout d'un ou plusieurs fichiers par
-a ajoute % fichier%[::->]a ajout&eacute; [%%] fichier[%%]
-a ajoute le fichier <a target="_blank" href="%">%</a> le %[::->]a ajout&eacute; le fichier <a target="_blank" href="[%%]">[%%]</a> le [%%]
-a ajoute le fichier <a target="_blank" href="%">%</a> le %[::->]a ajout&eacute; le fichier <a target="_blank" href="[%%]">[%%]</a> le [%%]
-a supprime un fichier[::->]a supprim&eacute; un fichier
-a supprime le fichier % le %[::->]a supprim&eacute; le fichier [%%] le [%%]
-a supprime un dossier[::->]a supprim&eacute; un dossier
-a supprime le dossier % le %[::->]a supprim&eacute; le dossier [%%] le [%%]
-a renomme un fichier[::->]a renomm&eacute; un fichier
-a renomme un dossier[::->]a renomm&eacute; un dossier
-a renomme le fichier % en <a target="_blank" href="%">%</a> le %[::->]a renomm&eacute; le fichier [%%] en <a target="_blank" href="[%%]">[%%]</a> le [%%]
-a renomme le dossier % en <a target="_blank" href="%">%</a> le %[::->]a renomm&eacute; le dossier [%%] en <a target="_blank" href="[%%]">[%%]</a> le [%%]
-a ajoute l'utilisateur[::->]a ajout&eacute; l'utilisateur
-a ajoute l'utilisateur % le %[::->]a ajout&eacute; l'utilisateur [%%] le [%%]
-a installe le dropCenter[::->]a install&eacute; le dropCenter
-a installe le dropCenter le %[::->]a install&eacute; le dropCenter le  [%%]
-a supprime l'utilisateur[::->]a supprim&eacute; l'utilisateur
-a supprime l'utilisateur % le %[::->]a supprim&eacute; l'utilisateur [%%] le [%%]
-a fait un backup des fichiers[::->]a fait un backup des fichiers
-a fait un backup des fichiers disponible sur <a target="_blank" href="%">%</a> le %[::->]a fait un backup des fichiers disponible sur <a target="_blank" href="[%%]">[%%]</a> le [%%]
-Le fichier % a ete supprime par % le %[::->]Le fichier [%%] a &eacute;t&eacute; supprim&eacute; par [%%] le [%%]
-Le fichier % a ete ajoute par % le %[::->]Le fichier [%%] a &eacute;t&eacute; ajout&eacute; par [%%] le [%%]
-Le fichier % a ete renomme en % par % le %[::->]Le fichier [%%] a &eacute;t&eacute; renomm&eacute; en [%%] par [%%] le [%%]
-Le dossier % a ete renomme en % par % le %[::->]Le dossier [%%] a &eacute;t&eacute; renomm&eacute; en [%%] par [%%] le [%%]
-Ceci est un message automatique du[::->]Ceci est un message automatique du
-ne pas repondre[::->]ne pas r&eacute;pondre
-Fichier correctement deplace[::->]Fichier correctement d&eacute;plac&eacute;
-Impossible de deplacer le fichier[::->]Impossible de d&eacute;placer le fichier
-Impossible de deplacer le fichier, fichier incorrect ou inexistant[::->]Impossible de d&eacute;placer le fichier, fichier incorrect ou inexistant
-Impossible de deplacer le fichier, dossier incorrect ou inexistant[::->]Impossible de d&eacute;placer le fichier, dossier incorrect ou inexistant
-Vous n\'avez pas les droits pour deplacer ce fichier[::->]Vous n\'avez pas les droits pour d&eacute;placer ce fichier
-Impossible de renommer l element % en %, l element % existe deja[::->]Impossible de renommer l'&eacute;l&eacute;ment [%%] en [%%], l'&eacute;l&eacute;ment [%%] existe d&eacute;j&agrave;
-La fonction requise "file_get_contents" est inaccessible sur votre serveur, verifiez votre version de PHP.[::->]La fonction requise "file_get_contents" est inaccessible sur votre serveur, verifiez votre version de PHP.
-La fonction requise "file_get_contents" est accessible sur votre serveur[::->]La fonction requise "file_get_contents" est accessible sur votre serveur
-La fonction requise "file_put_contents" est inaccessible sur votre serveur, verifiez votre version de PHP.[::->]La fonction requise "file_put_contents" est inaccessible sur votre serveur, verifiez votre version de PHP.
-La fonction requise "file_put_contents" est accessible sur votre serveur[::->]La fonction requise "file_put_contents" est accessible sur votre serveur
-Votre version de PHP (%) est trop ancienne, il est possible que certaines fonctionalitees du script comportent des disfonctionnements.[::->]Votre version de PHP ([%%]) est trop ancienne, il est possible que certaines fonctionalit&eacute;es du script comportent des disfonctionnements.
-Votre version de PHP (%) est compatible avec le script[::->]Votre version de PHP ([%%]) est compatible avec le script
-Le dossier de stockage des donnees "%" est inaccessible en ecriture, verifiez que vous avez bien regle les permissions via un chmod777 sur le dossier.[::->]Le dossier de stockage des donn&eacute;es "[%%]" est inaccessible en &eacute;criture, verifiez que vous avez bien r&eacute;gl&eacute; les permissions via un chmod777 sur le dossier.
-Le dossier de stockage des donnees "%" est accessible en ecriture[::->]Le dossier de stockage des donn&eacute;es "[%%]" est accessible en &eacute;criture
-Champs obligatoires non remplis[::->]Champs obligatoires non remplis
- - Taille maximale par fichier : %.[::->] - Taille maximale par fichier : <span class="blue">[%%]</span>.
-Erreur, un nom de dossier ne peux contenir les caracteres suivants[::->]Erreur, un nom de fichier/dossier ne peux contenir les caractères suivants : /,\,:,?,",<,>

+ 0 - 563
sources/php/action.php

@@ -1,563 +0,0 @@
-<?php
-session_start();
-
-require_once('config.php');
-require_once('function.php');
-
-
-mb_internal_encoding("UTF-8" );
-mb_http_output("UTF-8" );
-mb_http_input("UTF-8" );
- 
-iconv_set_encoding("internal_encoding", "UTF-8" );
-iconv_set_encoding("output_encoding", "UTF-8" );
-iconv_set_encoding("input_encoding", "UTF-8" );
- 
-header('Content-Type: text/html; charset=utf-8');
-
-$user = (isset($_SESSION['user']) && $_SESSION['user']!=null ?@unserialize($_SESSION['user']):null);
-$user = ($user?$user:null);
-$event = array();
-$event['date'] = time();
-$javascript =  array();
-$javascript['succes'] = false;
-
-$_ = array();
-foreach($_POST as $key=>$val){
-	$_[$key]=htmlentities($val);
-}
-foreach($_GET as $key=>$val){
-	$_[$key]=htmlentities($val);
-}
-
-if(isset($_['action'])){
-
-	$event['action']=$_['action'];
-
-	switch($_['action']){
-
-		case 'addUser':
-			if(file_exists('../'.DCFOLDER.USERFILE)){
-				if(isset($user) && $user->rank=='admin'){
-					if($_['tpmToken']==$_SESSION['tpmToken']){
-					if(isset($_['login']) && isset($_['password'])){
-					//Vérifie que l'utilisateur n'existe pas déja
-					
-					if(!existLogin($_['login'])){
-						$addedUser = array();
-						$addedUser['login'] = $_['login'];
-						$addedUser['avatar'] = (isset($_['avatar'])?$_['avatar']:'');
-						$addedUser['password'] = $_['password'];
-						$addedUser['rank'] = $_['rank'];
-						$addedUser['mail'] = $_['mail'];
-						$addedUser['notifMail'] = "off";
-						$addedUser['lang'] = DC_LANG;
-						addUser($addedUser);
-						$event['user']=$user->login;
-						$event['result'] = true;
-						$event['addedUser'] = $_['login'];
-						addEvent($event);	
-					}
-					$error = '?openUserPanel=true';
-					}else{
-						$error = '?error='.tt('Champs obligatoires non remplis');
-					}
-					}
-					header('location: ../index.php'.$error);
-				}
-			}else{
-				
-				$addedUser = array();
-				$addedUser['login'] = $_['login'];
-				$addedUser['avatar'] = (isset($_['avatar'])?$_['avatar']:'');
-				$addedUser['password'] = $_['password'];
-				$addedUser['rank'] = $_['rank'];
-				$addedUser['mail'] = $_['mail'];
-				$addedUser['notifMail'] = "off";
-				$addedUser['lang'] = DC_LANG;
-				addUser($addedUser);
-
-				addConfig('ROOT',(isset($_['root'])?$_['root']:''));
-				
-				$event['user']=$_['login'];
-				$event['result'] = true;
-				$event['addedUser'] = $_['login'];
-				$event['action']= 'install';
-				addEvent($event);
-				header('location: ./action.php?action=login&login='.$_['login'].'&password='.$_['password']);
-			}
-
-			break;
-
-		case 'openFile':
-			
-
-			$file = stripslashes(utf8_decode(html_entity_decode($_['file'])));
-			$file ='../'.UPLOAD_FOLDER.str_replace(array('../'.UPLOAD_FOLDER,UPLOAD_FOLDER),'',$file);
-
-			if(
-				(READ_FOR_ANONYMOUS || (isset($user) && ($user->rank=='admin' || $user->rank=='user')))
-				|| (isPublished($_['file']))
-
-				){
-
-				
-				header('Content-Description: File Transfer');
-	    		header('Content-Type: application/octet-stream');
-	    		header('Content-Disposition: attachment; filename='.str_replace(' ','-',basename($file)));
-	    		header('Content-Transfer-Encoding: binary');
-	    		header('Expires: 0');
-	   	 		header('Cache-Control: must-revalidate');
-	    		header('Pragma: public');
-	    		//header('Content-Length: ' . $file);
-	    		ob_clean();
-	    		flush();
-				readfile($file);
-				exit();
-			}else{
-				exit('Fichier priv&eacute;, acc&egrave;s interdit');
-			}
-		break;
-
-
-		case 'publishFile':
-		if(isset($user) && ($user->rank=='admin' || $user->rank=='user')){
-					
-				$file = stripslashes(utf8_decode(html_entity_decode("../".$_['file'])));
-
-				addPublish($file);
-				$javascript['succes'] = true;
-				$javascript['status'] =  'Fichier rendu public';
-				
-				
-			}else{
-				$javascript['status'] = tt('Vous n\'avez pas les droits pour publier ce fichier');
-			}
-		break;
-
-		case 'unpublishFile':
-		if(isset($user) && ($user->rank=='admin' || $user->rank=='user')){
-					
-				$file = stripslashes(utf8_decode(html_entity_decode("../".$_['file'])));
-
-				deletePublish($file);
-				$javascript['succes'] = true;
-				$javascript['status'] =  'Fichier rendu privé';
-				
-				
-			}else{
-				$javascript['status'] = tt('Vous n\'avez pas les droits pour publier ce fichier');
-			}
-		break;
-
-		case 'getFiles':
-			if(READ_FOR_ANONYMOUS || (isset($user) && ($user->rank=='admin' || $user->rank=='user'))){
-				
-				if(isset($_['folder'])){		
-					$_['folder'] = html_entity_decode($_['folder']);
-					$requiredFolder = $_['folder'].'/';
-				}else{
-					$requiredFolder = '../'.UPLOAD_FOLDER;
-				}
-				
-				if($requiredFolder =='//CURRENT/'){
-					$requiredFolder =$_SESSION['currentFolder'];
-				}else{
-
-					$_SESSION['currentFolder'] = $requiredFolder;
-				}
-
-				$scan = scanFolder($requiredFolder,(isset($_['keywords'])?$_['keywords']:null));
-
-				if(count($scan)==0){
-					$javascript['status'] = tt('aucun fichier');
-				}else{
-					$javascript['succes'] = true;
-					$javascript['currentFolder'] = $requiredFolder;
-					$javascript['status'] = $scan;
-				}
-			}
-		break;
-		
-		case 'saveSettings':
-		if(isset($user) && ($user->rank=='admin' || ($user->rank=='user' && $user->login==$_['user']) )){
-			if($_['tpmToken']==$_SESSION['tpmToken']){
-			if(file_exists('../'.DCFOLDER.USERFILE)){
-				$_['notifMail'] = (isset($_['notifMail'])?'true':'false');
-				$values = array(
-						'password'=>$_['password'],
-						'mail'=>$_['mail'],
-						'avatar'=>$_['avatar'],
-						'notifMail'=>$_['notifMail'],
-						'lang'=>$_['lang']
-					);
-				updateUser($_['user'], $values);
-				$javascript['succes'] = true;
-				header('location: ../index.php');	
-			}	
-		}
-
-		}
-		break;
-
-
-
-		
-		case 'zipFile':
-			if(isset($user) && $user->rank=='admin'){
-				require_once('zip.class.php');
-				
-				
-				$tempDir = '../'.DCFOLDER.'temp/';
-				if(!file_exists($tempDir)) mkdir($tempDir);
-				$filesTemp = scandir($tempDir);
-				foreach($filesTemp as $file){
-					if(is_file($tempDir.$file))unlink($tempDir.$file);
-				}
-				
-				$file = stripslashes(utf8_decode(html_entity_decode("../".$_['file'])));
-				$zipName = $tempDir.'.dropFile-'.date('d-m-Y h\hi\ms').'.zip';
-				$archive = new PclZip($zipName);
-				$v_list = $archive->create($file, PCLZIP_OPT_REMOVE_PATH,'..\\'.DCFOLDER);
-				if ($v_list != 0){
-					$javascript['succes'] = true;
-
-					$javascript['status'] =  str_replace('../','','./php/action.php?action=openFile&file='.$zipName);
-				}else{
-					$javascript['status'] = tt('Impossible de zipper le fichier, nom incorrect ou fichier inexistant :').$archive->errorInfo(true);
-				}
-			}else{
-				$javascript['status'] = tt('Vous n\'avez pas les droits pour zipper ce fichier');
-			}
-			break;	
-			
-		
-		case 'moveFile':
-			if(isset($user)){
-				$file = stripslashes(utf8_decode(html_entity_decode($_['fileUrl'])));
-				$fileName = stripslashes(utf8_decode(html_entity_decode($_['fileName'])));
-				$folder = utf8_decode(html_entity_decode($_['folder']));
-				if(is_dir($folder)){
-					if(is_file('../'.$file)){
-						if(@rename('../'.$file,$folder.'/'.$fileName)){
-
-							if(isPublished('../'.$file)){
-								deletePublish('../'.$file);
-								addPublish($folder.'/'.$fileName);
-							}
-							$javascript['succes'] = true;
-
-							$javascript['status'] = tt('Fichier correctement deplace');
-						}else{
-							$javascript['status'] = tt('Impossible de deplacer le fichier');
-						}
-					}else{
-					$javascript['status'] = tt('Impossible de deplacer le fichier, fichier incorrect ou inexistant');
-					}
-				}else{
-					$javascript['status'] = tt('Impossible de d&eacute;placer le fichier, dossier incorrect ou inexistant');
-				}
-			}else{
-				$javascript['status'] = tt('Vous n\'avez pas les droits pour deplacer ce fichier');
-			}
-		break;
-
-		case 'deleteFiles':
-			if(isset($user) && $user->rank=='admin'){
-			$file = stripslashes(utf8_decode(html_entity_decode($_['file'])));
-				
-				if(is_file('../'.$file)){
-				if(unlink('../'.$file)){
-				$event['user']=$user->login;
-				$event['result'] = true;
-				$event['file'] = $_['file'];
-				$event['type'] = 'file';
-				deletePublish('../'.$file);
-				addEvent($event);
-				$javascript['succes'] = true;
-				$javascript['status'] = tt('Fichier correctement supprime');
-				}else{
-					$javascript['status'] = tt('Impossible de supprimer le fichier, nom incorrect ou fichier inexistant');
-				}
-				}else if(is_dir($file)){
-				
-					if(recursiveDelete($file)){
-					$event['user']=$user->login;
-					$event['result'] = true;
-					$event['file'] = $_['file'];
-					$event['type'] = 'folder';
-					addEvent($event);
-					$javascript['succes'] = true;
-					$javascript['status'] = tt('Dossier correctement supprime');
-					}else{
-						$javascript['status'] = tt('Impossible de supprimer le dossier, nom incorrect ou dossier inexistant');
-					}
-				}
-			}else{
-				$javascript['status'] = tt('Vous n\'avez pas les droits pour supprimer ce fichier');
-			}
-			
-			break;
-
-		case 'deleteUser':
-			if(isset($user) && $user->rank=='admin'){
-				if($_['tmpToken']==$_SESSION['tpmToken']){
-					deleteUser($_['user']);
-					$event['user']=$user->login;
-					$event['result'] = true;
-					$event['deletedUser'] = $_['user'];
-					addEvent($event);
-					if($_['user']==$user->login){
-						header('location: ./action.php?action=logout');
-					}else{
-						header('location: ../index.php');
-					}
-				}
-			}
-			break;
-
-
-		case 'backup':
-			if(isset($user) && $user->rank=='admin'){
-				require_once('zip.class.php');
-				$zipName = '../'.UPLOAD_FOLDER.'dropFiles-'.date('d-m-Y-H\hi').'.zip';
-				$archive = new PclZip($zipName);
-
-				$v_list = $archive->create('../'.UPLOAD_FOLDER, PCLZIP_OPT_REMOVE_PATH,'..');
-				if ($v_list == 0) {die("Error : ".$archive->errorInfo(true));}
-
-
-				$_SESSION['backup']= file_get_contents($zipName);
-				$fileSize = filesize($zipName);
-				unlink($zipName);
-
-				header('Content-Description: File Transfer');
-	    		header('Content-Type: application/octet-stream');
-	    		header('Content-Disposition: attachment; filename='.basename($zipName));
-	    		header('Content-Transfer-Encoding: binary');
-	    		header('Expires: 0');
-	   	 		header('Cache-Control: must-revalidate');
-	    		header('Pragma: public');
-	    		header('Content-Length: ' . $fileSize);
-	    		ob_clean();
-	    		flush();
-	    		echo $_SESSION['backup'];
-
-
-				$javascript = null;
-			}
-			//header('location: ../index.php');
-			break;
-		
-		case 'login':
-			if(isset($_['token'])){
-				$user = existToken($_['token']);
-				$_SESSION['user'] = (!$user?null:serialize($user));
-				$_SESSION['tpmToken'] = sha1(time().rand(0,100));
-				if(!$user){
-					header('location: ../index.php?error=Mauvais identifiant ou mot de passe');
-				}else{
-					header('location: ../php/action.php?action=rss');
-				}
-				
-			}else{
-				$user = exist($_['login'],$_['password']);
-				$_SESSION['user'] = (!$user?null:serialize($user));
-				$_SESSION['tpmToken'] = sha1(time().rand(0,100));
-				header('location: ../index.php'.(!$user?'?error=Mauvais identifiant ou mot de passe':''));
-			}
-			
-		break;
-
-		case 'logout':
-			$_SESSION = array();
-			session_unset();
-			session_destroy();
-			header('location: ../index.php');
-			break;
-
-		case 'renameFile':
-			if(isset($user) && ($user->rank=='admin' || $user->rank=='user')){
-			
-				$file = stripslashes(utf8_decode(html_entity_decode($_['file'])));
-				$newPath = substr($file,0,strrpos ($file,'/')+1);
-				$newFileName = stripslashes(utf8_decode(html_entity_decode($_['newName'])));
-
-				$forbidenFormats = explode(',',FORBIDEN_FORMAT);
-				if(in_array(get_extension($_['newName']),$forbidenFormats)) $newFileName .='.txt';
-
-
-				if(!file_exists($newPath.$newFileName)){
-				if(is_file('../'.$file)){
-				if(@rename('../'.$file,'../'.$newPath.$newFileName)){
-					$event['user']=$user->login;
-					$event['result'] = true;
-					$event['file'] = $file;
-					$event['type'] = 'file';
-					$event['rename'] = $_['newName'];
-					addEvent($event);
-					$javascript['succes'] = true;
-				}else{
-					$javascript['status'] = tt('Impossible de renommer le fichier, nom incorrect ou fichier inexistant');
-				}
-				}else{
-					if(@rename($file,$newPath.$newFileName)){
-					$event['user']=$user->login;
-					$event['result'] = true;
-					$event['file'] = $file;
-					$event['type'] = 'folder';
-					$event['rename'] = $_['newName'];
-					addEvent($event);
-					$javascript['succes'] = true;
-					}else{
-						$javascript['status'] = tt('Impossible de renommer le dossier, nom incorrect ou dossier inexistant');
-					}
-				}
-				
-				}else{
-					$javascript['status'] = tt('Impossible de renommer l element % en %, l element % existe deja',array($file,$newFileName,$newFileName));
-					
-				}
-				
-			}else{
-				$javascript['status'] = tt('Vous n\'avez pas les droits pour renommer ce fichier');
-			}
-			break;
-
-		case 'checkVersion':				
-				echo DC_VERSION_NUMBER;
-				$javascript = null;
-		break;
-			
-		case 'rss':
-			if(READ_FOR_ANONYMOUS || (isset($user) && ($user->rank=='admin' || $user->rank=='user'))){
-				header('Content-Type: text/xml; charset=utf-8');
-				echo  rssHeader('http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?action=rss');
-				$allEvents = array_reverse(parseEvents());
-				$root = getConfig('ROOT');
-				if(isset($allEvents) && count($allEvents)!=0){
-					foreach($allEvents as $event){
-						$event = describeEvent($event,$root);
-						$user = $event['user'];
-						echo rssItem($event['title'],$event['lien'],$event['date'],$event['description'],$event['action'],$user->login,$root.$user->avatar);
-					}
-				}
-				echo rssFooter();
-				$javascript = null;
-			}
-		break;
-
-		case 'addFolder':
-		if(isset($user) && ($user->rank=='admin' || $user->rank=='user')){
-			$_['name'] = stripslashes(utf8_decode(html_entity_decode($_['name'])));
-
-			$tempName = utf8_decode($_SESSION['currentFolder']).'/'.$_['name'];
-			if(!isset($_['name']) || trim($_['name'])==''){
-				$tempName = makeName(utf8_decode($_SESSION['currentFolder']),str_replace(array("\r","\n"),'',tt('Nouveau dossier (%)')));
-			}
-			
-			if(!file_exists($tempName)){
-				if(!in_array(trim($_['name']),array('/','\\',':','?','"','<','>'))){
-					if(mkdir($tempName)){
-						@chmod( utf8_decode($_SESSION['currentFolder']).$tempName , 0755);
-						
-						$javascript['succes'] = true;
-						$javascript['tempName'] = $tempName;
-						$javascript['tempNameUrl'] = utf8_decode($_SESSION['currentFolder']).$tempName;
-					}else{
-						$javascript['status'] = tt('Erreur, impossible de cr&eacute;er le dossier');
-					}
-				}else{
-					$javascript['status'] = 'Erreur, un nom de fichier/dossier ne peux contenir les caractères suivants : /,\,:,?,",<,>';
-				}
-			}else{
-					$javascript['status'] = 'Erreur, un dossier de ce nom existe déjà!';
-			}
-		}else{
-			$javascript['status'] = tt('Vous ne pouvez rien envoyer car vous n\'avez aucun droits d\'ajout sur le dropCenter');
-		}
-		break;
-		
-		case 'addEventForUpload':
-			if(isset($user) && ($user->rank=='admin' || $user->rank=='user')){
-				$user = getUser($user->login);
-				$files = json_decode(stripslashes(html_entity_decode($_['files'])));
-
-				$event['user']=$user->login;
-				$event['result'] = true;
-
-				foreach($files as $key=>$file){
-					$file->path = str_replace(getConfig('ROOT').UPLOAD_FOLDER,getConfig('ROOT').'php/action.php?action=openFile&file=',$file->path);
-					$files[$key] = $file;
-				}
-				$event['files'] = $files;
-				addEvent($event);
-
-				if (MAIL){
-					foreach(parseUsers('../') as $userInfos){
-						if($userInfos->notifMail=="true"){
-							$mailmembre = $userInfos->mail;
-							$messageMail ='';
-							$messageMail .='<img src="'.getConfig('ROOT').AVATARFOLDER.$user->login . '.jpg'.'" align="absmiddle" border="0" />&nbsp;<a href="mailto: '.$user->mail.'">'.$event['user'].'</a> '.tt('a ajoute % fichier%',array(count($files),(count($files)>1?'s':''))).' : <ul>';
-							foreach($files as $file){
-								$messageMail .='<li><a href="'.$file->path.'">'.$file->name.'</a> | '.convertSize($file->size).' | '.$file->type.'</li>';
-							}
-							$messageMail .= '</ul>';
-							@mail ($mailmembre . ',', 'DropCenter: '.mb_encode_mimeheader(tt('Ajout d\'un ou plusieurs fichiers par').' '.$event['user']), $messageMail.'<br/>'.tt('Ceci est un message automatique du').' '.'<a href="'.getConfig('ROOT').'">Dropcenter</a>, '.tt('ne pas repondre').'.','Content-type: text/html; charset=UTF-8');
-						}
-					}
-				}
-
-
-				$javascript['succes'] = true;
-			}else{
-				$javascript['status'] = tt('Vous ne pouvez rien notifier car vous n\'avez aucun droits d\'ajout sur le dropCenter');
-			}
-
-		break;
-
-		case 'upload':
-			if(isset($user) && ($user->rank=='admin' || $user->rank=='user')){
-
-				if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){
-					$javascript['status'] = tt('Erreur, mauvaise m&eacute;thode http');
-				}
-
-				if(array_key_exists('files',$_FILES) && $_FILES['files']['error'][0] == 0 ){
-					$pic = $_FILES['files'];
-					$pic['name'] = utf8_decode($pic['name'][0]);
-					$pic['tmp_name'] = $pic['tmp_name'][0];
-					$forbidenFormats = explode(',',FORBIDEN_FORMAT);
-					$pic['name'] = stripslashes($pic['name']);
-					if(in_array(get_extension($pic['name']),$forbidenFormats)){
-						$pic['name'] = $pic['name'].'.txt';
-					}
-					$size = filesize($pic['tmp_name']);
-					if($size<=(MAX_SIZE*1048576)){
-						
-						$destination = (isset($_SESSION['currentFolder'])?utf8_decode($_SESSION['currentFolder']):'../'.UPLOAD_FOLDER).$pic['name'];
-						
-						if(move_uploaded_file($pic['tmp_name'], $destination)){
-		
-							$javascript['status'] = tt('Fichier envoy&eacute; avec succ&egrave;s!');
-							$javascript['extension'] = get_extension($pic['name']);
-							$javascript['succes'] = true;
-							$javascript['filePath'] = getConfig('ROOT').str_replace('../','',$destination);
-							$javascript['file'] = $pic['name'];
-							
-						}
-					}else{
-						$javascript['status'] = tt('Taille maximale : %Mo d&eacute;pass&eacute;e',array(MAX_SIZE));
-					}
-				}else{
-				$javascript['status'] = tt('Probl&egrave;me rencontr&eacute; lors de l\'upload');
-				}
-			}else{
-				$javascript['status'] = tt('Vous ne pouvez rien envoyer car vous n\'avez aucun droits d\'ajout sur le dropCenter');
-			}
-			break;
-	}
-}
-echo (isset($javascript)?json_encode($javascript):'');
-
-?>

+ 0 - 47
sources/php/config.php

@@ -1,47 +0,0 @@
-<?php
-
-
-define('DC_TITLE','PirateBox');//Titre du dropCenter
-define('DC_DESCRIPTION','Upload and download freely');//description du dropCenter
-define('DC_LOGO','img/logo.png');//logo central du dropCenter (Si rien n'est mis, le logo par défaut apparaît)
-define('DC_LICENCE','CC BY NC SA');//License de votre dropCenter
-define('UPLOAD_FOLDER','uploads/');//chemin vers le dossier d'upload (ne pas oublier de mettre les droits d'écriture sur ce dossier)
-define('NAME_LIMIT',25);//Nombre maximal de caractères affichés pour les fichiers
-define('NAME_LIMIT_BORDER','..');//Les caractères qui s'afficheront pour signifier qu'un nom est raccourci
-define('MAX_SIZE',1024);//Taille maximale authorisée par fichier en Mo (Pensez a configurer post_max_size et upload_max_size dans le fichier php.ini de votre serveur si vous voulez uploader de gros fichiers).
-define('FORBIDEN_FORMAT','exe,php,sh,bin,htaccess,htm,html,asp');//Les extensions interdites à l'exécution séparées par des virgules (les fichiers seront bien envoyés mais un .txt sera rajouté à l'extension afin d'empêcher les utilisateurs d'exécuter leurs fichiers sur le serveur
-define('AVATAR_DEFAULT','defaultAvatar.png'); //chemin de l'avatar par défaut
-define('AVATARFOLDER',UPLOAD_FOLDER.'avatars/'); //dossier contenant les avatars
-define('FORTUNE',false);//Affiche une citation aléatoire Chuck Norris Facts (mettre à false pour ne pas afficher)
-define('RSS_MAIL','rss@mail.com');
-define('READ_FOR_ANONYMOUS',false);// Définit si les visiteurs non authentifiés peuvent lire le contenu du dropCenter (true = lecture possible, false = lecture interdite)
-define('DC_LANG','en - English');//Définit la langue par défaut
-define('DIR_LANG','lang/');//Dossier des fichiers de langue
-define('MAIL',false);//Autorise les notifications par e-mail
-define('DISPLAY_DOTFILES',false);//Affiche ou non les dossiers/fichiers commençant par un point
-define('DISPLAY_UPDATE',false);//Activer la vérification des mises-à-jour
-define('DISPLAY_AVATAR_FOLDER',false);//Afficher le dossier des avatars
-define('DEFAULT_THEME','UnderBlack');//Afficher le dossier des avatars
-
-/** A MOINS DE SAVOIR CE QUE VOUS FAITES, NE TOUCHEZ PAS AUX CONFIGURATIONS CI-DESSOUS **/
-define('DCFOLDER',UPLOAD_FOLDER.'.dc/'); //fichier contenant les données d'évènements
-define('LANGFOLDER','lang/'); //dossier contenant les fichiers données de traductions
-define('EVENTFILE','.event.dc'); //fichier contenant les données d'évènements
-define('USERFILE','.user.dc.php'); //fichier contenant les données utilisateurs
-define('PUBLISHFILE','.publish.dc.php');//fichier contenant les données publiées
-
-define('CONFIGFILE','.config.dc.php'); //fichier contenant les données utilisateurs
-define('TAGSFILE','.tags.dc'); //fichier contenant les tags des fichiers envoyés
-define('CHUCKFILE','.chuck.dc.fortune');//Nom du fichier fortune contenant les citations de Chuck Norris
-
-define('SECURE_DELIMITER_BEGIN','<?php /*'); //
-define('SECURE_DELIMITER_END','*/ ?>'); //
-define('LEFT_HASH','-1é&@shs--'); //
-define('RIGHT_HASH','$^^/!+£'); //
-define('DC_VERSION','2'); //Version du programme
-define('DC_NAME','Stable');//Nom du programme
-define('DC_VERSION_NUMBER','2.0.0');//Nom du programme
-define('DC_WEBSITE','http://projet.idleman.fr/dropcenter');//Site du programme
-
-date_default_timezone_set('Europe/Paris');
-?>

+ 0 - 818
sources/php/function.php

@@ -1,818 +0,0 @@
-<?php
-//é
-require_once('config.php');
-
-function rewindPath($path){
-	$path = str_replace('/..','',$path);
-	$path =substr($path,0,strrpos($path,'/'));
-	return $path;
-}
-
-/**
- *
- * Scanne un dossier et retourne ses fichiers sous forme d'une liste de tableaux contenant le nom, l'extension et l'url du fichier
- * @author Idleman
- * @param string $folder
- * @return array<array<>> $realFiles
- */
-
-function scanFolder($folder){
-
-	$folder = utf8_decode($folder);
-
-	$noFolders = array(
-	$folder.'.dc',
-	$folder.'.'
-	);
-
-	$folder = str_replace('//','/',$folder);
-	$root = getConfig('ROOT');
-
-
-	if(realpath($folder)==realpath('../'.UPLOAD_FOLDER))$noFolders []=$folder.'..';
-	$filteredFiles = array();
-
-
-	//if($folder!='../uploads/') var_dump(mb_detect_encoding($folder),$folder);
-	$files = scandir($folder);
-	$realFiles = array();
-	foreach($files as $file){
-		$fileArray = array();
-		//echo var_dump($folder.$file);
-		if(DISPLAY_DOTFILES || (substr($file,0,1)!='.' || $file=='..')   ){
-		if(is_file($folder.$file)){
-			if(!isset($filter) || in_array(str_replace('../','',utf8_encode($folder.$file)),$filteredFiles)){
-				$fileArray['type'] = 'file';
-				$fileArray['toolTipName'] =wordwrap(utf8_encode($file),29,'<br/>',true);
-				$fileArray['name'] = utf8_encode($file);
-				$fileArray['shortname'] =utf8_encode(short($file,NAME_LIMIT,get_extension($file)));
-				$fileArray['extension'] =get_extension($file);
-				$fileArray['url'] = utf8_encode(str_replace('../','',$folder).$file);
-				$fileArray['absoluteUrl'] = $root.'php/action.php?action=openFile&file=../'.$fileArray['url'];
-				$fileArray['size'] = getSize($folder.$file);
-				$fileArray['published'] = isPublished($folder.$file);
-				$mtime = filemtime ($folder.$file);
-				$fileArray['mtimeDate'] = date('d/m/Y',$mtime);
-				$fileArray['mtimeHour'] = date('h\hi\m',$mtime);
-				$realFiles[]=$fileArray;
-				unset($fileArray);
-			}
-		}else{
-			if(!in_array($folder.$file, $noFolders) && ( !DISPLAY_AVATAR_FOLDER && realpath($folder.$file)!=realpath('../'.AVATARFOLDER)) ){
-
-				
-				$fileArray['type'] = 'folder';
-				$fileArray['name'] = utf8_encode($file);
-				$fileArray['shortname'] =utf8_encode(short($file,NAME_LIMIT,get_extension($file)));
-				$fileArray['url'] = utf8_encode(str_replace('//','/',$folder.'/'.$file));
-				if($file=='..')$fileArray['url'] =rewindPath($fileArray['url']);
-					
-				$fileArray['size'] ='10ko';
-				$realFiles[]=$fileArray;
-				unset($fileArray);
-			}
-		}
-		}
-		
-		
-		
-	}
-
-	return $realFiles;
-}
-
-
-
-
-/**
- * Retourne le resume d'une chaine $string au bout de $limit caracteres en ne prenant par compte de l'extension $ext (si c'est un fichier)
- * Enter description here ...
- * @param $string
- * @param $limit
- * @param $ext
- * @author Idleman
- * @return string $shortName
- */
-
-function short($string,$limit,$ext){
-	return (strlen($string)>$limit?substr($string,0,$limit-3).NAME_LIMIT_BORDER.$ext:$string);
-}
-
-
-/**
- *
- * Retourne l'extension d'un fichier a partir de son nom
- * @param $file_name
- * @author Idleman
- * @return string $extension
- */
-
-function get_extension($file_name){
-	$ext = explode('.', $file_name);
-	$ext = (count($ext)==1?null:array_pop($ext));
-	return strtolower($ext);
-}
-
-function getEvents(){
-	if(!file_exists('../'.DCFOLDER.EVENTFILE)) @touch('../'.DCFOLDER.EVENTFILE);
-	return file('../'.DCFOLDER.EVENTFILE);
-}
-
-/**
- *
- * Lit le fichier JSON des evenements, le parse et les retourne sous forme d'une liste d'objets JSON
- * @author Idleman
- * @return array<JSONObject> $events
- */
-
-function parseEvents(){
-	$events = getEvents();
-	$parsedEvents = array();
-	foreach($events as $event){
-		$parsedEvents [] = json_decode($event);
-	}
-	return $parsedEvents;
-}
-
-/**
- *
- * Ajoute un Evenement au fichier JSON de stockage des evenements
- * @author Idleman
- * @param array<> $event
- */
-
-function addEvent($event){
-	file_put_contents('../'.DCFOLDER.EVENTFILE,json_encode($event)."\r\n",FILE_APPEND);
-}
-
-/**
- *
- * Ajoute un parametre au fichier securise JSON de configuration
- * @author Idleman
- * @param array<> $user
- */
-function addConfig($key,$value){
-	$config = array($key => $value);
-	file_put_contents('../'.DCFOLDER.CONFIGFILE,SECURE_DELIMITER_BEGIN.json_encode($config).SECURE_DELIMITER_END."\r\n",FILE_APPEND);
-}
-
-
-
-
-/**
- *
- * Encode le mot de passe fournis en sha1 et md5
- * @param string password
- * @author Idleman
- */
-
-function encode($str){
-	return md5(sha1($str));
-}
-
-/**
- *
- * Teste l'existence d'un compte utilisateur dans la base.
- * @param string $login
- * @param string $password
- * @author Idleman
- * @return si l'utilisateur existe, il le retourne dans le cas contraire : boolean faux
- */
-function exist($login,$password){
-	$user = getUser($login);
-	return ($user!=false && $user->password==encode($password)?$user:false);
-}
-
-/**
- *
- * Teste l'existence d'un compte utilisateur dans la base en fonction de son authToken.
- * @param string $token
- * @author Idleman
- * @return boolean vrai ou faux
- */
-function existToken($token){
-	$users = parseUsers();
-	$target = false;
-	foreach($users as $user){
-		if(strcasecmp(getToken($user),$token)==0)$target=$user;
-	}
-	return ($target!=false?$target:false);
-}
-
-function getToken($user){
-	return sha1(LEFT_HASH.$user->login.$user->password.RIGHT_HASH);
-}
-
-function existLogin($login){
-	$user = getUser($login);
-	return ($user!=false?$user:false);
-}
-
-
-
-/**
- *
- * Retourne les infos liees a un parametre de configuration sous la forme d'un objet JSON a partir de sa cle
- * @param $login
- * @return JSONObject $target
- * @author Idleman
- */
-
-function getConfig($key){
-	$configs = parseConfigs();
-	$target = false;
-	foreach($configs as $config){
-		$config = get_object_vars($config);
-		if(isset($config[$key])){
-			$target=$config[$key];
-		}
-	}
-	return $target;
-}
-
-
-
-
-
-/**
- *
- * Ajoute un utilisateur au fichier securise JSON de stockage des utilisateurs
- * @author Idleman
- * @param array<> $user
- */
-function addUser($user,$encodePassword = true){
-	if($encodePassword) $user['password'] = encode($user['password']);
-	file_put_contents('../'.DCFOLDER.USERFILE,SECURE_DELIMITER_BEGIN.json_encode($user).SECURE_DELIMITER_END."\r\n",FILE_APPEND);
-}
-
-/**
- *
- * Retourne les infos d'un utilisateur sous la forme d'un objet JSON a partir de son login
- * @param $login
- * @return JSONObject $target
- * @author Idleman
- */
-
-function getUser($login){
-	$users = parseUsers();
-	$target = false;
-	foreach($users as $user){
-		if(strcasecmp($user->login,$login)==0)$target=$user;
-	}
-	return $target;
-}
-
-/**
- *
- * update les params d'un user à partir de son login
- * @param $login
- * @return JSONObject $target
- * @author H3
- * @edit [21/03/2012] Idleman -> Cryptage du mdp, non modification du mdp si nouveaux mdp vide
- */
-
-function updateUser($login,$values){
-	$user = get_object_vars(getUser($login));
-
-	foreach($values as $attr=>$value){
-			if(!($attr == 'password' && ($value =="") || !isset($value))) $user[$attr] = ($attr=='password'?encode($value):$value);
-	}
-	deleteUser($login);
-	addUser($user,false);
-	$_SESSION['user'] = serialize((object)$user);
-}
-
-/**
- * Supprime une utilisateur de la base a partir de son login
- * @param string $login
- * @author Idleman
- */
-
-function deleteUser($login){
-	$users = parseUsers();
-	$targets = array();
-	unlink('../'.DCFOLDER.USERFILE);
-	foreach($users as $currentUser){
-		if($currentUser->login!=$login){
-			file_put_contents('../'.DCFOLDER.USERFILE,SECURE_DELIMITER_BEGIN.json_encode($currentUser).SECURE_DELIMITER_END."\r\n",FILE_APPEND);
-		}
-	}
-}
-
-/**
- * Parse le fichiers des utilisateurs et les retourne sous forme d'une liste d'objets JSON
- * @param [OPTIONNAL] string $dir
- * @author Idleman
- * @return array<JSONOBject> $users
- */
-function parseUsers($dir = '../'){
-	$userLines = file($dir.DCFOLDER.USERFILE);
-	$users = array();
-	foreach($userLines as $userLine){
-		if(trim($userLine)!=''){
-			$catchedUser = json_decode(str_replace(array(SECURE_DELIMITER_BEGIN,SECURE_DELIMITER_END),'',$userLine));
-			if(!isset($catchedUser->avatar) || trim($catchedUser->avatar)==''){
-
-				//if($catchedUser->mail!=''){
-				$catchedUser->avatar= getGravatar($catchedUser);
-
-				//}else{
-				//	$catchedUser->avatar =AVATARFOLDER.AVATAR_DEFAULT;
-				//}
-			}
-			$users [] = $catchedUser;
-		}
-	}
-	return $users;
-}
-
-
-function deletePublish($file){
-	$publishes = parsePublishes();
-	$targets = array();
-	unlink('../'.DCFOLDER.PUBLISHFILE);
-	foreach($publishes as $publish){
-		if($publish!=$file){
-			file_put_contents('../'.DCFOLDER.PUBLISHFILE,SECURE_DELIMITER_BEGIN.json_encode(utf8_encode($publish)).SECURE_DELIMITER_END."\r\n",FILE_APPEND);
-		}
-	}
-}
-
-/**
- *
- * Ajoute un fichier publié au fichier des publications
- * @author Idleman
- * @param <string> file
- */
-function addPublish($file){
-	if(!isPublished($file)){
-		file_put_contents('../'.DCFOLDER.PUBLISHFILE,SECURE_DELIMITER_BEGIN.json_encode(utf8_encode($file)).SECURE_DELIMITER_END."\r\n",FILE_APPEND);
-	}
-}
-
-/**
- *
- * Questionne le fichier des publications pour voir si le fichier est publié.
- * @param <string> $file chemin du fichier
- * @return true ou false
- * @author Idleman
- */
-
-function isPublished($file){
-	$publishes = parsePublishes();
-	$target = false;
-	foreach($publishes as $publish){
-		if(strcasecmp($publish,$file)==0)$target = true;
-	}
-	return $target;
-}
-
-/**
- * Parse le fichiers des publication et les retourne sous forme d'une liste d'objets JSON
- * @param [OPTIONNAL] string $dir
- * @author Idleman
- * @return array<JSONOBject> $publishes
- */
-function parsePublishes($dir = '../'){
-	if(!file_exists($dir.DCFOLDER.PUBLISHFILE)) touch($dir.DCFOLDER.PUBLISHFILE);
-	$publishesLines = file($dir.DCFOLDER.PUBLISHFILE);
-	$publishes = array();
-	foreach($publishesLines as $publishLine){
-		if(trim($publishLine)!=''){
-			$publishes [] = utf8_decode(json_decode(str_replace(array(SECURE_DELIMITER_BEGIN,SECURE_DELIMITER_END),'',$publishLine)));
-		}
-	}
-	return $publishes;
-}
-
-
-/**
- * Parse le fichiers des configurations et les retourne sous forme d'une liste d'objets JSON
- * @param [OPTIONNAL] string $dir
- * @author Idleman
- * @return array<JSONOBject> $configs
- */
-function parseConfigs($dir = '../'){
-	$configLines = (file_exists($dir.DCFOLDER.CONFIGFILE)?@file($dir.DCFOLDER.CONFIGFILE):@file(DCFOLDER.CONFIGFILE));
-	$configs = array();
-
-	if($configLines!=false){
-	foreach($configLines as $configLine){
-		if(trim($configLine)!=''){
-			$catchedConfig = json_decode(str_replace(array(SECURE_DELIMITER_BEGIN,SECURE_DELIMITER_END),'',$configLine));
-			$configs [] = $catchedConfig;
-		}
-	}
-	}
-	return $configs;
-}
-
-function reductImage($image,$dest,$largeur = 0, $hauteur = 0,$proportions = TRUE){
-
-	$dimensions=getimagesize($image);
-	if ($proportions){
-		if($dimensions[0]<$dimensions[1]){
-			$largeur = ($hauteur / $dimensions[1]) * $dimensions[0] ;
-		}else{
-			$hauteur = ($largeur / $dimensions[0]) * $dimensions[1] ;
-		}
-	}
-	$pats = pathinfo($image);
-
-	switch (strtolower($pats['extension'])){
-		case 'jpg':
-			$imageFlux = imagecreatefromjpeg($image);
-			break;
-		case 'jpeg':
-			$imageFlux = imagecreatefromjpeg($image);
-			break;
-		case 'png':
-			$imageFlux = imagecreatefrompng($image);
-			break;
-		case 'gif':
-			$imageFlux = imagecreatefromgif($image);
-			break;
-		case 'bmp':
-			$imageFlux = imagecreatefrombmp($image);
-			break;
-	}
-
-	$destination = imagecreatetruecolor($largeur, $hauteur);
-	imagecopyresampled ($destination,$imageFlux,0,0,0,0,$largeur,$hauteur,$dimensions[0],$dimensions[1] ) ;
-
-	switch (strtolower($pats['extension'])){
-		case 'jpg':
-			imagejpeg($destination, $dest);
-			break;
-		case 'jpeg':
-			imagejpeg($destination, $dest);
-			break;
-		case 'png':
-			imagepng($destination, $dest);
-			break;
-		case 'gif':
-			imagegif($destination, $dest);
-			break;
-		case 'bmp':
-			imagejpeg($destination, $dest);
-			break;
-
-	}
-	imagedestroy($imageFlux);
-
-}
-
-/**
- * Retourne l'url de l'image d'avatar correspondant au mail donne en parametre
- * @author Site de Gravatar
- * @param string $email The email address
- * @param string $s Size in pixels, defaults to 80px [ 1 - 512 ]
- * @param string $d Default imageset to use [ 404 | mm | identicon | monsterid | wavatar ]
- * @param string $r Maximum rating (inclusive) [ g | pg | r | x ]
- * @param boole $img True to return a complete IMG tag False for just the URL
- * @param array $atts Optional, additional key/value attributes to include in the IMG tag
- * @return String containing either just a URL or a complete image tag
- * @source http://gravatar.com/site/implement/images/php/
- */
-function getGravatar( $user, $s = 50, $d = 'mm', $r = 'g') {
-	$email =  $user->mail;
-	$url = AVATARFOLDER.$user->login.'.jpg';
-
-	if(!file_exists('../'.$url) && !file_exists($url)){
-
-		@copy('http://www.gravatar.com/avatar/'.md5( strtolower( trim( $email ) ) ).".jpg?s=$s&d=$d&r=$r",'../'.$url);
-		//@copy(file_get_contents('http://DropCenter.idleman.fr/services/avatar/index.php?code=nobot&key='.strtolower( trim( $email ))),$url);
-	}
-	return $url;
-}
-
-function describeEvent($event,$root){
-	
-	$user = getUser($event->user);
-	$describedEvent['user'] = $user;
-	$describedEvent['date'] = $event->date;
-	$describedEvent['action'] = $event->action;
-	$avatar = $root.'php/action.php?action=openFile&file='.$user->avatar;
-	switch($event->action){
-
-		case 'addEventForUpload':
-			$describedEvent['title'] = $event->user.' '.tt('a ajoute un ou plusieurs fichiers');
-			$files = $event->files;
-			$describedEvent['lien'] = $root.'#'.urlencode(count($files)).'files-added-'.date('d-m-Y-h\hi\ms\s',$event->date);
-			$describedEvent['description'] = '<img src="'.$avatar.'" align="absmiddle" border="0" /> <a href="mailto: '.$user->mail.'">'.$event->user.'</a> '.tt('a ajoute % fichier%',array(count($files),(count($files)>1?'s':''))).' : <ul>';
-			if(count($files)!=0){
-				foreach($files as $file){
-					$describedEvent['description'] .='<li><a href="'.$file->path.'">'.$file->name.'</a></li>';
-				}
-			}
-
-			$describedEvent['description'] .='</ul>  le '.date('d/m/Y \- h:i:s',$event->date);
-		break;
-		case 'upload':
-			$describedEvent['title'] = $event->user.' '.tt('a ajoute un fichier');
-			$describedEvent['lien'] = $event->filePath;
-			$describedEvent['description'] = '<img src="'.$avatar.'" align="absmiddle" border="0" /> <a href="mailto: '.$user->mail.'">'.$event->user.'</a> '.tt('a ajoute le fichier <a target="_blank" href="%">%</a> le %',array($describedEvent['lien'],$event->file,date('d/m/Y \- h:i:s',$event->date)));
-			break;
-		case 'deleteFiles':
-			
-			if($event->type=='folder'){
-				$describedEvent['title'] = $event->user.' '.tt('a supprime un dossier');
-				$describedEvent['description'] = '<img src="'.$avatar.'" align="absmiddle" border="0" /> <a href="mailto: '.$user->mail.'">'.$event->user.'</a> '.tt('a supprime le dossier % le %',array(str_replace(UPLOAD_FOLDER,'',$event->file),date('d/m/Y \- h:i:s',$event->date)));
-				$describedEvent['lien'] = $root.'#'.urlencode($event->file).'-'.date('d-m-Y-h\hi\ms\s',$event->date).'-deleted';
-			}else{
-				$describedEvent['title'] = $event->user.' '.tt('a supprime un fichier');
-				$describedEvent['description'] = '<img src="'.$avatar.'" align="absmiddle" border="0" /> <a href="mailto: '.$user->mail.'">'.$event->user.'</a> '.tt('a supprime le fichier % le %',array(str_replace(UPLOAD_FOLDER,'',$event->file),date('d/m/Y \- h:i:s',$event->date)));
-				$describedEvent['lien'] = $root.'#'.(isset($event->filePath)?$event->filePath:'').urlencode($event->file).'-'.date('d-m-Y-h\hi\ms\s',$event->date).'-deleted';
-			}
-
-			break;
-		case 'renameFile':
-			$describedEvent['title'] = $event->user.' '.tt('a renomme un '.($event->type=='folder'?'dossier':'fichier'));
-			$describedEvent['lien'] = $root.UPLOAD_FOLDER.urlencode($event->rename);
-			$describedEvent['description'] = '<img src="'.$avatar.'" align="absmiddle" border="0" /> <a href="mailto: '.$user->mail.'">'.$event->user.'</a> '.tt('a renomme le '.($event->type=='folder'?'dossier':'fichier').' % en <a target="_blank" href="%">%</a> le %',array(str_replace(UPLOAD_FOLDER,'',$event->file),$describedEvent['lien'],$event->rename,date('d/m/Y \- h:i:s',$event->date)));
-			break;
-		case 'addUser':
-			$describedEvent['title'] = $event->user.' '.tt('a ajoute l\'utilisateur').' '.$event->addedUser;
-			$describedEvent['description'] = '<img src="'.$avatar.'" align="absmiddle" border="0" /> <a href="mailto: '.$user->mail.'">'.$event->user.'</a> '.tt('a ajoute l\'utilisateur % le %',array($event->addedUser,date('d/m/Y \- h:i:s',$event->date)));
-			$describedEvent['lien'] = $root.'#'.date('d-m-Y-h\hi\ms\s',$event->date).'-'.$event->addedUser.'-added';
-			break;
-		case 'install':
-			$describedEvent['title'] = $event->user.' '.tt('a installe le dropCenter');
-			$describedEvent['description'] = '<img src="'.$avatar.'" align="absmiddle" border="0" /> <a href="mailto: '.$user->mail.'">'.$event->user.'</a> '.tt('a installe le dropCenter le %',array(date('d/m/Y \- h:i:s',$event->date)));
-			$describedEvent['lien'] = $root.'#-install';
-			break;
-		case 'deleteUser':
-			$describedEvent['title'] = $event->user.' '.tt('a supprime l\'utilisateur').' '.$event->deletedUser;
-			$describedEvent['description'] = '<img src="'.$avatar.'" align="absmiddle" border="0" /> <a href="mailto: '.$user->mail.'">'.$event->user.'</a> '.tt('a supprime l\'utilisateur % le %',array($event->deletedUser,date('d/m/Y \- h:i:s',$event->date)));
-			$describedEvent['lien'] = $root.'#'.date('d-m-Y-h\hi\ms\s',$event->date).'-'.$event->deletedUser.'-deleted';
-			break;
-		/*case 'backup':
-			$describedEvent['title'] = $event->user.' '.tt('a fait un backup des fichiers');
-			$describedEvent['lien'] = $event->filePath;
-			$describedEvent['description'] = '<img src="'.$avatar.'" align="absmiddle" border="0" /> <a href="mailto: '.$user->mail.'">'.$event->user.'</a>  '.tt('a fait un backup des fichiers disponible sur <a target="_blank" href="%">%</a> le %',array($describedEvent['lien'],$event->file,date('d/m/Y \- h:i:s',$event->date)));
-		break;*/
-	}
-	return $describedEvent;
-}
-
-function chuckQuote($path = null){
-	$path = (isset($path)?$path:'../'.DCFOLDER.CHUCKFILE);
-	$stream = explode('%',file_get_contents(UPLOAD_FOLDER.$path));
-	return utf8_encode($stream[rand(0,count($stream)-1)]);
-}
-
-
-
-
-function getSize($file)
-{
-	$size = filesize($file);
-	return convertSize($size);
-}
-
-function convertSize($size){
-
-	if ($size < 1024) {
-		return ($size==0?'0 ':$size) .' o';
-	} elseif ($size < 1048576) {
-		return round($size / 1024, 2) .' Ko';
-	} elseif ($size < 1073741824) {
-		return round($size / 1048576, 2) . ' Mo';
-	} elseif ($size < 1099511627776) {
-		return round($size / 1073741824, 2) . ' Go';
-	} elseif ($size < 1125899906842624) {
-		return round($size / 1099511627776, 2) .' To';
-	} elseif ($size < 1152921504606846976) {
-		return round($size / 1125899906842624, 2) .' Po';
-	} elseif ($size < 1180591620717411303424) {
-		return round($size / 1152921504606846976, 2) .' Eo';
-	} elseif ($size < 1208925819614629174706176) {
-		return round($size / 1180591620717411303424, 2) .' Zo';
-	} else {
-		return round($size / 1208925819614629174706176, 2) .' Yo';
-	}
-}
-
-
-
-
-
-
-function countFiles($folder = UPLOAD_FOLDER){
-
-	$fileInfos = array();
-	$files = scanDir($folder);
-
-	foreach($files as $file){
-
-		if($file!='.' && $file!='..' && $folder.'/'.$file!='uploads//.dc' && $folder.'/'.$file!='uploads//avatars'&& $folder.'/'.$file!='uploads//.htaccess'){
-			if(is_dir($folder.'/'.$file)){
-				$fileInfos = array_merge($fileInfos,countFiles($folder.'/'.$file));
-
-			}else{
-				$fileInfos [$folder.$file]['size'] = filesize($folder.'/'.$file);
-			}
-		}
-	}
-
-	return $fileInfos;
-}
-
-
-/**
- * Convertis une cle de traduction en langage traduit
- * @param string $key : cle de traduction
- * @param [OPTIONNAL] array $parameters, parametres dynamiques e inclure dans la traduction (remplace respectivement les signes [%%])
- * @param [OPTIONNAL] string $lang
- * @author Idleman
- * @return String $traduction
- */
-function tt($key,$parameters=null,$langage=DC_LANG){
-
-	$user = (isset($_SESSION['user']) && $_SESSION['user']!=null ?@unserialize($_SESSION['user']):null);
-	if(isset($user->lang) && isset($user->lang)) $langage =$user->lang;
-
-
-	$lang = getLang($langage);
-	//$return = (isset($lang[$key])?$lang[$key]:"<span style='color:red;font-weight:bold'>TRADUCTION MISS : '$key' for langage '$langage']</span>");
-	$return = (isset($lang[utf8_encode($key)])?$lang[utf8_encode($key)]:'<span style=\'color:red;font-weight:bold\'>'.$key.'[::->]</span>');
-
-	if(isset($parameters)){
-		$parametersVars = explode('[%%]',$return);
-		$return = '';
-		$i=0;
-		for($o = 0,$e= count($parametersVars);$o<$e;$o++){
-			if($o!=0){
-				$return .= (isset($parameters[$i])?$parameters[$i]:'').$parametersVars[$o];
-				$i++;
-			}else{
-				$return .= $parametersVars[$o];
-			}
-		}
-	}
-	return utf8_decode($return);
-}
-/**
- * Convertis une cle de traduction en langage traduit
- * @param string $key : cle de traduction
- * @param [OPTIONNAL] array $parameters, parametres dynamiques e inclure dans la traduction (remplace respectivement les signes [%%])
- * @param [OPTIONNAL] string $lang
- * @author Idleman
- * @echo String $traduction
- */
-function t($key,$parameters=null,$langage=DC_LANG){
-
-	$user = (isset($_SESSION['user']) && $_SESSION['user']!=null ?unserialize($_SESSION['user']):null);
-	if(isset($user->lang) && isset($user->lang))$langage=$user->lang;
-	$lang = getLang($langage);
-	$return = (isset($lang[utf8_encode($key)])?$lang[utf8_encode($key)]:"<span style='color:red;font-weight:bold'>TRADUCTION MISS : '$key' for langage '$langage']</span>");
-	//$return = (isset($lang[$key])?$lang[$key]:'<span style=\'color:red;font-weight:bold\'>'.$key.'[::->]</span>');
-
-	if(isset($parameters)){
-		$parametersVars = explode('[%%]',$return);
-		$return = '';
-		$i=0;
-		for($o = 0,$e = count($parametersVars);$o<$e;$o++){
-			if($o!=0){
-				$return .= (isset($parameters[$i])?$parameters[$i]:'').$parametersVars[$o];
-				$i++;
-			}else{
-				$return .= $parametersVars[$o];
-			}
-		}
-	}
-	echo $return;
-}
-
-/**
- * Parse le fichiers des langues et retourne les traductions sous forme d'un tableau
- * @param [OPTIONNAL] string $lang
- * @author Idleman
- * @return array<String> $traductions
- */
-function getLang($lang=DC_LANG){
-
-	if(!isset($_SESSION['traductions'])){
-		$path = (file_exists(LANGFOLDER.$lang)?LANGFOLDER.$lang:'../'.LANGFOLDER.$lang);
-		$langLines = file($path,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
-		
-		$traductions = array();
-		foreach($langLines as $langLine){
-			if(trim($langLine)!=''){
-				list($key,$traduction) = explode('[::->]',$langLine);
-				$traductions[$key] = $traduction;
-			}
-		}
-		//TODO, e decommenter en fin de dev  :
-		//$_SESSION['traductions'] = serialize($traductions);
-	}else{
-		$traductions = unserialize($_SESSION['traductions']);
-	}
-
-	return $traductions;
-}
-
-
-
-//Suprime un dossier et tous son contenu
-function recursiveDelete($folder){
-	$open=@scandir($folder);
-	if (!$open) return false;
-	foreach($open as $file) {
-		if ($file != '.' && $file != '..'){
-			if (is_dir($folder."/".$file)) {
-				$r=recursiveDelete($folder."/".$file);
-				if (!$r) return false;
-			}
-			else if (is_file($folder."/".$file)){
-					
-				$r=@unlink($folder."/".$file);
-				if (!$r) return false;
-			}
-		}
-	}
-	$r=@rmdir($folder);
-	if (!$r) return false;
-	return true;
-}
-
-//Convertit en bytes une chaîne au format texte
-//Exemples de chaîne: "2 Mo", "5 Ko", ...
-function toBytes($str)
-	{
-		$val = trim($str);
-		$last = strtolower($str[strlen($str)-1]);
-		switch($last)
-			{
-				case 'g': $val *= 1024;
-				case 'm': $val *= 1024;
-				case 'k': $val *= 1024;
-			}
-		return $val;
-	}
-
-//Récupère la taille maximale d'upload autorisée dans php.ini
-function getUploadSize()
-	{
-		$postSize = ini_get('post_max_size');
-		$uploadSize = ini_get('upload_max_filesize');
-		return min(toBytes($postSize),toBytes($uploadSize));
-	}
-
-/* Constitue un nom lors de la creation des dossiers pour ne pas excraser les existantes (ex :nouveaux dossier (2)) */
-function makeName($folder,$name,$number=1){
-	$scan = scandir($folder);
-	$exist = false;
-	foreach($scan as $file){
-		if($file==$name.' ('.$number.')') $exist = true;
-	}
-	if($exist){
-		return makeName($folder,$name,$number+1);
-	}else{
-		return $name.' ('.$number.')';
-	}
-
-}
-
-function rssHeader($link){
-	return '<rss xmlns:media="http://search.yahoo.com/mrss/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
-<channel>
-<atom:link href="'.$link.'" rel="self" type="application/rss+xml"/>
-<title>'.DC_TITLE.'</title>
-<link>
-'.$link.'
-</link>
-<description>'.DC_DESCRIPTION.'</description>
-<language>fr-fr</language>
-<copyright>'.DC_LICENCE.'</copyright>
-<pubDate>'.date('r', gmstrftime(time())) .'</pubDate>
-<lastBuildDate>'.date('r', gmstrftime(time())) .'</lastBuildDate>
-<generator>'.DC_TITLE.' '.DC_VERSION.' '.DC_NAME.'</generator>';
-
-}
-function rssItem($title,$link,$date,$content,$action,$user,$image){
-	return '<item>
-<title><![CDATA['.html_entity_decode($title,ENT_QUOTES,'UTF-8').']]></title>
-<link>'.$link.'</link>
-<guid isPermaLink="true">'.$link.'</guid>
-<media:hash algo="sha-1">'.sha1($date.$user.$action).'</media:hash>
-<media:thumbnail time="'.$date.'" url="'.$image.'"/>
-<description>
-<![CDATA[
-'.$content.'
-]]>
-</description>
-<category>'.$action.'</category>
-<dc:creator>'.$user.'</dc:creator>
-</item>';
-
-}
-function rssFooter(){
-	return '</channel></rss>';
-}
-
-
-function unicode2utf8($string){
-	return html_entity_decode(preg_replace("/U\+([0-9A-F]{4})/", "&#x\\1;", $string), ENT_NOQUOTES, 'UTF-8');
-}
-?>

File diff suppressed because it is too large
+ 0 - 1043
sources/php/rain.tpl.class.php


File diff suppressed because it is too large
+ 0 - 5872
sources/php/zip.class.php


+ 0 - 945
sources/tpl/UnderBlack/css/styles.css

@@ -1,945 +0,0 @@
-/*é*/
-*{
-	margin:0;
-	padding:0;
-}
-
-html{
-	background:url('../img/background_tile_2.jpg');
-	min-height:100%;
-	position:relative;
-	
-}
-
-body{
-	color:#fff;
-	margin:0px
-	min-height:600px;
-	font:14px/1.3 'Segoe UI',Arial, sans-serif;
-}
-
-
-.rssFeed{
-	width:65px;
-	display:inline-block;
-	height:16px;
-	margin-left:10px;
-	margin-top:6px;
-	color:#cecece;
-}
-
-.fileOption,.blue,a,a:visited {
-	text-decoration:none;
-	outline:none;
-	color:#54a6de;
-}
-
-.fileOption:hover,a:hover{
-	text-decoration:underline;
-}
-
-header, footer{
-	display:block;
-}
-
-.folderNameBloc{
-	display:none;
-	float:left;
-}
-
-.blackControl{
-	background-color: #0F0F0F;
-    border: medium none;
-    color: #FFFFFF;
-    font-size: 10px;
-    margin: 3px 3px 3px;
-    padding: 3px;
-}
-
-
-.fileInput{
-	position: relative;
-}
-.fileInputText{
-	background-color: #0F0F0F;
-    border: medium none;
-    box-shadow: 0 0 2px #000000;
-    color: #FFFFFF;
-    font-size: 10px;
-    margin: 7px 3px 3px;
-    padding: 3px;
-    position: relative;
-    z-index: 1;
-}
-.fileInputButton{
-	background-color: #0F0F0F;
-    border: medium none;
-    box-shadow: 0 0 2px #000000;
-    color: #FFFFFF;
-    font-size: 10px;
-    margin: 7px 3px 3px;
-    padding: 3px;
-    position: relative;
-    z-index: 1;
-}
-.fileInputFile{
-	position: relative;
-	text-align: right;
-	-moz-opacity:0 ;
-	filter:alpha(opacity: 0);
-	opacity: 0;
-	z-index: 2;
-}
-
-#userCreateBloc{
-	display:none;
-}
-
-.preloader{
-	
-	background: url("../img/preloader.gif") no-repeat scroll 10px center transparent;
-    border-radius: 5px 5px 5px 5px;
-    float: left;
-    display: none;
-    float: left;
-    font-size: 11px;
-    height: 13px;
-    margin: 0 0 0 5px;
-    min-width: 15px;
-    padding: 7px 7px 7px 35px;
-    width: 140px;
-    opacity:0.5;
-}
-
-#userCreateBloc input,#userCreateBloc select,#initProgram input, #paramsBloc input, #paramsBloc select{
-	width:70px;
-	padding:3px;
-	margin:3px;
-	margin-top:7px;
-	font-size:10px;
-	color:#ffffff;
-	background-color:#0F0F0F;
-	box-shadow:0 0 2px #000;
-	border:none;
-}
-
-#initProgram input[name="root"]{
-	width:238px;
-}
-
-#userCreateBloc span input,#userCreateBloc span select,#paramsBloc span select,#paramsBloc span input{
-	margin:0px;
-}
-#versionBloc{
-	display:none;
-	width: 500px;
-	text-align:center;
-	margin:auto;
-	margin-bottom: 15px;
-	margin-top: 75px;
-	padding:5px;
-	background: url("../img/background_tile_3.jpg") repeat scroll 0 0 transparent;
-    border-radius: 3px;
-    box-shadow: 0 0 4px rgba(0, 0, 0, 0.3) inset, 0 -3px 2px rgba(0, 0, 0, 0.1);
-    min-height: 20px;
-}
-
-#initProgram{
-	background: url("../img/background_tile_3.jpg") repeat scroll 0 0 transparent;
-    border-radius: 3px;
-    box-shadow: 0 0 4px rgba(0, 0, 0, 0.3) inset, 0 -3px 2px rgba(0, 0, 0, 0.1);
-    min-height: 20px;
-    overflow: hidden;
-    padding: 10px;
-    width: 610px;
-	margin:auto;
-	margin-bottom: 15px;
-}
-#usersBloc{
-	background: url("../img/background_tile_2.jpg") repeat scroll 0 0 transparent;
-    border-radius: 3px 3px 3px 3px;
-    box-shadow: 0 0 4px rgba(0, 0, 0, 0.3) inset, 0 -3px 2px rgba(0, 0, 0, 0.1);
-    margin: 15px 10px 10px 10px;
-    min-height: 20px;
-    overflow: hidden;
-    padding: 10px 10px 10px 5px;
-    width: 950px;
-	display:none;
-}
-
-#paramsBloc{
-    margin: 15px 10px 10px 10px;
-    min-height: 20px;
-    overflow: hidden;
-    padding: 10px 10px 10px 5px;
-    width: 955px;
-	display:none;
-	clear:both;
-}
-
-#paramsBloc li{
-	clear:both;
-	padding:5px;
-	border-radius: 3px 3px 3px 3px;
-    box-shadow: 0 0 4px rgba(0, 0, 0, 0.3) inset, 0 -3px 2px rgba(0, 0, 0, 0.1);
-    background-color:#161616;
-    margin:5px;
-    width:900px;
-}
-
-#paramsBloc li ul li{
-	box-shadow:none;
-	width:870px;
-}
-
-#initProgram h1,#usersBloc h1,#paramsBloc h1{
-	color:#cecece;
-	margin:0px 5px 5px 10px;
-	font-size:16px;
-	text-shadow:1px 2px 2px #080808
-}
-#initProgram p,#usersBloc h2{
-	color:#ffffff;
-	margin:0px 5px 5px 10px;
-	font-size:10px;
-	text-shadow:1px 2px 2px #080808;
-	cursor:pointer;
-}
-
-#usersBloc a{
-	cursor:pointer;
-}
-
-#usersBloc ul li, #initProgram ul, #paramsBloc ul li{
-	list-style-type:none;
-	
-}
-#usersBloc ul li ul , #paramsBloc ul li ul{
-	clear:both;
-}
-#usersBloc ul li ul li, #initProgram ul li, #paramsBloc ul li{
-	float:left;
-
-	padding:3px 10px 3px 10px;
-	min-height:35px;
-}
-#usersBloc span,#usersBloc a{
-	margin-top:8px;
-	display:block;
-}
-
-.breadcrumb {
-	margin:0px 10px 0px 10px;
-	padding:0px;
-}
-.breadcrumb li {
-	background-color:#161616;
-	border-radius: 0 5px 5px 5px;
-    box-shadow: 0 0 4px rgba(0, 0, 0, 0.3) inset, 0 -3px 2px rgba(0, 0, 0, 0.1);
-    float: left;
-    margin-left: 2px;
-    max-width: 430px;
-    min-height: 15px;
-    overflow: hidden;
-    padding: 5px;
-	cursor:pointer;
-}
-.breadcrumb li:hover {
-	background-color:#1C1C1C;
-}
-
-.loginBloc .logo{
-	margin-right: 15px;
-}
-.loginBloc span[class^="icon"]{
-	font-size:20px;
-	color:#cecece;
-	cursor:pointer;
-	text-shadow: 1px 1px 1px #000000;
-}
-
-.loginBloc{
-	background-color: #171717;
-    border-radius: 3px 3px 3px 3px;
-    box-shadow: 0 0 4px rgba(0, 0, 0, 0.3) inset, 0 -3px 2px rgba(0, 0, 0, 0.1);
-    margin: 10px;
-    overflow: hidden;
-    padding: 10px;
-    width:950px;
-	float:left;
-}
-
-
-.requireBloc{
-	background: url("../img/background_tile_2.jpg") repeat scroll 0 0 transparent;
-    border-radius: 3px 3px 3px 3px;
-    box-shadow: 0 0 4px rgba(0, 0, 0, 0.3) inset, 0 -3px 2px rgba(0, 0, 0, 0.1);
-    margin: 5px;
-    padding: 10px;
-    width: 550px;
-    text-align:center;
-}
-
-.menuIcon span{
-	display:block;
-	float:left;
-	background: #2d2d2d; /* Old browsers */
-	background: -moz-linear-gradient(top,  #2d2d2d 0%, #1b1b1b 100%); /* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2d2d2d), color-stop(100%,#1b1b1b)); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top,  #2d2d2d 0%,#1b1b1b 100%); /* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top,  #2d2d2d 0%,#1b1b1b 100%); /* Opera 11.10+ */
-	background: -ms-linear-gradient(top,  #2d2d2d 0%,#1b1b1b 100%); /* IE10+ */
-	background: linear-gradient(to bottom,  #2d2d2d 0%,#1b1b1b 100%); /* W3C */
-	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2d2d2d', endColorstr='#1b1b1b',GradientType=0 ); /* IE6-9 */
-	
-	border-right:1px solid #0f0f0f;
-	border-left:1px solid #292929;
-	border-top:1px solid #0f0f0f;
-	border-bottom:1px solid #0f0f0f;
-	padding:3px;
-	margin:0px;
-	cursor:pointer;
-}
-
-.menuIcon span:last-child{
-	border-radius:0 3px 3px 0;
-}
-.menuIcon span:first-child{
-	border-radius:3px 0 0 3px;
-	border-left:1px solid #0f0f0f;
-}
-.menuIcon span.active,.menuIcon span:hover{
-	background: #0a0a0a; /* Old browsers */
-	background: -moz-linear-gradient(top,  #0a0a0a 0%, #141414 100%); /* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#0a0a0a), color-stop(100%,#141414)); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top,  #0a0a0a 0%,#141414 100%); /* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top,  #0a0a0a 0%,#141414 100%); /* Opera 11.10+ */
-	background: -ms-linear-gradient(top,  #0a0a0a 0%,#141414 100%); /* IE10+ */
-	background: linear-gradient(to bottom,  #0a0a0a 0%,#141414 100%); /* W3C */
-	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0a0a0a', endColorstr='#141414',GradientType=0 ); /* IE6-9 */
-	border-left:1px solid #0f0f0f;
-}
-
-.menuIcon span i{
-	width:20px;
-	height:20px;
-	display:block;
-	opacity:0.4;
-}
-.menuIcon span:hover i{
-	opacity:0.7;
-}
-
-i.icon-folder{
-	background:url('../img/icons.png') no-repeat scroll 0 0 transparent;
-	background-position:-210px -154px
-}
-i.icon-user{
-	background:url('../img/icons.png') no-repeat scroll 0 0 transparent;
-	background-position:-239px -122px
-}
-
-i.icon-setting{
-	background:url('../img/icons.png') no-repeat scroll 0 0 transparent;
-	background-position:-300px -92px;
-}
-i.icon-backup{
-	background:url('../img/icons.png') no-repeat scroll 0 0 transparent;
-	background-position:-207px -151px;
-}
-
-i.icon-cross{
-	background:url('../img/icons.png') no-repeat scroll 0 0 transparent;
-	background-position:-301px -155px;
-}
-
-i.icon-ok{
-	background:url('../img/icons.png') no-repeat scroll 0 0 transparent;
-	background-position:-0px -122px;
-}
-
-i.icon-rss{
-	background:url('../img/icons.png') no-repeat scroll 0 0 transparent;
-	background-position:-268px -126px;
-	width:20px;
-	height:20px;
-	display:block;
-	float:left;
-	opacity:0.4;
-}
-
-
-
-.menuBloc{
-    min-height: 25px;
-    overflow: hidden;
-	float:left;
-	margin: 10px 0 0 10px;
-}
-
-.menuBloc a{
-	cursor:pointer;
-	width:22px;
-	height:22px;
-	display:block;
-	float:left;
-	background-repeat:no-repeat;
-	margin-left:3px;
-	margin-right:3px;
-}
-
-
-.menuBloc .newFolder{
-	background:url('../img/menuIcons.png') no-repeat scroll 0 0 transparent;
-	background-position:0px 0px;
-	width:20px;
-}
-.menuBloc .member{
-	background:url('../img/menuIcons.png') no-repeat scroll 0 0 transparent;
-	background-position:-40px 1px;
-	width:20px;
-}
-.menuBloc .backup{
-	background:url('../img/menuIcons.png') no-repeat scroll 0 0 transparent;
-	background-position:-136px 0px;
-	width:20px;
-}
-.menuBloc .preferences{
-	background:url('../img/menuIcons.png') no-repeat scroll 0 0 transparent;
-	background-position:-20px 1px;
-	width:20px;
-}
-
-
-
-
-.loginBloc input,.loginBloc button{
-	padding:5px;
-	margin:0 0 0 5px;
-	font-size:15px;
-	color:#cecece;
-	background-color:#0F0F0F;
-	border-radius:3px;
-	border:none;
-}
-.loginBloc button{
-	font-size:13px;
-}
-
-
-
-#dropbox:before{
-	display: block;
-	content:'';
-	height:4px;
-	width:100%;
-	position: absolute;
-	top:0;
-	left:0;
-}
-
-.textLogin{
-	float:left;
-	margin-top:10px;
-}
-
-.avatar{
-	padding:3px;
-	background-color:#cecece;
-	width:30px;
-	height:30px;
-	box-shadow:0 2px 2px rgba(0,0,0,0.6);
-	float:left;
-	margin-right:10px;
-}
-
-.avatar img{
-	width:30px;
-	height:30px;
-}
-
-#dropbox{
-	background:url('../img/background_tile_3.jpg');
-	border-radius:3px;
-	position: relative;
-	margin:15px auto 10px;
-	
-	overflow: hidden;
-    width: 990px;
-	box-shadow:0 0 4px rgba(0,0,0,0.3) inset,0 -3px 2px rgba(0,0,0,0.1);
-}
-
-footer{
-	width:100%;
-	font-size:10px;
-	text-align:center;
-}
-
-
-#dropbox .message{
-	font-size: 11px;
-    text-align: center;
-    padding:10px;
-    display: block;
-    border:2px dotted #cecece;
-    width:100px;
-    height:60px;
-    margin:auto;
-    background-color: #161616;
-    border-radius: 5px 5px 5px 5px;
-    box-shadow: 0 0 4px rgba(0, 0, 0, 0.3) inset, 0 -3px 2px rgba(0, 0, 0, 0.1);
-    cursor: pointer;
-    float:left;
-}
-
-
-
-.fileBloc{
-	font-size: 11px;
-    text-align: center;
-    padding:10px;
-    display: block;
-    width: 90px;
-
-    margin:0 auto 30px auto;
-    background-color: #161616;
-    border-radius: 5px 5px 5px 5px;
-    box-shadow: 0 0 4px rgba(0, 0, 0, 0.3) inset, 0 -3px 2px rgba(0, 0, 0, 0.1);
-    cursor: pointer;
-    clear:both;
-}
-
-.fileBloc input,.fileBloc div,.fileBloc span{
-	cursor:pointer;
-}
-
-
-#dropbox .message i{
-	color:#ccc;
-	font-size:10px;
-}
-
-#dropbox:before{
-	border-radius:3px 3px 0 0;
-}
-
-.directLink{
-	background-color: #0F0F0F;
-    border: medium none;
-    box-shadow: 0 0 2px #000000;
-    color: #FFFFFF;
-    font-size: 10px;
-    font-family: Verdana;
-    text-align: center;
-    padding: 2px;
-    display:none;
-    width:165px;
-    margin:auto;
-}
-
-
-#dropbox .preview{
-	width:170px;
-	min-height: 140px;
-	max-height: 140px;
-	float:left;
-	margin: 0 0 0 60px;
-	position: relative;
-	text-align: center;
-}
-
-.filePublished .fileName{
-	color: #62D827;
-}
-
-
-#dropbox .preview .filePublished img{
-	-moz-box-shadow: 0px 0px 5px 1px #62D827;
-	-webkit-box-shadow: 0px 0px 5px 1px #62D827;
-	-o-box-shadow: 0px 0px 5px 1px #62D827;
-	box-shadow: 0px 0px 5px 1px #62D827;
-	filter:progid:DXImageTransform.Microsoft.Shadow(color=#62D827, Direction=NaN, Strength=5);
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;
-	border-radius: 5px;
-}
-
-#dropbox .preview .deleteFile{
-	float:right;
-	width:12px;
-	font-size:10px;
-	font-weight:bold;
-	padding:3px;
-	background-color:#212322;
-	box-shadow: 0 0 2px #000000;
-	-webkit-border-radius: 3px;
-	-moz-border-radius: 3px;
-	border-radius: 3px;
-	display:none;
-}
-
-.folderPreviewDroppableHover{
-	border-radius:5px;
- 	box-shadow: 0 0 2px #000000;
- 	background-color:#2A2A2C;
- }
-
-#dropbox .imageHolder:hover ul{
-	display:block;
-}
-#dropbox .folderHolder:hover ul{
-	display:block;
-}
-
-#dropbox .imageHolder:hover  img{
-	margin-left:5px;
-}
-
-
-
-
-
-#dropbox .imageHolder ul{
-	float:left;
-	font-size:10px;
-	margin:0;
-	padding:0;
-	list-style-type:none;
-	margin-left:5px;
-	text-align:left;
-	line-height:12px;
-	display:none;
-}
-
-#dropbox .preview img{
-	max-width: 48px;
-	float:left;
-	max-height:48px;
-	display: block;
-	margin-left: 60px;
-	box-shadow:0 0 2px #000;
-}
-
-#dropbox .imageHolder,#dropbox .folderHolder{
-	display: inline-block;
-	position:relative;
-	padding:5px;
-	min-height:85px;
-	cursor:pointer;
-	width: 170px;
-}
-
-#dropbox .dropFolder{
-	display: inline-block;
-	padding-top:15px;
-	height:81px;
-	cursor:pointer;
-	width: 170px;
-	background-image:url('../img/extension/folder.png');
-	background-repeat:no-repeat;
-	background-position: center center;
-	float:left;
-	margin: 55px 0 0 60px;
-	position: relative;
-
-}
-#dropbox .dropFolder h1{
- 	color: #FFFFFF;
-    cursor: pointer;
-    font-size: 10px;
-    width:76px;
-    margin: 0 5px 5px 10px;
-    text-shadow: 1px 1px 1px #080808;
-    text-align:center;
-    clear:both;
-    max-height:25px;
-    overflow: hidden;
-    margin-left:47px;
-}
-#dropbox .dropFolder ul{
-	width:76px;
-	margin-left:47px;
-}
-#dropbox .dropFolder ul li{
-	list-style-type:none;
-	float:left;
-	margin: 2px;
-	width:20px;
-	height:20px;
-}
-#dropbox .dropFolder ul li img{
-	width:20px;
-	height:20px;
-}
-
-#dropbox .dropFolder:hover{
-	background-color:#151516;
-	box-shadow: 0 0 2px #000000;
-}
-
-#dropbox .imageHolder:hover,#dropbox .folderHolder:hover{
-	background-color:#151516;
-	box-shadow: 0 0 2px #000000;
-}
-
-
-
-
-#dropbox .imageHolder:hover  .deleteFile,#dropbox .folderHolder:hover  .deleteFile{
-	display:block;
-}
-
-#dropbox .uploaded{
-	position: absolute;
-	top:0;
-	left:0;
-	height:100%;
-	width:100%;
-	background: url('../img/done.png') no-repeat center center;
-	z-index:1;
-	display: none;
-}
-
-#dropbox .preview.done .uploaded{
-	display: block;
-}
-
-
-.addOptions{
-	padding:3px;
-	margin:3px;
-	margin-top:7px;
-	font-size:10px;
-	color:#ffffff;
-	display:none;
-}
-
-.addOptions ul{
-	margin:0;
-	padding:0;
-}
-
-#dropbox .preview .addOptions li{
-	float:left;
-	margin: 0  5px 0  5px ;
-	background-color:transparent;
-
-	height:22px;
-	width:22px;
-}
-#dropbox .preview .addOptions li.optionZip{
-	background:url('../img/menuIcons.png') no-repeat scroll -157px 0px transparent;
-	width:20px
-}
-
-#dropbox .preview .addOptions .optionShare{
-	/*background: url('../img/optionShare.png') no-repeat center center rgba(255,255,255,0.5);*/
-	background:url('../img/menuIcons.png') no-repeat scroll -114px 0px transparent;
-	width:20px
-}
-
-#dropbox .preview .addOptions .optionEdit{
-	/*background: url('../img/optionEdit.png') no-repeat center center rgba(255,255,255,0.5);*/
-	background:url('../img/menuIcons.png') no-repeat scroll -177px 0px transparent;
-	width:20px
-}
-
-#dropbox .preview .addOptions .optionUrl{
-	/*background: url('../img/optionUrl.png') no-repeat center center rgba(255,255,255,0.5);*/
-	background:url('../img/menuIcons.png') no-repeat scroll -60px 0px transparent;
-	width:20px
-}
-
-#dropbox .preview .addOptions .optionDropbox{
-	/*background: url('../img/optionDropbox.png') no-repeat center center rgba(255,255,255,0.5);*/
-	background:url('../img/menuIcons.png') no-repeat scroll -96px 0px transparent;
-	width:20px
-}
-
-
-.preview .fileNameArea{
-	padding:5px;
-	margin:5px;
-	font-size:11px;
-	color:#ffffff;
-	background-color:#0F0F0F;
-	box-shadow:0 0 2px #000;
-	border:none;
-
-}
-
-.fileName{
- display: block;
-    font-size: 11px;
-    min-height: 15px;
-    margin-top: 5px;
-    overflow: hidden;
-    padding-top: 5px;
-    width: 170px;
-
-}
-
-
-#dropbox .progressHolder{
-	position: relative;
-	background-color:#252f38;
-	height:10px;
-	width:100%;
-	left:0;
-	bottom: 0;
-	margin-left:5px;
-	box-shadow:0 0 2px #000;
-}
-
-#dropbox .progress{
-	position: absolute;
-	height:100%;
-	left:0;
-	width:0;
-	box-shadow: 0 0 1px rgba(255, 255, 255, 0.4) inset;
-	-moz-transition:0.25s;
-	-webkit-transition:0.25s;
-	-o-transition:0.25s;
-	transition:0.25s;
-	background: #1AD8F4;
-	background: -webkit-gradient(linear, 0 0, 0 bottom, from(#9ECD17), to(#046000));
-	background: -webkit-linear-gradient(#9ECD17, #046000) repeat scroll 0 0 transparent;
-	background: -moz-linear-gradient(#9ECD17, #046000) repeat scroll 0 0 transparent;
-	background: -ms-linear-gradient(#9ECD17, #046000) repeat scroll 0 0 transparent;
-	background: -o-linear-gradient(#9ECD17, #046000) repeat scroll 0 0 transparent;
-	background: linear-gradient(#9ECD17, #046000) repeat scroll 0 0 transparent;
-
-}
-
-#dropbox .preview.done .progress{
-	width:100% !important;
-}
-
-.hidden{
-	display:none;
-}
-
-.fileUrl{
-	display:none;
-}
-
-.clear{
-	clear:both;
-}
-
-.tooltip {
-	opacity:0.8;
-	z-index:1000;
-	text-align:left;
-	border-radius:4px;
-	-moz-border-radius:4px;
-	-webkit-border-radius:4px;
-	padding:8px 8px;
-	max-width:200px;
-	color:#fff;
-	background-color:#000;
-}
-.tooltip .tip-inner {
-	font:bold 11px/14px 'Lucida Grande',sans-serif;
-}
-
-
-.tooltip .tip-arrow-top {
-	margin-top:-5px;
-	margin-left:-5px; 
-	top:0;
-	left:50%;
-	width:9px;
-	height:5px;
-	background:url(../img/toolTips.gif) no-repeat;
-}
-.tooltip .tip-arrow-right {
-	margin-top:-4px; 
-	margin-left:0;
-	top:50%;
-	left:100%;
-	width:5px;
-	height:9px;
-	background:url(../img/toolTips.gif) no-repeat -9px 0;
-}
-.tooltip .tip-arrow-bottom {
-	margin-top:0;
-	margin-left:-5px; 
-	top:100%;
-	left:50%;
-	width:9px;
-	height:5px;
-	background:url(../img/toolTips.gif) no-repeat -18px 0;
-}
-.tooltip .tip-arrow-left {
-	margin-top:-4px; 
-	margin-left:-5px;
-	top:50%;
-	left:0;
-	width:5px;
-	height:9px;
-	background:url(../img/toolTips.gif) no-repeat -27px 0;
-}
-
-
-
-div#dropZone{
-    width:90px;
-    height:90px;
-    cursor:pointer;
-    overflow: hidden;
-    float:left;
-    background: url("../img/uploadButton.png") no-repeat scroll 0 0 transparent;
-    cursor: pointer;
-}
-
-div#dropZone div,div#dropZone input{
-	cursor: pointer;
-}
-
-#uploadButton{
-    cursor: pointer;
-    margin: 0;
-    opacity: 0;
-    height: 90px;
-    width:90px;
-    font-size:110px;
-    background-color: transparent;
-    border:none;
-}
-
-
-.left{
-	float:left;
-}
-
-
-
-
-body >div.popwrap{position:fixed;padding:10px}.top-right{top:0;right:0}
-.popup{
-	border-radius:5px;
-	width:200px;
-	-moz-border-radius:7px;
-	-webkit-border-radius:7px;
-	background-color:#161616;
-	padding:10px;
-	display:block;
-	margin-bottom:5px
-}
-.close{
-	display:none;
-	float:right;
-	cursor:pointer;
-	color:#EFEFEF;
-	font:bold 12px Tahoma,Arial,Helvetica,sans-serif
-	background:url('../img/icons.png') no-repeat scroll 0 0 transparent;
-	background-position:-301px -155px;
-	width:20px;
-	height:20px;
-}
-
-
-
-
-.poptext{clear:both;font:12px Lucida Grande,Lucida Sans Unicode,Geneva,Verdana,sans-serif;word-wrap:break-word;color:#FEFEFE;line-height:120%}

+ 0 - 49
sources/tpl/UnderBlack/footer.html

@@ -1,49 +0,0 @@
-<!--é-->
-		<!--***************-->
-		<!-- [TOUS] FOOTER -->
-		<!--***************-->
-
-<footer> 
-{function="t( "CopyrightFooter", array(DC_TITLE,DC_VERSION,DC_NAME,DC_WEBSITE,DC_LICENCE) )"}
-
- 	{function="t('% fichiers disponibles pour un poids total de %',array($fileNumber,convertSize($totalSize)))"}
-	</span>
-
-	{if="isset($user)"} 
-		{function="t(' - Taille maximale par fichier : %.',array (convertSize(getUploadSize())))"}
-	{/if}
-
-
-	
-	{if="$FORTUNE"}<br/><br/>{function="chuckQuote()"}<br/><br/>{/if}
-	
-
-</footer>
-
-
-		<!--*******************-->
-		<!-- [TOUS] JAVASCRIPT -->
-		<!--*******************-->
-
-<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
-<script type="text/javascript" src="js/jquery-ui-1.10.1.custom.min.js"></script>
-<script type="text/javascript" src="js/jquery-migrate-1.0.0.js"></script>
-
-<script type="text/javascript" src="js/jquery.fileupload.js"></script>
-<script type="text/javascript" src="js/jquery.iframe-transport.js"></script>
-
-<script type="text/javascript" src="js/jquery.poshytip.min.js"></script>
-
-<script type="text/javascript" src="js/main.js"></script>
-<script type="text/javascript" src="js/tinypop.min.js"></script>
-<span id="scriptRoot" class="hidden">{function="getConfig('ROOT')"} </span>
-{if="isset($user) && $user->rank=='admin' && $DISPLAY_UPDATE"}
-<script type="text/javascript" src="http://dropCenter.fr/wp-content/maj/maj.php"></script>
-{/if}
-
-{if="isset($error)"}
-			<script type="text/javascript">  TINYPOP.show("{$error}", {position: 'top-right',timeout: 3000,sticky: false});</script>
-{/if}
-
-</body>
-</html>

+ 0 - 24
sources/tpl/UnderBlack/header.html

@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<!--[if lt IE 7 ]><html lang="fr" class="no-js ie6"><![endif]-->
-<!--[if IE 7 ]><html lang="fr" class="no-js ie7"><![endif]-->
-<!--[if IE 8 ]><html lang="fr" class="no-js ie8"><![endif]-->
-<!--[if IE 9 ]><html lang="fr class="no-js ie9"><![endif]-->
-<!--[if (gt IE 9)|!(IE)]><!--><html lang="fr" class="no-js"><!--<![endif]-->
-<!--é-->
-<head>
-	<title>{$DC_TITLE}</title>
-	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-	<link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
-	<link rel="stylesheet" href="css/styles.css" />
-	<link rel="alternate" type="application/rss+xml"href="php/action.php?action=rss" title="<?php t("Flux RSS");?>" />
-	<!--[if lt IE  9]>
-		<script src="js/html5.js"></script>
-	<![endif]-->
-	<script src="js/modernizr-2.5.3.min.js"></script>
-</head>
-	<body onbeforeunload ="checkPendingTask();">
-		<header>
-		<section id="versionBloc"></section>
-		
-		</header>

BIN
sources/tpl/UnderBlack/img/background_tile_2.jpg


BIN
sources/tpl/UnderBlack/img/background_tile_3.jpg


BIN
sources/tpl/UnderBlack/img/defaultAvatar.png


BIN
sources/tpl/UnderBlack/img/discussIcon.png


BIN
sources/tpl/UnderBlack/img/done.png


BIN
sources/tpl/UnderBlack/img/eventIcon.png


BIN
sources/tpl/UnderBlack/img/extension/archive.png


BIN
sources/tpl/UnderBlack/img/extension/audio.png


BIN
sources/tpl/UnderBlack/img/extension/authors.png


BIN
sources/tpl/UnderBlack/img/extension/bin.png


BIN
sources/tpl/UnderBlack/img/extension/blank.png


BIN
sources/tpl/UnderBlack/img/extension/bmp.png


BIN
sources/tpl/UnderBlack/img/extension/c.png


BIN
sources/tpl/UnderBlack/img/extension/calc.png


BIN
sources/tpl/UnderBlack/img/extension/cd.png


BIN
sources/tpl/UnderBlack/img/extension/copying.png


BIN
sources/tpl/UnderBlack/img/extension/cpp.png


BIN
sources/tpl/UnderBlack/img/extension/css.png


BIN
sources/tpl/UnderBlack/img/extension/deb.png


BIN
sources/tpl/UnderBlack/img/extension/default.png


BIN
sources/tpl/UnderBlack/img/extension/doc.png


BIN
sources/tpl/UnderBlack/img/extension/draw.png


BIN
sources/tpl/UnderBlack/img/extension/eps.png


BIN
sources/tpl/UnderBlack/img/extension/exe.png


BIN
sources/tpl/UnderBlack/img/extension/folder-home.png


BIN
sources/tpl/UnderBlack/img/extension/folder-open.png


BIN
sources/tpl/UnderBlack/img/extension/folder-page.png


BIN
sources/tpl/UnderBlack/img/extension/folder-parent.png


BIN
sources/tpl/UnderBlack/img/extension/gif.png


BIN
sources/tpl/UnderBlack/img/extension/gzip.png


BIN
sources/tpl/UnderBlack/img/extension/h.png


BIN
sources/tpl/UnderBlack/img/extension/hpp.png


BIN
sources/tpl/UnderBlack/img/extension/html.png


BIN
sources/tpl/UnderBlack/img/extension/ico.png


BIN
sources/tpl/UnderBlack/img/extension/image.png


BIN
sources/tpl/UnderBlack/img/extension/install.png


BIN
sources/tpl/UnderBlack/img/extension/java.png


BIN
sources/tpl/UnderBlack/img/extension/jpg.png


BIN
sources/tpl/UnderBlack/img/extension/js.png


BIN
sources/tpl/UnderBlack/img/extension/log.png


BIN
sources/tpl/UnderBlack/img/extension/makefile.png


BIN
sources/tpl/UnderBlack/img/extension/package.png


BIN
sources/tpl/UnderBlack/img/extension/pdf.png


BIN
sources/tpl/UnderBlack/img/extension/php.png


BIN
sources/tpl/UnderBlack/img/extension/playlist.png


BIN
sources/tpl/UnderBlack/img/extension/png.png


BIN
sources/tpl/UnderBlack/img/extension/pres.png


BIN
sources/tpl/UnderBlack/img/extension/psd.png


BIN
sources/tpl/UnderBlack/img/extension/py.png


BIN
sources/tpl/UnderBlack/img/extension/rar.png


BIN
sources/tpl/UnderBlack/img/extension/rb.png


BIN
sources/tpl/UnderBlack/img/extension/readme.png


BIN
sources/tpl/UnderBlack/img/extension/rpm.png


BIN
sources/tpl/UnderBlack/img/extension/rss.png


BIN
sources/tpl/UnderBlack/img/extension/rtf.png


BIN
sources/tpl/UnderBlack/img/extension/script.png


BIN
sources/tpl/UnderBlack/img/extension/source.png


BIN
sources/tpl/UnderBlack/img/extension/sql.png


BIN
sources/tpl/UnderBlack/img/extension/tar.png


BIN
sources/tpl/UnderBlack/img/extension/tex.png


BIN
sources/tpl/UnderBlack/img/extension/tiff.png


BIN
sources/tpl/UnderBlack/img/extension/txt.png


BIN
sources/tpl/UnderBlack/img/extension/unknown.png


BIN
sources/tpl/UnderBlack/img/extension/vcal.png


BIN
sources/tpl/UnderBlack/img/extension/video.png


BIN
sources/tpl/UnderBlack/img/extension/xml.png


BIN
sources/tpl/UnderBlack/img/extension/zip.png


BIN
sources/tpl/UnderBlack/img/giant-logo.png


BIN
sources/tpl/UnderBlack/img/homeIcon.png


BIN
sources/tpl/UnderBlack/img/icons.png


BIN
sources/tpl/UnderBlack/img/logo.png


BIN
sources/tpl/UnderBlack/img/menuIcons.png


BIN
sources/tpl/UnderBlack/img/preloader.gif


BIN
sources/tpl/UnderBlack/img/toolTips.gif


BIN
sources/tpl/UnderBlack/img/uploadButton.png


+ 0 - 0
sources/tpl/UnderBlack/index.html


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