From: Blackeye <14815724-Blackstareye@users.noreply.gitlab.com>
Date: Mon, 19 Aug 2024 12:35:12 +0000 (+0000)
Subject: Merge branch 'next-release' into 'f_modularization_wip_rebased'
X-Git-Url: https://git.p6c8.net/jirafeau_project.git/commitdiff_plain/d00f70e3fa9a3a15bf4d9ba09eaa11bb8868bda7?hp=5aa1e87de607c31282dec602978624de9e636cba
Merge branch 'next-release' into 'f_modularization_wip_rebased'
# Conflicts:
# index.php
---
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..6220154 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",
@@ -41,10 +48,10 @@
"HERE_SOLUTION": "Hier ist eine Lösung",
"INFO": "Information",
"JI_INSTALL": "Installation von Jirafeau",
- "INSTALL_SCRIPT_HERE": "Installer-Script noch vorhanden",
+ "INSTALL_SCRIPT_HERE": "Installer-Skript noch vorhanden",
"INTERNAL_ERROR_DEL": "Interner Fehler während der Dateierstellung.",
"JI_PROJECT": "Jirafeau-Projekt",
- "ADMIN_INTERFACE_INFO": "Jirafeau hat eine Admin-Oberfläche (durch admin.php). Für den Zugriff auf die Schnittstelle kann ein Passwort festlegt werden. Um die Schnittstelle zu deaktivieren, Passwort einfach leer lassen.",
+ "ADMIN_INTERFACE_INFO": "Jirafeau hat eine Admin-Oberfläche (durch admin.php). Für den Zugriff auf die Schnittstelle kann ein Kennwort festlegt. werden. Um die Schnittstelle zu deaktivieren, Kennwort einfach leer lassen.",
"JI_FONCTIONAL": "Jirafeau ist nun voll funktionsfähig",
"SETTING_UP": "Jirafeau richtet die Webseite entsprechend der angegebenen Konfiguration ein.",
"JI_WEB_RE": "Jirafeau, dein Web-Speicher für Dateien",
@@ -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",
@@ -85,8 +93,8 @@
"NO_ADMIN_AUTH": "Leider bist du nicht auf der Admin-Oberfläche angemeldet.",
"TOS": "Allgemeine Geschäftsbedingungen",
"ASYNC_DIR_W": "Das Async-Verzeichnis ist nicht beschreibbar.",
- "BASE_ADDR_INFO": "Die Basisadresse von Jirafeau ist der erste Teil der URL, bis einschlieÃlich dem letzten Schrägstrich, zum Beispiel: âhttp://www.example.com/â. AbschlieÃenden Schrägstrich nicht vergessen!",
- "DATA_DIR_EXPLAINATION": "Im Datenverzeichnis werden deine Dateien und zugehörige Informationen gespeichert. Dieses Verzeichnis sollte sich auÃerhalb der Webseite befinden oder zumindest beschränkten Zugriff haben. AbschlieÃenden Schrägstrich nicht vergessen!",
+ "BASE_ADDR_INFO": "Die Basisadresse von Jirafeau ist der erste Teil der URL, bis (einschlieÃlich) dem letzten Schrägstrich. Zum Beispiel: âhttp://www.example.com/â. AbschlieÃenden Schrägstrich nichrt vergessen!",
+ "DATA_DIR_EXPLAINATION": "Das Datenverzeichnis ist, wo deine Dateien und Informationen über deine Dateien gespeichert werden. Dieses Verzeichnis sollte sich auÃerhalb der Webseite befinden, oder zumindest beschränkten Zugriff haben. AbschlieÃenden Schrägstrich nichrt vergessen!",
"FILE_DIR_W": "Das Dateiverzeichnis ist nicht beschreibbar.",
"CANNOT_CREATE_DIR": "Der folgende Ordner konnte nicht erstellt werden",
"DIR_NOT_W": "Das folgende Verzeichnis ist nicht beschreibbar",
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']) {