mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-21 00:25:50 +00:00
www/encode-explorer: update to 6.3
- Remove leading article from COMMENT PR: 190877 Submitted by: maintainer
This commit is contained in:
parent
e88f73c0a6
commit
e825b46827
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=363769
@ -2,22 +2,21 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= encode
|
||||
PORTVERSION= 5.0
|
||||
PORTVERSION= 6.3
|
||||
CATEGORIES= www
|
||||
MASTER_SITES= SF/${PORTNAME}${PKGNAMESUFFIX}/${PORTNAME}${PKGNAMESUFFIX}/${PORTNAME}${PKGNAMESUFFIX}_${PORTVERSION}
|
||||
PKGNAMESUFFIX= -explorer
|
||||
DISTNAME= ${PORTNAME}${PKGNAMESUFFIX}_${PORTVERSION}
|
||||
|
||||
MAINTAINER= fw@moov.de
|
||||
COMMENT= A PHP script to browse, create folders, upload files etc
|
||||
COMMENT= PHP script to browse, create folders, upload files etc
|
||||
|
||||
USE_PHP= yes
|
||||
WANT_PHP_WEB= yes
|
||||
USES= zip
|
||||
NO_BUILD= yes
|
||||
|
||||
OPTIONS_DEFINE= EXPERIMENTAL DOCS
|
||||
EXPERIMENTAL_DESC= Experimental features
|
||||
OPTIONS_DEFINE= DOCS
|
||||
|
||||
WRKSRC= ${WRKDIR}/${DISTNAME}
|
||||
WWWDIR= ${PREFIX}/www/${PORTNAME}${PKGNAMESUFFIX}
|
||||
@ -25,15 +24,9 @@ DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX}
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
.if ${PORT_OPTIONS:MEXPERIMENTAL}
|
||||
EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-index-php-experimental
|
||||
.endif
|
||||
|
||||
do-install:
|
||||
${MKDIR} ${STAGEDIR}${WWWDIR}
|
||||
${INSTALL} ${WRKSRC}/index.php ${STAGEDIR}${WWWDIR}
|
||||
|
||||
post-install:
|
||||
${MKDIR} ${STAGEDIR}${DOCSDIR}
|
||||
${CP} ${WRKSRC}/README.txt ${STAGEDIR}${DOCSDIR}
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (encode-explorer_5.0.zip) = f4e2dc6a13567dc418c32e00fe9b2e9ee9b9e419264d8714ef52da158c9895a3
|
||||
SIZE (encode-explorer_5.0.zip) = 14939
|
||||
SHA256 (encode-explorer_6.3.zip) = ad7e33c2cfee2735d89f250de42c51ef8e937ab56ca07031a21ac96936bff36a
|
||||
SIZE (encode-explorer_6.3.zip) = 39669
|
||||
|
@ -1,753 +0,0 @@
|
||||
--- index.php.orig 2009-09-27 14:58:56.000000000 +0200
|
||||
+++ index.php 2010-05-11 15:34:57.000000000 +0200
|
||||
@@ -90,6 +90,11 @@
|
||||
$_CONFIG['max_space'] = 25600;
|
||||
|
||||
//
|
||||
+// Activate disk space usage? Default: 1
|
||||
+//
|
||||
+$_CONFIG['status_enable'] = 0;
|
||||
+
|
||||
+//
|
||||
// Kui sügavalt alamkataloogidest suurust näitav script faile otsib? Vaikimisi: 3
|
||||
//
|
||||
// How deep in subfilders will the script search for files? Default: 3
|
||||
@@ -126,19 +131,48 @@
|
||||
//
|
||||
// Filenames that will be hidden from the list.
|
||||
//
|
||||
-$_CONFIG['hidden_files'] = array(".ftpquota", "index.php", "index.php~", ".htaccess", ".htpasswd");
|
||||
+$_CONFIG['hidden_files'] = array(".ftpquota", ".htaccess", ".htpasswd");
|
||||
+
|
||||
+//
|
||||
+// Send e-mail on new file uploads. The e-mail contains the path, name
|
||||
+// and download URL for the new file. Default: off
|
||||
+//
|
||||
+$_CONFIG['notify_enable'] = 0;
|
||||
+
|
||||
+//
|
||||
+// From: and Reply-To: address for the mail notification.
|
||||
+// Default: webmaster@example.com
|
||||
+//
|
||||
+$_CONFIG['notify_sender'] = 'webmaster@example.com';
|
||||
+
|
||||
+//
|
||||
+// E-Mail addresses that will be notified on file upload.
|
||||
+// Default: nobody@example.com
|
||||
+//
|
||||
+$_CONFIG['notify_addresses'] = array("nobody@example.com");
|
||||
|
||||
//
|
||||
// Parool failide uploadimiseks. Parooli märkimisega aktiviseerub ka uploadi võimalus.
|
||||
// NB! Failide upload ei tööta zone.ee tasuta serveris ja hot.ee serveris!
|
||||
// NB! Faile saab uploadida ainult kaustadesse, millele on eelnevalt antud vastavad õigused (chmod 777)
|
||||
//
|
||||
-// Password for uploading files. You need to set the password to activate uploading.
|
||||
-// To upload into a directory it has to have proper rights.
|
||||
+// Password for all write operations, e.g. uploading and deleting files.
|
||||
//
|
||||
$_CONFIG['upload_password'] = "";
|
||||
|
||||
//
|
||||
+// You need to enable this to activate uploading. Default: 0
|
||||
+// To upload into a directory it has to have proper rights.
|
||||
+//
|
||||
+$_CONFIG['upload_enable'] = 1;
|
||||
+
|
||||
+//
|
||||
+// You need to enable this to activate deleting. Default: 0
|
||||
+// To delete a file or directory it has to have proper rights.
|
||||
+//
|
||||
+$_CONFIG['delete_enable'] = 0;
|
||||
+
|
||||
+//
|
||||
// Asukoht serveris. Tavaliselt ei ole vaja siia midagi panna kuna script leiab ise õige asukoha.
|
||||
// Mõnes serveris tuleb piirangute tõttu see aadress ise teistsuguseks määrata.
|
||||
// See fail peaks asuma serveris aadressil [AADRESS]/index.php
|
||||
@@ -146,7 +180,14 @@
|
||||
//
|
||||
// Location in the server. Usually this does not have to be set manually.
|
||||
//
|
||||
-$_CONFIG['basedir'] = "";
|
||||
+$_CONFIG['basedir'] = "/home";
|
||||
+
|
||||
+
|
||||
+//
|
||||
+// Enable configuration changes from environment variables? Default: 1
|
||||
+// Set EEXPLORER_ and add the name of the config option to overwrite values.
|
||||
+//
|
||||
+$_CONFIG['enable_dynamic_config'] = 1;
|
||||
|
||||
|
||||
/***************************************************************************/
|
||||
@@ -185,16 +226,30 @@
|
||||
"total_used_space" => "Benutzter Speicher",
|
||||
"free_space" => "Freier Speicher",
|
||||
"password" => "Passwort",
|
||||
- "upload" => "Upload",
|
||||
- "failed_upload" => "Upload ist fehlgeschlagen!",
|
||||
+ "upload" => "Hochladen",
|
||||
+ "delete" => "Löschen",
|
||||
+ "failed_upload" => "Hochladen ist fehlgeschlagen!",
|
||||
+ "failed_upload_size" => "Datei ist zu groß!",
|
||||
"failed_move" => "Verschieben der Datei ist fehlgeschlagen!",
|
||||
"wrong_password" => "Falsches Passwort",
|
||||
"make_directory" => "Neuer Ordner",
|
||||
+ "notify_subject" => "Neue Datei wurde hochgeladen",
|
||||
+ "notify_text" => "Die folgende Datei wurde soeben hochgeladen:",
|
||||
+ "notify_file" => "Datei:",
|
||||
+ "notify_no_url" => "Datei nicht abrufbar (außerhalb vom DocumentRoot)",
|
||||
+ "notify_path" => "Pfad:",
|
||||
+ "notify_server" => "Server:",
|
||||
+ "notify_url" => "URL:",
|
||||
"new_dir_failed" => "Erstellen des Ordners fehlgeschlagen",
|
||||
+ "del_dir_failed" => "Löschen des Ordners fehlgeschlagen",
|
||||
+ "write_dir_denied" => "Der Ordner ist nicht schreibbar.",
|
||||
+ "dir_exists" => "Den Ordner gibt es bereits.",
|
||||
+ "write_file_denied" => "Die Datei ist nicht schreibbar.",
|
||||
+ "del_file_failed" => "Löschen der Datei fehlgeschlagen",
|
||||
"chmod_dir_failed" => "Veränderung der Zugriffsrechte des Ordners fehlgeschlagen",
|
||||
- "unable_to_read_dir" => "Unable to read directory",
|
||||
+ "unable_to_read_dir" => "Verzeichnis kann nicht gelesen werden",
|
||||
"location" => "Location",
|
||||
- "root" => "Root"
|
||||
+ "root" => "Start"
|
||||
);
|
||||
|
||||
// Greek
|
||||
@@ -226,11 +281,25 @@
|
||||
"free_space" => "Free space",
|
||||
"password" => "Password",
|
||||
"upload" => "Upload",
|
||||
+ "delete" => "Delete",
|
||||
"failed_upload" => "Failed to upload the file!",
|
||||
+ "failed_upload_size" => "File size exceeds limits!",
|
||||
"failed_move" => "Failed to move the file into the right directory!",
|
||||
"wrong_password" => "Wrong password",
|
||||
"make_directory" => "New dir",
|
||||
+ "notify_subject" => "New file upload",
|
||||
+ "notify_text" => "The following new file was uploaded:",
|
||||
+ "notify_file" => "File:",
|
||||
+ "notify_no_url" => "file not accessible (outside of DocumentRoot)",
|
||||
+ "notify_path" => "Path:",
|
||||
+ "notify_server" => "Server:",
|
||||
+ "notify_url" => "URL:",
|
||||
"new_dir_failed" => "Failed to create directory",
|
||||
+ "del_dir_failed" => "Failed to delete directory",
|
||||
+ "write_dir_denied" => "Directory is not writable.",
|
||||
+ "dir_exists" => "Directory already exists.",
|
||||
+ "write_file_denied" => "File is not writable.",
|
||||
+ "del_file_failed" => "Failed to delete file",
|
||||
"chmod_dir_failed" => "Failed to change directory rights",
|
||||
"unable_to_read_dir" => "Unable to read directory",
|
||||
"location" => "Location",
|
||||
@@ -554,10 +623,17 @@
|
||||
|
||||
#upload div.password {
|
||||
float:left;
|
||||
+ margin-top: 4px;
|
||||
}
|
||||
|
||||
#upload div.upload {
|
||||
float:right;
|
||||
+ margin-top: 2px;
|
||||
+}
|
||||
+
|
||||
+#upload div.delete {
|
||||
+ float:left;
|
||||
+ margin-top: 4px;
|
||||
}
|
||||
|
||||
#info {
|
||||
@@ -567,6 +643,7 @@
|
||||
width:680px;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
+ margin-top: 4px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
@@ -750,6 +827,100 @@
|
||||
return ($a->modTime - $b->modTime);
|
||||
}
|
||||
|
||||
+function is_empty_dir($dir)
|
||||
+{
|
||||
+ if (($files = @scandir($dir)) && count($files) <= 2)
|
||||
+ {
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+// Delete a file or recursively delete a directory
|
||||
+// @param string $str Path to file or directory
|
||||
+function recursive_delete($str)
|
||||
+{
|
||||
+ if(is_file($str))
|
||||
+ {
|
||||
+ return @unlink($str);
|
||||
+ }
|
||||
+ elseif(is_dir($str))
|
||||
+ {
|
||||
+ $scan = glob(rtrim($str,'/').'/*');
|
||||
+ foreach($scan as $index=>$path)
|
||||
+ {
|
||||
+ recursive_delete($path);
|
||||
+ }
|
||||
+ return @rmdir($str);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+// Send e-mail with the path and download-URL for an uploaded file.
|
||||
+function send_mail($path,$file)
|
||||
+{
|
||||
+ global $_CONFIG;
|
||||
+ global $_LANG;
|
||||
+
|
||||
+ // send a separate mail for every receipient for privacy reasons
|
||||
+ foreach($_CONFIG['notify_addresses'] as $receipient)
|
||||
+ {
|
||||
+ $to = $receipient;
|
||||
+ $subject = $_LANG['notify_subject'];
|
||||
+
|
||||
+ $protocol = explode("/", $_SERVER['SERVER_PROTOCOL']);
|
||||
+ $protocol = strtolower($protocol[0]);
|
||||
+
|
||||
+ // check if file was uploaded within DOCUMENT_ROOT
|
||||
+ $docroot = '/' . preg_quote($_SERVER['DOCUMENT_ROOT'],'/') . '/';
|
||||
+ $path = str_replace('/./','/',$path);
|
||||
+ if ( preg_match("$docroot","$path") )
|
||||
+ {
|
||||
+ // file is accessible, compose URL
|
||||
+ $docroot = str_replace($_SERVER['DOCUMENT_ROOT'], "", $path);
|
||||
+ $docroot = rawurlencode($docroot);
|
||||
+ $docroot = str_replace('%2F','/',$docroot);
|
||||
+ $url = $protocol . "://" . $_SERVER['SERVER_NAME'] . $docroot . rawurlencode($file);
|
||||
+ } else {
|
||||
+ // file not accessible
|
||||
+ $url = $_LANG['notify_no_url'];
|
||||
+ }
|
||||
+
|
||||
+ $message = $_LANG["notify_text"] . "\r\n" .
|
||||
+ "\r\n" .
|
||||
+ $_LANG["notify_file"] . ' ' . $file . "\r\n" .
|
||||
+ $_LANG["notify_path"] . ' ' . $path . "\r\n" .
|
||||
+ $_LANG["notify_server"] . ' ' . $_SERVER['SERVER_NAME'] . "\r\n" .
|
||||
+ "\r\n" .
|
||||
+ $_LANG["notify_url"] . ' ' . $url . "\r\n" .
|
||||
+ "\r\n" .
|
||||
+ "\r\n" .
|
||||
+ "Encode Explorer" . "\r\n" .
|
||||
+ "\r\n";
|
||||
+
|
||||
+ $headers = 'From: ' . $_CONFIG['notify_sender'] . "\r\n" .
|
||||
+ 'Reply-To: ' . $_CONFIG['notify_sender'] . "\r\n" .
|
||||
+ 'Content-type: text/plain; charset=' . $_CONFIG['charset'] . "\r\n" .
|
||||
+ 'MIME-Version: 1.0' . "\r\n" .
|
||||
+ 'X-Mailer: Encode Explorer';
|
||||
+
|
||||
+ mail($to, $subject, $message, $headers);
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
+
|
||||
+function check_post_size()
|
||||
+{
|
||||
+ $POST_MAX_SIZE = ini_get('post_max_size');
|
||||
+ $mul = substr($POST_MAX_SIZE, -1);
|
||||
+ $mul = ($mul == 'M' ? 1048576 : ($mul == 'K' ? 1024 : ($mul == 'G' ? 1073741824 : 1)));
|
||||
+
|
||||
+ if ($_SERVER['CONTENT_LENGTH'] > $mul*(int)$POST_MAX_SIZE && $POST_MAX_SIZE)
|
||||
+ {
|
||||
+ return false;
|
||||
+ }
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
//
|
||||
// The class that displays images (icons)
|
||||
//
|
||||
@@ -779,14 +950,22 @@
|
||||
//
|
||||
class FileManager
|
||||
{
|
||||
- function checkPassword($inputPassword)
|
||||
+ function checkPassword($inputPassword,$alwaysFail = '0')
|
||||
{
|
||||
global $_CONFIG;
|
||||
global $_ERROR;
|
||||
global $_LANG;
|
||||
|
||||
+ // check if the result of the evaluation should always be FALSE
|
||||
+ if($alwaysFail == 1)
|
||||
+ {
|
||||
+ $_ERROR = $_LANG["wrong_password"];
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
if(strlen($_CONFIG['upload_password']) > 0 && $inputPassword == $_CONFIG['upload_password'])
|
||||
{
|
||||
+ $_ERROR = $_LANG["success"];
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -806,10 +985,71 @@
|
||||
$forbidden = array(".", "/", "\\");
|
||||
for($i = 0; $i < count($forbidden); $i++)
|
||||
$dirname = str_replace($forbidden[$i], "", $dirname);
|
||||
- if(!mkdir($location->getDir(true, false, 0).$dirname, 0777))
|
||||
- $_ERROR = $_LANG["new_dir_failed"];
|
||||
- else if(!chmod($location->getDir(true, false, 0).$dirname, 0777))
|
||||
- $error = $_LANG["chmod_dir_failed"];
|
||||
+ // check if directory already exists
|
||||
+ if (file_exists($location->getFullPath().$dirname))
|
||||
+ {
|
||||
+ $_ERROR = $_LANG["dir_exists"];
|
||||
+ } else {
|
||||
+ // check if directory is writable
|
||||
+ if(!is_writable($location->getFullPath()))
|
||||
+ {
|
||||
+ $_ERROR = $_LANG["write_dir_denied"];
|
||||
+ } else {
|
||||
+ if(!mkdir($location->getFullPath().$dirname, 0777))
|
||||
+ $_ERROR = $_LANG["new_dir_failed"];
|
||||
+ else if(!chmod($location->getFullPath().$dirname, 0777))
|
||||
+ $error = $_LANG["chmod_dir_failed"];
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ function deleteOnServer($location, $deletelist)
|
||||
+ {
|
||||
+ global $_ERROR;
|
||||
+ global $_LANG;
|
||||
+
|
||||
+ if(count($deletelist) > 0)
|
||||
+ {
|
||||
+ foreach ($deletelist as $deleteitem)
|
||||
+ {
|
||||
+ $deleteitem = urldecode($deleteitem);
|
||||
+ $deleteitem = htmlspecialchars_decode($deleteitem);
|
||||
+
|
||||
+ // check if it is a file
|
||||
+ if (is_file($deleteitem))
|
||||
+ {
|
||||
+ // check if file is writable
|
||||
+ if(!is_writable($location->getFullPath()))
|
||||
+ {
|
||||
+ $_ERROR = $_LANG["write_file_denied"];
|
||||
+ } else {
|
||||
+ if(!unlink($deleteitem))
|
||||
+ $_ERROR = $_LANG["del_file_failed"];
|
||||
+ }
|
||||
+ }
|
||||
+ // it is a directory
|
||||
+ else
|
||||
+ {
|
||||
+ // check if file is writable
|
||||
+ if(!is_writable($location->getFullPath()))
|
||||
+ {
|
||||
+ $_ERROR = $_LANG["write_dir_denied"];
|
||||
+ } else {
|
||||
+ // check if directory is empty
|
||||
+ if(!is_empty_dir($deleteitem))
|
||||
+ {
|
||||
+ // recursively delete directory
|
||||
+ if(!recursive_delete($deleteitem))
|
||||
+ $_ERROR = $_LANG["del_dir_failed"];
|
||||
+ }
|
||||
+ else {
|
||||
+ if(!rmdir($deleteitem))
|
||||
+ $_ERROR = $_LANG["del_dir_failed"];
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -819,6 +1059,13 @@
|
||||
global $_ERROR;
|
||||
global $_LANG;
|
||||
|
||||
+ if(!check_post_size())
|
||||
+ {
|
||||
+ $_ERROR = $_LANG["failed_upload_size"];
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+
|
||||
$name = basename($userfile['name']);
|
||||
if(get_magic_quotes_gpc())
|
||||
$name = stripslashes($name);
|
||||
@@ -826,16 +1073,29 @@
|
||||
$upload_dir = $location->getFullPath();
|
||||
$upload_file = $upload_dir . $name;
|
||||
|
||||
- if(!is_uploaded_file($userfile['tmp_name']))
|
||||
+ // check if directory is writable
|
||||
+ if(!is_writable($location->getFullPath()))
|
||||
{
|
||||
- $_ERROR = $_LANG["failed_upload"];
|
||||
- }
|
||||
- else if(!@move_uploaded_file($userfile['tmp_name'], $upload_file))
|
||||
+ $_ERROR = $_LANG["write_dir_denied"];
|
||||
+ } else
|
||||
{
|
||||
- $_ERROR = $_LANG["failed_move"];
|
||||
+ if(!is_uploaded_file($userfile['tmp_name']))
|
||||
+ {
|
||||
+ $_ERROR = $_LANG["failed_upload"];
|
||||
+ }
|
||||
+ else if(!@move_uploaded_file($userfile['tmp_name'], $upload_file))
|
||||
+ {
|
||||
+ $_ERROR = $_LANG["failed_move"];
|
||||
+ }
|
||||
+ else
|
||||
+ chmod($upload_file, 0755);
|
||||
+ // check if mail notification is enabled
|
||||
+ if ($_CONFIG['notify_enable'] == 1)
|
||||
+ {
|
||||
+ send_mail($location->getFullPath(), $name);
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
- else
|
||||
- chmod($upload_file, 0755);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -843,12 +1103,52 @@
|
||||
//
|
||||
function run($location)
|
||||
{
|
||||
- if(isset($_POST['password']) && $this->checkPassword($_POST['password']))
|
||||
+ global $_CONFIG;
|
||||
+ global $_ERROR;
|
||||
+ global $_LANG;
|
||||
+
|
||||
+ // check if the file size exceeds PHP limits
|
||||
+ if ($_SERVER['REQUEST_METHOD'] == 'POST' && empty($_POST) && $_SERVER['CONTENT_LENGTH'] > 0)
|
||||
{
|
||||
- if(isset($_POST['userdir']) && strlen($_POST['userdir']) > 0)
|
||||
- $this->newFolder($location, $_POST['userdir']);
|
||||
- if(isset($_FILES['userfile']['name']) && strlen($_FILES['userfile']['name']) > 0)
|
||||
- $this->uploadFile($location, $_FILES['userfile']);
|
||||
+ $_ERROR = $_LANG["failed_upload_size"];
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+
|
||||
+ // This takes care of the following:
|
||||
+ // - check if upload is enabled
|
||||
+ // - check if delete is enabled
|
||||
+ // - check if a password is needed
|
||||
+ // - validate passwords
|
||||
+ // - check for empty passwords
|
||||
+ // - show error on empty or wrong passwords
|
||||
+ if ( (strlen($_CONFIG['upload_password']) == 0) ||
|
||||
+ (
|
||||
+ (strlen($_CONFIG['upload_password']) > 0) &&
|
||||
+ (
|
||||
+ ((isset($_POST['password'])) && $this->checkPassword($_POST['password'])) ||
|
||||
+ (
|
||||
+ (
|
||||
+ (empty($_POST['password'])) &&
|
||||
+ ((count($_POST['directorylist']) > 0) || (count($_POST['filelist']) > 0) || (strlen($_POST['userdir']) > 0))
|
||||
+ ) &&
|
||||
+ $this->checkPassword($_POST['password'],1)
|
||||
+ )
|
||||
+ )
|
||||
+ )
|
||||
+ )
|
||||
+ {
|
||||
+ // new folder
|
||||
+ if($_CONFIG['upload_enable'] == 1 && isset($_POST['userdir']) && strlen($_POST['userdir']) > 0)
|
||||
+ $this->newFolder($location, $_POST['userdir']);
|
||||
+ // delete
|
||||
+ if($_CONFIG['delete_enable'] == 1 && (isset($_POST['directorylist']) && count($_POST['directorylist']) > 0) || (isset($_POST['filelist']) && count($_POST['filelist']) > 0))
|
||||
+ $this->deleteOnServer($location, $_POST['directorylist']);
|
||||
+ $this->deleteOnServer($location, $_POST['filelist']);
|
||||
+ // upload
|
||||
+ if($_CONFIG['upload_enable'] == 1 && isset($_FILES['userfile']['name']) && strlen($_FILES['userfile']['name']) > 0)
|
||||
+ $this->uploadFile($location, $_FILES['userfile']);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -880,6 +1180,11 @@
|
||||
return urlencode($this->name);
|
||||
}
|
||||
|
||||
+ function getNameDecoded()
|
||||
+ {
|
||||
+ return htmlspecialchars_decode($this->name);
|
||||
+ }
|
||||
+
|
||||
//
|
||||
// Debugging output
|
||||
//
|
||||
@@ -909,9 +1214,9 @@
|
||||
$this->name = htmlspecialchars($name);
|
||||
$this->location = $location;
|
||||
|
||||
- $this->extension = $this->findExtension($this->location->getDir(true, false, 0).$this->getName());
|
||||
- $this->size = $this->findSize($this->location->getDir(true, false, 0).$this->getName());
|
||||
- $this->modTime = filemtime($this->location->getDir(true, false, 0).$this->getName());
|
||||
+ $this->extension = $this->findExtension($this->location->getFullPath().$this->getName());
|
||||
+ $this->size = $this->findSize($this->location->getFullPath().$this->getNameDecoded());
|
||||
+ $this->modTime = filemtime($this->location->getFullPath().$this->getNameDecoded());
|
||||
}
|
||||
|
||||
function getName()
|
||||
@@ -924,6 +1229,11 @@
|
||||
return urlencode($this->name);
|
||||
}
|
||||
|
||||
+ function getNameDecoded()
|
||||
+ {
|
||||
+ return htmlspecialchars_decode($this->name);
|
||||
+ }
|
||||
+
|
||||
function getSize()
|
||||
{
|
||||
return $this->size;
|
||||
@@ -944,7 +1254,7 @@
|
||||
//
|
||||
function findSize($file)
|
||||
{
|
||||
- $sizeInBytes = filesize($file);
|
||||
+ $sizeInBytes = filesize("$file");
|
||||
|
||||
// If filesize() fails (with larger files), try to get the size from unix command line.
|
||||
if (!$sizeInBytes) {
|
||||
@@ -1006,13 +1316,14 @@
|
||||
$dir .= "./";
|
||||
for($i = 0; $i < ((count($this->path) >= $up && $up > 0)?count($this->path)-$up:count($this->path)); $i++)
|
||||
{
|
||||
- $dir .= ($encoded?rawurlencode($this->path[$i]):$this->path[$i])."/";
|
||||
+ $dir .= ($encoded?rawurlencode($this->path[$i]):htmlspecialchars_decode($this->path[$i]))."/";
|
||||
}
|
||||
return $dir;
|
||||
}
|
||||
|
||||
function getFullPath()
|
||||
{
|
||||
+ global $_CONFIG;
|
||||
return ($_CONFIG['basedir']?$_CONFIG['basedir']:dirname($_SERVER['SCRIPT_FILENAME']))."/".$this->getDir(true, false, 0);
|
||||
}
|
||||
|
||||
@@ -1059,6 +1370,8 @@
|
||||
//
|
||||
function init()
|
||||
{
|
||||
+ global $_CONFIG;
|
||||
+
|
||||
$this->sort_by = "";
|
||||
$this->sort_as = "";
|
||||
if(isset($_GET["sort_by"]) && isset($_GET["sort_as"]))
|
||||
@@ -1076,7 +1389,10 @@
|
||||
$this->sort_as = "desc";
|
||||
}
|
||||
|
||||
- $this->calculateSpace();
|
||||
+ if ($_CONFIG['status_enable'] == 1)
|
||||
+ {
|
||||
+ $this->calculateSpace();
|
||||
+ }
|
||||
}
|
||||
|
||||
//
|
||||
@@ -1098,7 +1414,7 @@
|
||||
{
|
||||
if($object != "." && $object != "..")
|
||||
{
|
||||
- if(is_dir($this->location->getDir(true, false, 0)."/".$object))
|
||||
+ if(is_dir($this->location->getFullPath(true, false, 0)."/".$object))
|
||||
{
|
||||
if(!in_array($object, $_CONFIG['hidden_dirs']))
|
||||
$this->dirs[] = new Dir($object, $this->location);
|
||||
@@ -1281,6 +1597,15 @@
|
||||
}
|
||||
?>
|
||||
|
||||
+<?php
|
||||
+if($_CONFIG['delete_enable'] == 1 || $_CONFIG['upload_enable'] == 1)
|
||||
+{
|
||||
+?>
|
||||
+<form enctype="multipart/form-data" action="" method="post">
|
||||
+<?php
|
||||
+}
|
||||
+?>
|
||||
+
|
||||
<!-- START: List table -->
|
||||
<table class="table" border="0" cellpadding="3" cellspacing="0">
|
||||
<tr class="breadcrumbs">
|
||||
@@ -1299,11 +1624,13 @@
|
||||
</tr>
|
||||
<tr class="row one">
|
||||
<td class="icon"> </td>
|
||||
+ <td class="icon"> </td>
|
||||
<td class="name"><?php print $this->makeArrow("name");?></td>
|
||||
<td class="size"><?php print $this->makeArrow("size"); ?></td>
|
||||
<td class="changed"><?php print $this->makeArrow("mod"); ?></td>
|
||||
</tr>
|
||||
<tr class="row two">
|
||||
+ <td class="icon"> </td>
|
||||
<td class="icon"><img alt="dir" src="?img=directory" /></td>
|
||||
<td colspan="3" class="long"><a href="?dir=<?php print $this->location->getDir(false, true, 1); ?>">..</a></td>
|
||||
</tr>
|
||||
@@ -1323,6 +1650,7 @@
|
||||
$row_style = ($row ? "one" : "two");
|
||||
?>
|
||||
<tr class="row <?php print $row_style; ?>">
|
||||
+ <td class="icon"><?php if($_CONFIG['delete_enable'] == 1) { ?><input type="checkbox" name="directorylist[]" value="<?php print $this->location->getFullPath().$dir->getNameEncoded(); ?>"><?php } ?></td>
|
||||
<td class="icon"><img alt="dir" src="?img=directory" /></td>
|
||||
<td colspan="3" class="long"><?php print "<a href=\"?dir=".$this->location->getDir(false, true, 0).$dir->getNameEncoded()."\">".$dir->getName()."</a>"; ?></td>
|
||||
</tr>
|
||||
@@ -1341,6 +1669,7 @@
|
||||
$row_style = ($row ? "one" : "two");
|
||||
?>
|
||||
<tr class="row <?php echo $row_style; ?>">
|
||||
+ <td class="icon"><?php if($_CONFIG['delete_enable'] == 1) { ?><input type="checkbox" name="filelist[]" value="<?php print $this->location->getFullPath().$file->getNameEncoded(); ?>"><?php } ?></td>
|
||||
<td class="icon"><img alt="<?php print $file->getExtension(); ?>" src="<?php print $this->makeIcon($file->getExtension()); ?>" /></td>
|
||||
<td class="name">
|
||||
<?php
|
||||
@@ -1369,38 +1698,83 @@
|
||||
|
||||
</div>
|
||||
|
||||
+<!-- START: Action area -->
|
||||
+<div id="upload">
|
||||
+ <table cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
+ <tr>
|
||||
+ <td>
|
||||
+<!-- START: Delete area -->
|
||||
<?php
|
||||
-if(strlen($_CONFIG['upload_password']) > 0)
|
||||
+if($_CONFIG['delete_enable'] == 1)
|
||||
{
|
||||
?>
|
||||
+ <div class="delete">
|
||||
+ <input type="submit" value="<?php print $_LANG["delete"]; ?>" />
|
||||
+ </div>
|
||||
+<?php
|
||||
+}
|
||||
+?>
|
||||
+<!-- END: Delete area -->
|
||||
<!-- START: Upload area -->
|
||||
-<div id="upload">
|
||||
- <form enctype="multipart/form-data" action="" method="post">
|
||||
- <table cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
+<?php
|
||||
+if($_CONFIG['upload_enable'] == 1)
|
||||
+{
|
||||
+?>
|
||||
+ <div class="upload">
|
||||
+ <input name="userdir" type="text" class="text" />
|
||||
+ <input type="submit" value="<?php print $_LANG["make_directory"]; ?>" />
|
||||
+ </div>
|
||||
+<?php
|
||||
+}
|
||||
+?>
|
||||
+<!-- END: Upload area -->
|
||||
+ </td>
|
||||
+ </tr>
|
||||
<tr>
|
||||
<td>
|
||||
+<!-- START: Password area -->
|
||||
+<?php
|
||||
+if(strlen($_CONFIG['upload_password']) > 0 && ($_CONFIG['upload_enable'] == 1 || $_CONFIG['delete_enable'] == 1))
|
||||
+{
|
||||
+?>
|
||||
<div class="password">
|
||||
<?php print $_LANG["password"]; ?>: <input type="password" name="password" class="text" />
|
||||
</div>
|
||||
+<?php
|
||||
+}
|
||||
+?>
|
||||
+<!-- END: Password area -->
|
||||
+<!-- START: Upload area -->
|
||||
+<?php
|
||||
+if($_CONFIG['upload_enable'] == 1)
|
||||
+{
|
||||
+?>
|
||||
<div class="upload">
|
||||
- <input name="userdir" type="text" class="text" />
|
||||
- <input type="submit" value="<?php print $_LANG["make_directory"]; ?>" />
|
||||
<input name="userfile" type="file" />
|
||||
<input type="submit" value="<?php print $_LANG["upload"]; ?>" />
|
||||
</div>
|
||||
+<?php
|
||||
+}
|
||||
+?>
|
||||
+<!-- END: Upload area -->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
- </form>
|
||||
</div>
|
||||
-<!-- END: Upload area -->
|
||||
-<?php
|
||||
-}
|
||||
-?>
|
||||
+</form>
|
||||
+<!-- END: Action area -->
|
||||
|
||||
<!-- START: Info area -->
|
||||
<div id="info">
|
||||
-<?php print $_LANG["total_used_space"]; ?>: <?php print $this->spaceUsed; ?> MB | <?php print $_LANG["free_space"]; ?>: <?php print $this->spaceLeft; ?> MB | <a href="http://encode-explorer.siineiolekala.net">encode explorer</a>
|
||||
+<?php
|
||||
+if($_CONFIG['status_enable'] == 1)
|
||||
+{
|
||||
+?>
|
||||
+<?php print $_LANG["total_used_space"]; ?>: <?php print $this->spaceUsed; ?> MB | <?php print $_LANG["free_space"]; ?>: <?php print $this->spaceLeft; ?> MB |
|
||||
+<?php
|
||||
+}
|
||||
+?>
|
||||
+<a href="http://encode-explorer.siineiolekala.net">encode explorer</a>
|
||||
</div>
|
||||
<!-- END: Info area -->
|
||||
<!-- Encode Explorer v5.0 -->
|
||||
@@ -1419,6 +1793,32 @@
|
||||
$imageServer = new ImageServer();
|
||||
if(!$imageServer->showImage())
|
||||
{
|
||||
+ // check if dynamic configuration is active
|
||||
+ if($_CONFIG['enable_dynamic_config'] == 1)
|
||||
+ {
|
||||
+ foreach(array_keys($_CONFIG) as $key)
|
||||
+ {
|
||||
+ if(strlen($_SERVER['EEXPLORER_' . $key]) > 0)
|
||||
+ {
|
||||
+ // overwrite static with dynamic configuration
|
||||
+ if($key == 'notify_addresses' || $key == 'hidden_files' || $key == 'hidden_dirs')
|
||||
+ {
|
||||
+ // clear array, removing old data
|
||||
+ $_CONFIG[$key] = array();
|
||||
+
|
||||
+ foreach(explode(' ',$_SERVER['EEXPLORER_' . $key]) as $data)
|
||||
+ {
|
||||
+ array_push($_CONFIG[$key],$data);
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ $_CONFIG[$key] = $_SERVER['EEXPLORER_' . $key];
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
$_LANG = $_TRANSLATIONS[$_CONFIG['lang']];
|
||||
$location = new Location();
|
||||
$location->init();
|
||||
@@ -1427,4 +1827,4 @@
|
||||
$encodeExplorer = new Encode_Explorer();
|
||||
$encodeExplorer->run($location);
|
||||
}
|
||||
-?>
|
||||
\ No newline at end of file
|
||||
+?>
|
Loading…
Reference in New Issue
Block a user