From 85b1ac6414601717c4bb94b12ea724e10b78f2a6 Mon Sep 17 00:00:00 2001
From: Blackeye <14815724-Blackstareye@users.noreply.gitlab.com>
Date: Mon, 26 Aug 2024 11:58:02 +0000
Subject: [PATCH] Code Modularization
---
README.md | 4 +-
index.php | 116 +---------
lib/functions.js.php | 186 ++++++++++-----
lib/functions.php | 474 ++++++++++++++++++++++++++++++--------
lib/locales/ar.json | 8 +
lib/locales/be.json | 8 +
lib/locales/bn_IN.json | 8 +
lib/locales/bo.json | 8 +
lib/locales/ca.json | 8 +
lib/locales/ckb.json | 8 +
lib/locales/cs.json | 8 +
lib/locales/da.json | 8 +
lib/locales/de.json | 8 +
lib/locales/el.json | 8 +
lib/locales/en.json | 5 +
lib/locales/es.json | 8 +
lib/locales/et.json | 8 +
lib/locales/fi.json | 8 +
lib/locales/fr.json | 8 +
lib/locales/he.json | 8 +
lib/locales/hi.json | 8 +
lib/locales/hr.json | 8 +
lib/locales/hu.json | 8 +
lib/locales/id.json | 8 +
lib/locales/it.json | 8 +
lib/locales/ja.json | 8 +
lib/locales/ko.json | 8 +
lib/locales/la.json | 8 +
lib/locales/mfe.json | 8 +
lib/locales/ms.json | 8 +
lib/locales/nb_NO.json | 8 +
lib/locales/nl.json | 8 +
lib/locales/pl.json | 8 +
lib/locales/ps.json | 8 +
lib/locales/pt.json | 8 +
lib/locales/pt_BR.json | 8 +
lib/locales/ro.json | 8 +
lib/locales/ru.json | 8 +
lib/locales/sh.json | 8 +
lib/locales/si.json | 8 +
lib/locales/sk.json | 8 +
lib/locales/sl.json | 8 +
lib/locales/sq.json | 8 +
lib/locales/sr.json | 8 +
lib/locales/sv.json | 8 +
lib/locales/ta.json | 8 +
lib/locales/template.json | 8 +
lib/locales/th.json | 8 +
lib/locales/tr.json | 8 +
lib/locales/uk.json | 8 +
lib/locales/vi.json | 8 +
lib/locales/zh.json | 8 +
lib/locales/zh_TW.json | 8 +
lib/template/footer.php | 1 +
script.php | 62 +----
55 files changed, 895 insertions(+), 337 deletions(-)
diff --git a/README.md b/README.md
index 4fff851..f343ed9 100644
--- a/README.md
+++ b/README.md
@@ -311,4 +311,6 @@ Feel free to create an [issue](https://gitlab.com/jirafeau/Jirafeau/-/issues) if
### Can I buy you a coffee?
-You can [drop few bucks for Jérôme Jutteau](https://www.paypal.com/paypalme/jeromejutteau).
+You can [drop few bucks for Jérôme Jutteau](https://www.paypal.com/paypalme/jeromejutteau)
+
+Many Thanks <3
\ No newline at end of file
diff --git a/index.php b/index.php
index b7e2606..43bb81d 100644
--- a/index.php
+++ b/index.php
@@ -101,70 +101,8 @@ elseif (true === jirafeau_challenge_upload_ip($cfg, get_ip_address($cfg))) {
}
?>
-
@@ -227,55 +165,9 @@ elseif (true === jirafeau_challenge_upload_ip($cfg, get_ip_address($cfg))) {
}?>
|
- |
+
+
+ |
.
*/
+ function template_js_preview_link() {
+ ?>
+ if (!!document.getElementById('preview_link'))
+ {
+ document.getElementById('upload_finished_preview').style.display = 'none';
+ var preview_link_href = 'f.php?h=' + reference + '&p=1';
+ if (crypt_key.length > 0)
+ {
+ preview_link_href += '&k=' + crypt_key;
+ }
+
+ // Test if content can be previewed
+ type = document.getElementById('file_select').files[0].type;
+ if ((type.startsWith('image/')
+ || type.startsWith('audio')
+ || type.startsWith('text/plain')
+ || type.startsWith('video/'))
+ && !type.includes('image/svg+xml'))
+ {
+ document.getElementById('preview_link').href = preview_link_href;
+ document.getElementById('preview_link_text').innerHTML = web_root + preview_link_href;
+ document.getElementById('upload_finished_preview').style.display = '';
+ }
+ }
+
+ // Download page
+ var download_link_href = 'f.php?h=' + reference;
+ if (crypt_key.length > 0)
+ {
+ download_link_href += '&k=' + crypt_key;
+ }
+ if (!!document.getElementById('upload_finished_download_page'))
+ {
+ document.getElementById('upload_link').href = download_link_href;
+ document.getElementById('upload_link_text').innerHTML = web_root + download_link_href;
+ }
+
+ // Email link
+ var b = encodeURIComponent(" \"" + filename + "\":") + "%0D" + "%0A";
+ b += encodeURIComponent(web_root + download_link_href) + "%0D" + "%0A";
+ if (false == isEmpty(date))
+ {
+ b += "%0D" + "%0A" + encodeURIComponent(": " + date.format('YYYY-MM-DD hh:mm (GMT O)')) + "%0D" + "%0A";
+ document.getElementById('upload_link_email').href = "mailto:?body=" + b + "&subject=" + encodeURIComponent(filename);
+ }
+
+ // Delete link
+ var delete_link_href = 'f.php?h=' + reference + '&d=' + delete_code;
+ document.getElementById('delete_link').href = delete_link_href;
+ document.getElementById('delete_link_text').innerHTML = web_root + delete_link_href;
+
+ // Direct download link
+ var direct_download_link_href = 'f.php?h=' + reference + '&d=1';
+ if (crypt_key.length > 0)
+ {
+ direct_download_link_href += '&k=' + crypt_key;
+ }
+ document.getElementById('direct_link').href = direct_download_link_href;
+ document.getElementById('direct_link_text').innerHTML = web_root + direct_download_link_href;
+
+ // Validity date
+ if (isEmpty(date))
+ {
+ document.getElementById('date').style.display = 'none';
+ }
+ else {
+ document.getElementById('date').innerHTML =
+ '
'
+ + date.format('YYYY-MM-DD hh:mm (GMT O)')
+ + '';
+ document.getElementById('date').style.display = '';
+ }
+
+
+
+ var filename = file_name;
+
+
+
+ var type = file_type;
+
+}
+
+
+
function show_link (reference, delete_code, crypt_key, date)
{
// Upload finished
@@ -132,78 +245,23 @@ function show_link (reference, delete_code, crypt_key, date)
document.getElementById('upload_finished').style.display = '';
document.title = "100% - ";
- // Download page
- var download_link_href = 'f.php?h=' + reference;
- if (crypt_key.length > 0)
- {
- download_link_href += '&k=' + crypt_key;
- }
- if (!!document.getElementById('upload_finished_download_page'))
- {
- document.getElementById('upload_link').href = download_link_href;
- document.getElementById('upload_link_text').innerHTML = web_root + download_link_href;
- }
-
+
// Email link
var filename = document.getElementById('file_select').files[0].name;
- var b = encodeURIComponent(" \"" + filename + "\":") + "%0D" + "%0A";
- b += encodeURIComponent(web_root + download_link_href) + "%0D" + "%0A";
- if (false == isEmpty(date))
- {
- b += "%0D" + "%0A" + encodeURIComponent(": " + date.format('YYYY-MM-DD hh:mm (GMT O)')) + "%0D" + "%0A";
- document.getElementById('upload_link_email').href = "mailto:?body=" + b + "&subject=" + encodeURIComponent(filename);
- }
- // Delete link
- var delete_link_href = 'f.php?h=' + reference + '&d=' + delete_code;
- document.getElementById('delete_link').href = delete_link_href;
- document.getElementById('delete_link_text').innerHTML = web_root + delete_link_href;
+
+
+
+
- // Validity date
- if (isEmpty(date))
- {
- document.getElementById('date').style.display = 'none';
- }
- else {
- document.getElementById('date').innerHTML = '
'
- + date.format('YYYY-MM-DD hh:mm (GMT O)')
- + '';
- document.getElementById('date').style.display = '';
- }
// Preview link (if allowed)
- if (!!document.getElementById('preview_link'))
- {
- document.getElementById('upload_finished_preview').style.display = 'none';
- var preview_link_href = 'f.php?h=' + reference + '&p=1';
- if (crypt_key.length > 0)
- {
- preview_link_href += '&k=' + crypt_key;
- }
+
+ var type = document.getElementById('file_select').files[0].type;
+
- // Test if content can be previewed
- type = document.getElementById('file_select').files[0].type;
- if ((type.startsWith('image/')
- || type.startsWith('audio')
- || type.startsWith('text/plain')
- || type.startsWith('video/'))
- && !type.includes('image/svg+xml'))
- {
- document.getElementById('preview_link').href = preview_link_href;
- document.getElementById('preview_link_text').innerHTML = web_root + preview_link_href;
- document.getElementById('upload_finished_preview').style.display = '';
- }
- }
+
- // Direct download link
- var direct_download_link_href = 'f.php?h=' + reference + '&d=1';
- if (crypt_key.length > 0)
- {
- direct_download_link_href += '&k=' + crypt_key;
- }
- document.getElementById('direct_link').href = direct_download_link_href;
- document.getElementById('direct_link_text').innerHTML = web_root + direct_download_link_href;
// Hide preview and direct download link if password is set
if (document.getElementById('input_key').value.length > 0)
diff --git a/lib/functions.php b/lib/functions.php
index 4736b7f..4991f23 100644
--- a/lib/functions.php
+++ b/lib/functions.php
@@ -446,25 +446,62 @@ function jirafeau_upload($file, $one_time_download, $key, $time, $ip, $crypt, $l
'link' => '',
'delete_link' => ''));
}
+ jirafeau_add_file($file, $one_time_download, $key, $time, $ip, $crypt, $link_name_length, $file_hash_method);
+}
- /* array representing no error */
- $noerr = array('has_error' => false, 'why' => '');
-
+/**
+ *
+ * @param bool $crypt_module_enabled
+ * @param string $file_path
+ * @return array [bool, string]
+ */
+function jirafeau_handle_add_file_encryption($crypt_module_enabled, $file_path) {
/* Crypt file if option is enabled. */
$crypted = false;
$crypt_key = '';
- if ($crypt == true && !(extension_loaded('sodium') == true)) {
+ if ($crypt_module_enabled == true && !(extension_loaded('sodium') == true)) {
error_log("PHP extension sodium not loaded, won't encrypt in Jirafeau");
}
- if ($crypt == true && extension_loaded('sodium') == true) {
- $crypt_key = jirafeau_encrypt_file($file['tmp_name'], $file['tmp_name'].'crypt');
+ if ($crypt_module_enabled == true && extension_loaded('sodium') == true) {
+ $crypt_key = jirafeau_encrypt_file($file_path, $file_path.'crypt');
if (strlen($crypt_key) > 0) {
- if (rename($file['tmp_name'].'crypt', $file['tmp_name']) === true) {
+ if (rename($file_path.'crypt', $file_path) === true) {
$crypted = true;
}
}
}
+ return [$crypted, $crypt_key];
+}
+
+/**
+ * adds an uploaded or copy/linked local file
+ * @param $file the file struct given by $_FILE[]
+ * @param $one_time_download is the file a one time download ?
+ * @param $key if not empty, protect the file with this key
+ * @param $time the time of validity of the file
+ * @param $ip uploader's ip
+ * @param $crypt boolean asking to crypt or not
+ * @param $link_name_length size of the link name
+ * @param $is_upload, determines if the file is uploaded or local - it controls which file-functions are used
+ * @return array an array containing some information
+ * 'error' => information on possible errors
+ * 'link' => the link name of the uploaded file
+ * 'delete_link' => the link code to delete file
+ */
+function jirafeau_add_file($file, $one_time_download, $key, $time, $ip, $crypt, $link_name_length, $file_hash_method, $is_upload = true)
+{
+ // TODO needs to be adapted
+ $move_operation = $is_upload ? 'move_uploaded_file' : 'symlink';
+
+ /* array representing no error */
+ $noerr = array('has_error' => false, 'why' => '');
+
+ $crypted = false;
+ $crypt_key = '';
+ list($crypted, $crypt_key) = jirafeau_handle_add_file_encryption($crypt, $file['tmp_name']);
+
+
/* file information */
$hash = jirafeau_hash_file($file_hash_method, $file['tmp_name']);
$name = str_replace(NL, '', trim($file['name']));
@@ -477,7 +514,11 @@ function jirafeau_upload($file, $one_time_download, $key, $time, $ip, $crypt, $l
if (file_exists(VAR_FILES . $p . $hash)) {
$rc = unlink($file['tmp_name']);
} elseif ((file_exists(VAR_FILES . $p) || @mkdir(VAR_FILES . $p, 0755, true))
- && move_uploaded_file($file['tmp_name'], VAR_FILES . $p . $hash)) {
+ &&
+ //move_uploaded_file($file['tmp_name'], VAR_FILES . $p . $hash))
+ $move_operation($file['tmp_name'], VAR_FILES . $p . $hash))
+ {
+
$rc = true;
}
if (!$rc) {
@@ -516,7 +557,7 @@ function jirafeau_upload($file, $one_time_download, $key, $time, $ip, $crypt, $l
$handle,
$name . NL. $mime_type . NL. $size . NL. $password . NL. $time .
NL . $hash. NL . ($one_time_download ? 'O' : 'R') . NL . time() .
- NL . $ip . NL. $delete_link_code . NL . ($crypted ? 'C2' : 'O')
+ NL . $ip . NL. $delete_link_code . NL . ($crypted ? 'C' : 'O')
);
fclose($handle);
$hash_link = substr(base_16_to_64(md5_file($link_tmp_name)), 0, $link_name_length);
@@ -548,6 +589,37 @@ function jirafeau_upload($file, $one_time_download, $key, $time, $ip, $crypt, $l
'crypt_key' => $crypt_key);
}
+
+function jirafeau_admin_list_table ($name, $file_hash, $link_hash, $visitor_function = null) {
+ echo '
';
+}
+
+
+
+
+
/**
* Tells if a mime-type is viewable in a browser
* @param $mime the mime type
@@ -672,103 +744,79 @@ function jirafeau_get_link($hash)
}
/**
- * List files in admin interface.
+ * List files ii folder in admin interface.
*/
function jirafeau_admin_list($name, $file_hash, $link_hash)
{
- echo '
';
+ };
+ jirafeau_admin_list_table($name, $file_hash, $link_hash, $function);
}
/**
@@ -1009,8 +1057,8 @@ function jirafeau_async_delete($ref)
function jirafeau_async_init($filename, $type, $one_time, $key, $time, $ip)
{
/* Create temporary folder. */
- $ref;
- $p;
+ $ref = '';
+ $p = '';
$code = jirafeau_gen_random(4);
do {
$ref = jirafeau_gen_random(32);
@@ -1719,3 +1767,229 @@ function jirafeau_write_download_stats($hash, $ip)
fwrite($handle, $count . NL . time() . NL . $ip);
fclose($handle);
}
+
+function jirafeau_create_upload_finished_box($preview = true) {
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'minute',
+ 'label' => '1_MIN'
+ ),
+ array(
+ 'value' => 'hour',
+ 'label' => '1_H'
+ ),
+ array(
+ 'value' => 'day',
+ 'label' => '1_D'
+ ),
+ array(
+ 'value' => 'week',
+ 'label' => '1_W'
+ ),
+ array(
+ 'value' => 'fortnight',
+ 'label' => '2_W'
+ ),
+ array(
+ 'value' => 'month',
+ 'label' => '1_M'
+ ),
+ array(
+ 'value' => 'quarter',
+ 'label' => '1_Q'
+ ),
+ array(
+ 'value' => 'year',
+ 'label' => '1_Y'
+ ),
+ array(
+ 'value' => 'none',
+ 'label' => 'NONE'
+ )
+ );
+}
+
+
+
+ /**
+ *
+ * creates the time selection field
+ * @param mixed $cfg
+ * @return void
+ */
+ function jirafeau_create_selection_array($cfg) {
+ echo
+ '
';
+ }
+
+ function jirafeau_datestr_to_int ($time_str) {
+ $time = time();
+ switch ($time_str) {
+ case 'minute':
+ $time += JIRAFEAU_MINUTE;
+ break;
+ case 'hour':
+ $time += JIRAFEAU_HOUR;
+ break;
+ case 'day':
+ $time += JIRAFEAU_DAY;
+ break;
+ case 'week':
+ $time += JIRAFEAU_WEEK;
+ break;
+ case 'fortnight':
+ $time += JIRAFEAU_FORTNIGHT;
+ break;
+ case 'month':
+ $time += JIRAFEAU_MONTH;
+ break;
+ case 'quarter':
+ $time += JIRAFEAU_QUARTER;
+ break;
+ case 'year':
+ $time += JIRAFEAU_YEAR;
+ break;
+ default:
+ $time = JIRAFEAU_INFINITY;
+ break;
+ }
+ return $time;
+}
+
+
+
+
+/**
+ * links or copy a local file
+ * TODO: boolean in config for linking
+ * @param string $filepath
+ * @param $one_time_download is the file a one time download ?
+ * @param $key if not empty, protect the file with this key
+ * @param $time the time of validity of the file
+ * @param $ip uploader's ip
+ * @param $crypt boolean asking to crypt or not
+ * @param $link_name_length size of the link name
+ * @returns an array containing some information
+ * 'error' => information on possible errors
+ * 'link' => the link name of the uploaded file
+ * 'delete_link' => the link code to delete file
+ */
+function jirafeau_copy_local_file($local_file_path, $one_time_download, $key, $time, $ip, $crypt, $link_name_length, $file_hash_method) {
+
+ if (!file_exists($local_file_path)) {
+ return (array(
+ 'error' =>
+ array('has_error' => true,
+ 'why' => t('INTERNAL_ERROR_FILE_NOT_EXIST')),
+ 'link' =>'',
+ 'delete_link' => ''));
+ }
+ if(
+ // sanity check if file can be opened
+ $file = fopen($local_file_path, "r")
+ )
+ {
+ // close file pointer - it's not needed here
+ fclose($file);
+ $time_in_int = jirafeau_datestr_to_int($time);
+ return jirafeau_add_file(
+ jirafeau_create_file_array($local_file_path),
+ $one_time_download,
+ $key,
+ $time_in_int,
+ $ip,
+ $crypt,
+ $link_name_length,
+ $file_hash_method,
+ false
+ );
+ }
+ else {
+ return (array(
+ 'error' =>
+ array('has_error' => true,
+ 'why' => t('INTERNAL_ERROR_FP_OPEN_LOCAL')),
+ 'link' =>'',
+ 'delete_link' => ''));
+ }
+
+}
+
+
+function jirafeau_create_file_array($file_path) {
+ return
+ [
+ 'type' => mime_content_type($file_path),
+ 'tmp_name' => $file_path,
+ 'name' => basename($file_path),
+ 'size' => filesize($file_path),
+ ];
+}
diff --git a/lib/locales/ar.json b/lib/locales/ar.json
index a048c2b..f8a9ad6 100644
--- a/lib/locales/ar.json
+++ b/lib/locales/ar.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/be.json b/lib/locales/be.json
index 7f38ca9..1fa1e6f 100644
--- a/lib/locales/be.json
+++ b/lib/locales/be.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/bn_IN.json b/lib/locales/bn_IN.json
index 796ceaa..4c86aef 100644
--- a/lib/locales/bn_IN.json
+++ b/lib/locales/bn_IN.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/bo.json b/lib/locales/bo.json
index 0a94967..353cbd5 100644
--- a/lib/locales/bo.json
+++ b/lib/locales/bo.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/ca.json b/lib/locales/ca.json
index 9fa8499..900d618 100644
--- a/lib/locales/ca.json
+++ b/lib/locales/ca.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Una quincena",
diff --git a/lib/locales/ckb.json b/lib/locales/ckb.json
index 6277346..f4f30fe 100644
--- a/lib/locales/ckb.json
+++ b/lib/locales/ckb.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/cs.json b/lib/locales/cs.json
index 8aee626..a310461 100644
--- a/lib/locales/cs.json
+++ b/lib/locales/cs.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/da.json b/lib/locales/da.json
index a08c46f..645bcef 100644
--- a/lib/locales/da.json
+++ b/lib/locales/da.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/de.json b/lib/locales/de.json
index ea3c290..76062b5 100644
--- a/lib/locales/de.json
+++ b/lib/locales/de.json
@@ -1,5 +1,12 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "Verschlüsselung ist in der Konfiguration aktiviert, aber das PHP-Modul \"Sodium\" ist nicht verfügbar! Verschlüsselung ist nicht verfügbar!",
+ "ADMIN_FOLDER_INFO": "(Datei muss im Ordner %s liegen)",
+ "ADMIN_FILE_SELECT": "Dateiname:",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "Die zu verlinkende Datei konnte nicht gefunden werden",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "Internal Error - Die zu verlinkende Datei konnte nicht geöffnet werden",
"INSTALL_FILE_NOT_FOUND_TITLE": "Installationsprogramm nicht gefunden",
"INSTALL_FILE_NOT_FOUND_DESC": "Installation wurde nicht erfolgreich abgeschlossen und install.php scheint nicht zu existieren",
"2_W": "Zwei Wochen",
@@ -54,6 +61,7 @@
"LOGIN": "Anmelden",
"LOGOUT": "Abmelden",
"MADE_WITH": "Erstellt mit",
+ "DESIGNED": "",
"MAX_FILE_SIZE": "Maximale DateigröÃe",
"NEXT_STEP": "Nächster Schritt",
"NONE": "Nie",
diff --git a/lib/locales/el.json b/lib/locales/el.json
index a0da96f..d9ea2f5 100644
--- a/lib/locales/el.json
+++ b/lib/locales/el.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/en.json b/lib/locales/en.json
index 092980a..aa7559d 100644
--- a/lib/locales/en.json
+++ b/lib/locales/en.json
@@ -1,5 +1,9 @@
{
"SODIUM_UNAVAILABLE": "Encryption is enabled in configuration, but the Sodium PHP module is not loaded! Encryption is not available!",
+ "ADMIN_FOLDER_INFO": "(File must be in Folder %s)",
+ "ADMIN_FILE_SELECT": "Filename",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "Requested File not found.",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "Internal Error - Requested File could not be opened",
"INSTALL_FILE_NOT_FOUND_TITLE": "Installation file not found",
"INSTALL_FILE_NOT_FOUND_DESC": "Installation is not complete and install.php file does not seem to exist",
"REPORTING_AN_ISSUE": "Reporting an issue",
@@ -17,6 +21,7 @@
"MAX_FILE_SIZE": "Maximum file size",
"POWERED_BY": "powered by the copyleft, libre software project Jirafeau",
"MADE_WITH": "Made with",
+ "DESIGNED": "Designed and hosted by",
"JI_PROJECT": "Jirafeau Project",
"1_MIN": "One minute",
"1_H": "One hour",
diff --git a/lib/locales/es.json b/lib/locales/es.json
index 5053041..339c468 100644
--- a/lib/locales/es.json
+++ b/lib/locales/es.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Una quincena",
diff --git a/lib/locales/et.json b/lib/locales/et.json
index 6277346..f4f30fe 100644
--- a/lib/locales/et.json
+++ b/lib/locales/et.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/fi.json b/lib/locales/fi.json
index db7eecf..21c28d1 100644
--- a/lib/locales/fi.json
+++ b/lib/locales/fi.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/fr.json b/lib/locales/fr.json
index a9162ab..9850683 100644
--- a/lib/locales/fr.json
+++ b/lib/locales/fr.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "Fichier d'installation non-trouvé",
"INSTALL_FILE_NOT_FOUND_DESC": "L'installation est incomplète et le ficher install.php est introuvable",
"2_W": "Deux semaines",
diff --git a/lib/locales/he.json b/lib/locales/he.json
index 3e40020..f5c72b6 100644
--- a/lib/locales/he.json
+++ b/lib/locales/he.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/hi.json b/lib/locales/hi.json
index 5c19acc..9349097 100644
--- a/lib/locales/hi.json
+++ b/lib/locales/hi.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/hr.json b/lib/locales/hr.json
index 788ce9e..fb75482 100644
--- a/lib/locales/hr.json
+++ b/lib/locales/hr.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/hu.json b/lib/locales/hu.json
index 4d3b8e0..a381b82 100644
--- a/lib/locales/hu.json
+++ b/lib/locales/hu.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/id.json b/lib/locales/id.json
index 74fc276..4ed9761 100644
--- a/lib/locales/id.json
+++ b/lib/locales/id.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/it.json b/lib/locales/it.json
index c4e53b5..2b8600b 100644
--- a/lib/locales/it.json
+++ b/lib/locales/it.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Due settimane",
diff --git a/lib/locales/ja.json b/lib/locales/ja.json
index ee6a2e8..0a39a65 100644
--- a/lib/locales/ja.json
+++ b/lib/locales/ja.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/ko.json b/lib/locales/ko.json
index 5c19acc..9349097 100644
--- a/lib/locales/ko.json
+++ b/lib/locales/ko.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/la.json b/lib/locales/la.json
index 45aeaaa..e1b1bce 100644
--- a/lib/locales/la.json
+++ b/lib/locales/la.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/mfe.json b/lib/locales/mfe.json
index 6277346..f4f30fe 100644
--- a/lib/locales/mfe.json
+++ b/lib/locales/mfe.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/ms.json b/lib/locales/ms.json
index c01c93d..e97fa01 100644
--- a/lib/locales/ms.json
+++ b/lib/locales/ms.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/nb_NO.json b/lib/locales/nb_NO.json
index ce80c40..c5a6297 100644
--- a/lib/locales/nb_NO.json
+++ b/lib/locales/nb_NO.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "To uker",
diff --git a/lib/locales/nl.json b/lib/locales/nl.json
index 1855d0b..ca4aa74 100644
--- a/lib/locales/nl.json
+++ b/lib/locales/nl.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Twee weken",
diff --git a/lib/locales/pl.json b/lib/locales/pl.json
index 07a814a..6a1fa9a 100644
--- a/lib/locales/pl.json
+++ b/lib/locales/pl.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/ps.json b/lib/locales/ps.json
index 6277346..f4f30fe 100644
--- a/lib/locales/ps.json
+++ b/lib/locales/ps.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/pt.json b/lib/locales/pt.json
index 9ec79a9..f326529 100644
--- a/lib/locales/pt.json
+++ b/lib/locales/pt.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Uma quinzena",
diff --git a/lib/locales/pt_BR.json b/lib/locales/pt_BR.json
index c902a9c..638dc08 100644
--- a/lib/locales/pt_BR.json
+++ b/lib/locales/pt_BR.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Uma quinzena",
diff --git a/lib/locales/ro.json b/lib/locales/ro.json
index dbe2046..fe03dec 100644
--- a/lib/locales/ro.json
+++ b/lib/locales/ro.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/ru.json b/lib/locales/ru.json
index 6452559..e9dc7f1 100644
--- a/lib/locales/ru.json
+++ b/lib/locales/ru.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/sh.json b/lib/locales/sh.json
index 6277346..f4f30fe 100644
--- a/lib/locales/sh.json
+++ b/lib/locales/sh.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/si.json b/lib/locales/si.json
index 54401df..eb4a94d 100644
--- a/lib/locales/si.json
+++ b/lib/locales/si.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"REPORTING_AN_ISSUE": "",
"SIZE_DATA": "",
"INCOMPATIBLE_OPTIONS_W": "",
diff --git a/lib/locales/sk.json b/lib/locales/sk.json
index e40d2b9..a69e18d 100644
--- a/lib/locales/sk.json
+++ b/lib/locales/sk.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/sl.json b/lib/locales/sl.json
index 7f06388..bb4c65d 100644
--- a/lib/locales/sl.json
+++ b/lib/locales/sl.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/sq.json b/lib/locales/sq.json
index 6277346..f4f30fe 100644
--- a/lib/locales/sq.json
+++ b/lib/locales/sq.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/sr.json b/lib/locales/sr.json
index 53f23a2..7755688 100644
--- a/lib/locales/sr.json
+++ b/lib/locales/sr.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/sv.json b/lib/locales/sv.json
index 0145206..8399753 100644
--- a/lib/locales/sv.json
+++ b/lib/locales/sv.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Två veckor",
diff --git a/lib/locales/ta.json b/lib/locales/ta.json
index d6e0c1d..58c4f51 100644
--- a/lib/locales/ta.json
+++ b/lib/locales/ta.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/template.json b/lib/locales/template.json
index cfaefff..ee38ca9 100644
--- a/lib/locales/template.json
+++ b/lib/locales/template.json
@@ -1,5 +1,10 @@
{
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
@@ -110,6 +115,9 @@
"ONETIME": "",
"UPLOAD_DATE": "",
"ORIGIN": "",
+ "DOWNLOAD_COUNT": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_IP": "",
"ACTION": "",
"DEL_LINK": "",
"DEL_FILE_LINKS": "",
diff --git a/lib/locales/th.json b/lib/locales/th.json
index 6277346..f4f30fe 100644
--- a/lib/locales/th.json
+++ b/lib/locales/th.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/tr.json b/lib/locales/tr.json
index 239a432..c29255e 100644
--- a/lib/locales/tr.json
+++ b/lib/locales/tr.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Ä°ki hafta",
diff --git a/lib/locales/uk.json b/lib/locales/uk.json
index 6b9e17e..f609ac8 100644
--- a/lib/locales/uk.json
+++ b/lib/locales/uk.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/vi.json b/lib/locales/vi.json
index bcfad0a..4dfcf33 100644
--- a/lib/locales/vi.json
+++ b/lib/locales/vi.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/zh.json b/lib/locales/zh.json
index cf65cc5..43495b1 100644
--- a/lib/locales/zh.json
+++ b/lib/locales/zh.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/locales/zh_TW.json b/lib/locales/zh_TW.json
index a571dcb..2e8bbf7 100644
--- a/lib/locales/zh_TW.json
+++ b/lib/locales/zh_TW.json
@@ -1,5 +1,13 @@
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
diff --git a/lib/template/footer.php b/lib/template/footer.php
index efe238f..637ce42 100644
--- a/lib/template/footer.php
+++ b/lib/template/footer.php
@@ -4,6 +4,7 @@
' . t('JI_PROJECT') . '' .
+ '
' . t('DESIGNED') . ' ' . $cfg['contactperson'] . '
' .
' (
AGPL-3.0)';
?>
diff --git a/script.php b/script.php
index 8ebcce3..6ef117e 100644
--- a/script.php
+++ b/script.php
@@ -92,40 +92,11 @@ if (isset($_FILES['file']) && is_writable(VAR_FILES)
exit;
}
- $time = time();
if (!isset($_POST['time']) || !$cfg['availabilities'][$_POST['time']]) {
echo 'Error 4: The parameter time is invalid.';
exit;
} else {
- switch ($_POST['time']) {
- case 'minute':
- $time += JIRAFEAU_MINUTE;
- break;
- case 'hour':
- $time += JIRAFEAU_HOUR;
- break;
- case 'day':
- $time += JIRAFEAU_DAY;
- break;
- case 'week':
- $time += JIRAFEAU_WEEK;
- break;
- case 'fortnight':
- $time += JIRAFEAU_FORTNIGHT;
- break;
- case 'month':
- $time += JIRAFEAU_MONTH;
- break;
- case 'quarter':
- $time += JIRAFEAU_QUARTER;
- break;
- case 'year':
- $time += JIRAFEAU_YEAR;
- break;
- default:
- $time = JIRAFEAU_INFINITY;
- break;
- }
+ $time = jirafeau_datestr_to_int($_POST['time']);
}
// Check file size
@@ -468,40 +439,11 @@ elseif (isset($_GET['init_async'])) {
exit;
}
- $time = time();
if (!isset($_POST['time']) || !$cfg['availabilities'][$_POST['time']]) {
echo 'Error 22';
exit;
} else {
- switch ($_POST['time']) {
- case 'minute':
- $time += JIRAFEAU_MINUTE;
- break;
- case 'hour':
- $time += JIRAFEAU_HOUR;
- break;
- case 'day':
- $time += JIRAFEAU_DAY;
- break;
- case 'week':
- $time += JIRAFEAU_WEEK;
- break;
- case 'fortnight':
- $time += JIRAFEAU_FORTNIGHT;
- break;
- case 'month':
- $time += JIRAFEAU_MONTH;
- break;
- case 'quarter':
- $time += JIRAFEAU_QUARTER;
- break;
- case 'year':
- $time += JIRAFEAU_YEAR;
- break;
- default:
- $time = JIRAFEAU_INFINITY;
- break;
- }
+ $time = jirafeau_datestr_to_int($_POST['time']);
}
if ($cfg['store_uploader_ip']) {
--
2.34.1