]> git.p6c8.net - jirafeau_project.git/commitdiff
Merge branch 'f_modularization_wip_rebased' into 'next-release'
authorBlackeye <14815724-Blackstareye@users.noreply.gitlab.com>
Mon, 26 Aug 2024 11:58:02 +0000 (11:58 +0000)
committerBlackeye <14815724-Blackstareye@users.noreply.gitlab.com>
Mon, 26 Aug 2024 11:58:02 +0000 (11:58 +0000)
Code Modularization

See merge request jirafeau/Jirafeau!3

55 files changed:
README.md
index.php
lib/functions.js.php
lib/functions.php
lib/locales/ar.json
lib/locales/be.json
lib/locales/bn_IN.json
lib/locales/bo.json
lib/locales/ca.json
lib/locales/ckb.json
lib/locales/cs.json
lib/locales/da.json
lib/locales/de.json
lib/locales/el.json
lib/locales/en.json
lib/locales/es.json
lib/locales/et.json
lib/locales/fi.json
lib/locales/fr.json
lib/locales/he.json
lib/locales/hi.json
lib/locales/hr.json
lib/locales/hu.json
lib/locales/id.json
lib/locales/it.json
lib/locales/ja.json
lib/locales/ko.json
lib/locales/la.json
lib/locales/mfe.json
lib/locales/ms.json
lib/locales/nb_NO.json
lib/locales/nl.json
lib/locales/pl.json
lib/locales/ps.json
lib/locales/pt.json
lib/locales/pt_BR.json
lib/locales/ro.json
lib/locales/ru.json
lib/locales/sh.json
lib/locales/si.json
lib/locales/sk.json
lib/locales/sl.json
lib/locales/sq.json
lib/locales/sr.json
lib/locales/sv.json
lib/locales/ta.json
lib/locales/template.json
lib/locales/th.json
lib/locales/tr.json
lib/locales/uk.json
lib/locales/vi.json
lib/locales/zh.json
lib/locales/zh_TW.json
lib/template/footer.php
script.php

index 4fff851c3272262e57ff870646e6feb43e9c3973..f343ed9257a37ecf3a357c0dddd97d6233e0ac06 100644 (file)
--- 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
index b7e2606930e5207e914d6cae4cbb4979cc58478a..43bb81dddc8c1114a8fa5d99168e43110f152a5b 100644 (file)
--- a/index.php
+++ b/index.php
@@ -101,70 +101,8 @@ elseif (true === jirafeau_challenge_upload_ip($cfg, get_ip_address($cfg))) {
 }
 
 ?>
-<div id="upload_finished">
-    <p><?php echo t('FILE_UP') ?></p>
 
-    <div id="upload_finished_download_page">
-    <p>
-        <a id="upload_link" href=""><?php echo t('DL_PAGE') ?></a>
-        <a id="upload_link_email" href=""><img id="upload_image_email"/></a>
-    </p><p>
-        <code id=upload_link_text></code>
-        <button id="upload_link_button">&#128203;</button>
-    </p>
-    </div>
-
-    <?php if ($cfg['download_password_requirement'] === "generated") {
-        ?>
-    <div id="show_password">
-    <p><?php echo t('PSW') ?></p>
-
-    <div id="download_password">
-    <p>
-        <?php echo '<input id="output_key" value="' . $download_pass . '"/>'?>
-        <button id="password_copy_button">&#128203;</button>
-    </p>
-    </div>
-    </div>
-    <?php
-    }?>
-
-    <?php if ($cfg['preview'] == true) {
-        ?>
-    <div id="upload_finished_preview">
-    <p>
-        <a id="preview_link" href=""><?php echo t('VIEW_LINK') ?></a>
-    </p><p>
-        <code id=preview_link_text></code>
-        <button id="preview_link_button">&#128203;</button>
-    </p>
-    </div>
-    <?php
-    } ?>
-
-    <div id="upload_direct_download">
-    <p>
-        <a id="direct_link" href=""><?php echo t('DIRECT_DL') ?></a>
-    </p><p>
-        <code id=direct_link_text></code>
-        <button id="direct_link_button">&#128203;</button>
-    </p>
-    </div>
-
-    <div id="upload_delete">
-    <p>
-        <a id="delete_link" href=""><?php echo t('DELETE_LINK') ?></a>
-    </p><p>
-        <code id=delete_link_text></code>
-        <button id="delete_link_button">&#128203;</button>
-    </p>
-    </div>
-
-    <div id="upload_validity">
-    <p><?php echo t('VALID_UNTIL'); ?>:</p>
-    <p id="date"></p>
-    </div>
-</div>
+<?php jirafeau_create_upload_finished_box($cfg['preview']); ?>
 
 <div id="uploading">
     <p>
@@ -227,55 +165,9 @@ elseif (true === jirafeau_challenge_upload_ip($cfg, get_ip_address($cfg))) {
         }?>
         <tr>
         <td><label for="select_time"><?php echo t('TIME_LIM') . ':'; ?></label></td>
-        <td><select name="time" id="select_time">
-        <?php
-$expirationTimeOptions = array(
-  array(
-    'value' => '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'
-  )
-);
-foreach ($expirationTimeOptions as $expirationTimeOption) {
-    $selected = ($expirationTimeOption['value'] === $cfg['availability_default'])? 'selected="selected"' : '';
-    if (true === $cfg['availabilities'][$expirationTimeOption['value']]) {
-        echo '<option value="' . $expirationTimeOption['value'] . '" ' .
-              $selected . '>' . t($expirationTimeOption['label']) . '</option>';
-    }
-}
-?>
-        </select></td>
+        <td>
+            <?php jirafeau_create_selection_array($cfg); ?> 
+        </td>
         </tr>
 
         <?php
index 3052bf03a45e2b9cf6a21a04d3c401574b322325..17c6d0b8818f74b6c7298db4fcc678328328cd5a 100644 (file)
  *  along with this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
+ 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 = '';
+        }
+    } 
+    <?php
+ }
+function template_js_download_page() {
+    ?>
+    // 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;
+    }
+    <?php
+}
+function template_js_email_link() {
+    ?>
+    // Email link
+    var b = encodeURIComponent("<?php echo t("DL"); ?> \"" + filename + "\":") + "%0D" + "%0A";
+    b += encodeURIComponent(web_root + download_link_href) + "%0D" + "%0A";
+    if (false == isEmpty(date))
+    {
+        b += "%0D" + "%0A" + encodeURIComponent("<?php echo t("VALID_UNTIL"); ?>: " + date.format('YYYY-MM-DD hh:mm (GMT O)')) + "%0D" + "%0A";
+        document.getElementById('upload_link_email').href = "mailto:?body=" + b + "&subject=" + encodeURIComponent(filename);
+    }
+    <?php
+}
+function template_js_delete_link() {
+    ?>
+    // 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;
+    <?php
+}
+ function template_js_direct_download() {
+    ?>
+    // 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;
+    <?php
+ }
+ function template_js_date_function() {
+    ?>
+    // Validity date
+    if (isEmpty(date))
+    {
+        document.getElementById('date').style.display = 'none';
+    }
+    else {
+        document.getElementById('date').innerHTML = 
+        '<span class="datetime"' 
+            + 'data-datetime="'
+            + dateToUtcString(date) + ' (GMT"'
+            + 'title="'
+            + dateToUtcString(date) + ' (GMT)">'
+            + date.format('YYYY-MM-DD hh:mm (GMT O)')
+            + '</span>';
+            document.getElementById('date').style.display = '';
+    }
+    <?php
+ }
+
+
+
+
 header('Content-Type: text/javascript');
 define('JIRAFEAU_ROOT', dirname(__FILE__) . '/../');
 
@@ -124,6 +221,22 @@ function convertAllDatetimeFields() {
     }
 }
 
+// evil copy and paste from show_link - TODO refactor show link 
+function show_link_from_php (file_name,file_type, reference, delete_code, crypt_key, date)
+{
+    <?php template_js_download_page(); ?>
+    
+
+    var filename = file_name;
+    <?php template_js_email_link(); ?>
+    <?php template_js_delete_link(); ?>
+    <?php template_js_date_function(); ?>
+    var type = file_type;
+    <?php template_js_direct_download();?>
+}
+
+
+
 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% - <?php echo empty($cfg['title']) ? 'Jirafeau' : $cfg['title']; ?>";
 
-    // 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;
-    }
-
+    <?php template_js_download_page(); ?>
     // Email link
     var filename = document.getElementById('file_select').files[0].name;
-    var b = encodeURIComponent("<?php echo t("DL"); ?> \"" + filename + "\":") + "%0D" + "%0A";
-    b += encodeURIComponent(web_root + download_link_href) + "%0D" + "%0A";
-    if (false == isEmpty(date))
-    {
-        b += "%0D" + "%0A" + encodeURIComponent("<?php echo t("VALID_UNTIL"); ?>: " + 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;
+    <?php template_js_email_link(); ?>
+    
+    <?php template_js_delete_link(); ?>
+    <?php template_js_date_function(); ?>
 
-    // Validity date
-    if (isEmpty(date))
-    {
-        document.getElementById('date').style.display = 'none';
-    }
-    else {
-        document.getElementById('date').innerHTML = '<span class="datetime" title="'
-            + dateToUtcString(date) + ' (GMT)">'
-            + date.format('YYYY-MM-DD hh:mm (GMT O)')
-            + '</span>';
-        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;
+    <?php template_js_preview_link(); ?>
 
-        // 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 = '';
-        }
-    }
+    <?php template_js_direct_download();?>
 
-    // 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)
index 4736b7f35b2d1b3d9454f631f26e28b824cfadeb..4991f23b0906edb59c3591d68056b3ef8bd050a6 100644 (file)
@@ -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 '<fieldset><legend>';
+    if (!empty($name)) {
+        echo t('FILENAME') . ": " . jirafeau_escape($name);
+    }
+    if (!empty($file_hash)) {
+        echo t('FILE') . ": " . jirafeau_escape($file_hash);
+    }
+    if (!empty($link_hash)) {
+        echo t('LINK') . ": " . jirafeau_escape($link_hash);
+    }
+    if (empty($name) && empty($file_hash) && empty($link_hash)) {
+        echo t('LS_FILES');
+    }
+    echo '</legend>';
+    echo '<table>';
+    echo '<tr>';
+    echo '<th></th>';
+    echo '<th>' . t('ACTION') . '</th>';
+    echo '</tr>';
+    if ($visitor_function != null) {
+        $visitor_function($name, $file_hash, $link_hash);
+    }
+    echo '</table></fieldset>';
+}
+
+
+
+
+
 /**
  * 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 '<fieldset><legend>';
-    if (!empty($name)) {
-        echo t('FILENAME') . ": " . jirafeau_escape($name);
-    }
-    if (!empty($file_hash)) {
-        echo t('FILE') . ": " . jirafeau_escape($file_hash);
-    }
-    if (!empty($link_hash)) {
-        echo t('LINK') . ": " . jirafeau_escape($link_hash);
-    }
-    if (empty($name) && empty($file_hash) && empty($link_hash)) {
-        echo t('LS_FILES');
-    }
-    echo '</legend>';
-    echo '<table>';
-    echo '<tr>';
-    echo '<th></th>';
-    echo '<th>' . t('ACTION') . '</th>';
-    echo '</tr>';
-
-    /* Get all links files. */
-    $stack = array(VAR_LINKS);
-    while (($d = array_shift($stack)) && $d != null) {
-        $dir = scandir($d);
-        foreach ($dir as $node) {
-            if (strcmp($node, '.') == 0 || strcmp($node, '..') == 0 ||
-                preg_match('/\.tmp/i', "$node")) {
-                continue;
-            }
-            if (is_dir($d . $node)) {
-                /* Push new found directory. */
-                $stack[] = $d . $node . '/';
-            } elseif (is_file($d . $node)) {
-                /* Read link information. */
-                $l = jirafeau_get_link($node);
-                if (!count($l)) {
+    $function = function($name, $file_hash, $link_hash) {
+         /* Get all links files. */
+        $stack = array(VAR_LINKS);
+        while (($d = array_shift($stack)) && $d != null) {
+            $dir = scandir($d);
+            foreach ($dir as $node) {
+                if (strcmp($node, '.') == 0 || strcmp($node, '..') == 0 ||
+                    preg_match('/\.tmp/i', "$node")) {
                     continue;
                 }
-                $ld = jirafeau_get_download_stats($node);
-
-                /* Filter. */
-                if (!empty($name) && !@preg_match("/$name/i", jirafeau_escape($l['file_name']))) {
-                    continue;
+                if (is_dir($d . $node)) {
+                    /* Push new found directory. */
+                    $stack[] = $d . $node . '/';
+                } elseif (is_file($d . $node)) {
+                    /* Read link information. */
+                    $l = jirafeau_get_link($node);
+                    if (!count($l)) {
+                        continue;
+                    }
+
+                    /* Filter. */
+                    if (!empty($name) && !@preg_match("/$name/i", jirafeau_escape($l['file_name']))) {
+                        continue;
+                    }
+                    if (!empty($file_hash) && $file_hash != $l['hash']) {
+                        continue;
+                    }
+                    if (!empty($link_hash) && $link_hash != $node) {
+                        continue;
+                    }
+                    /* Print link information. */
+                    echo '<tr>';
+                    echo '<td>' .
+                    '<strong><a id="upload_link" href="f.php?h='. jirafeau_escape($node) .'" title="' .
+                        t('DL_PAGE') . '">' . jirafeau_escape($l['file_name']) . '</a></strong><br/>';
+                    echo t('TYPE') . ': ' . jirafeau_escape($l['mime_type']) . '<br/>';
+                    echo t('SIZE') . ': ' . jirafeau_human_size($l['file_size']) . '<br>';
+                    echo t('EXPIRE') . ': ' . ($l['time'] == -1 ? '∞' : jirafeau_get_datetimefield($l['time'])) . '<br/>';
+                    echo t('ONETIME') . ': ' . ($l['onetime'] == 'O' ? 'Yes' : 'No') . '<br/>';
+                    echo t('UPLOAD_DATE') . ': ' . jirafeau_get_datetimefield($l['upload_date']) . '<br/>';
+                    if (strlen($l['ip']) > 0) {
+                        echo t('ORIGIN') . ': ' . $l['ip'] . '<br/>';
+                    }
+                    echo '</td><td>';
+                    echo '<form method="post">' .
+                    '<input type = "hidden" name = "action" value = "download"/>' .
+                    '<input type = "hidden" name = "link" value = "' . $node . '"/>' .
+                    jirafeau_admin_csrf_field() .
+                    '<input type = "submit" value = "' . t('DL') . '" />' .
+                    '</form>' .
+                    '<form method="post">' .
+                    '<input type = "hidden" name = "action" value = "delete_link"/>' .
+                    '<input type = "hidden" name = "link" value = "' . $node . '"/>' .
+                    jirafeau_admin_csrf_field() .
+                    '<input type = "submit" value = "' . t('DEL_LINK') . '" />' .
+                    '</form>' .
+                    '<form method="post">' .
+                    '<input type = "hidden" name = "action" value = "delete_file"/>' .
+                    '<input type = "hidden" name = "hash" value = "' . $l['hash'] . '"/>' .
+                    jirafeau_admin_csrf_field() .
+                    '<input type = "submit" value = "' . t('DEL_FILE_LINKS') . '" />' .
+                    '</form>' .
+                    '</td>';
+                    echo '</tr>';
                 }
-                if (!empty($file_hash) && $file_hash != $l['hash']) {
-                    continue;
-                }
-                if (!empty($link_hash) && $link_hash != $node) {
-                    continue;
-                }
-                /* Print link information. */
-                echo '<tr>';
-                echo '<td>' .
-                '<strong><a id="upload_link" href="f.php?h='. jirafeau_escape($node) .'" title="' .
-                    t('DL_PAGE') . '">' . jirafeau_escape($l['file_name']) . '</a></strong><br/>';
-                echo t('TYPE') . ': ' . jirafeau_escape($l['mime_type']) . '<br/>';
-                echo t('SIZE') . ': ' . jirafeau_human_size($l['file_size']) . '<br>';
-                echo t('EXPIRE') . ': ' . ($l['time'] == -1 ? '∞' : jirafeau_get_datetimefield($l['time'])) . '<br/>';
-                echo t('ONETIME') . ': ' . ($l['onetime'] == 'O' ? 'Yes' : 'No') . '<br/>';
-                echo t('UPLOAD_DATE') . ': ' . jirafeau_get_datetimefield($l['upload_date']) . '<br/>';
-                if (strlen($l['ip']) > 0) {
-                    echo t('ORIGIN') . ': ' . $l['ip'] . '<br/>';
-                }
-                echo t('DOWNLOAD_COUNT') . ': ' . $ld['count'] . '<br/>';
-                if ($ld['count'] > 0) {
-                    echo t('DOWNLOAD_DATE') . ': ' . jirafeau_get_datetimefield($ld['date']) . '<br/>';
-                    echo t('DOWNLOAD_IP') . ': ' . $ld['ip'] . '<br/>';
-                }
-                echo '</td><td>';
-                echo '<form method="post">' .
-                '<input type = "hidden" name = "action" value = "download"/>' .
-                '<input type = "hidden" name = "link" value = "' . $node . '"/>' .
-                jirafeau_admin_csrf_field() .
-                '<input type = "submit" value = "' . t('DL') . '" />' .
-                '</form>' .
-                '<form method="post">' .
-                '<input type = "hidden" name = "action" value = "delete_link"/>' .
-                '<input type = "hidden" name = "link" value = "' . $node . '"/>' .
-                jirafeau_admin_csrf_field() .
-                '<input type = "submit" value = "' . t('DEL_LINK') . '" />' .
-                '</form>' .
-                '<form method="post">' .
-                '<input type = "hidden" name = "action" value = "delete_file"/>' .
-                '<input type = "hidden" name = "hash" value = "' . $l['hash'] . '"/>' .
-                jirafeau_admin_csrf_field() .
-                '<input type = "submit" value = "' . t('DEL_FILE_LINKS') . '" />' .
-                '</form>' .
-                '</td>';
-                echo '</tr>';
             }
         }
-    }
-    echo '</table></fieldset>';
+        };
+        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) {
+    ?>
+
+    <div id="upload_finished">
+    <p><?php echo t('FILE_UP') ?></p>
+
+    <div id="upload_finished_download_page">
+    <p>
+        <a id="upload_link" href=""><?php echo t('DL_PAGE') ?></a>
+        <a id="upload_link_email" href=""><img id="upload_image_email"/></a>
+    </p><p>
+        <code id=upload_link_text></code>
+        <button id="upload_link_button">&#128203;</button>
+    </p>
+    </div>
+
+    <?php if ($preview == true) {
+    ?>
+    <div id="upload_finished_preview">
+    <p>
+        <a id="preview_link" href=""><?php echo t('VIEW_LINK') ?></a>
+    </p><p>
+        <code id=preview_link_text></code>
+        <button id="preview_link_button">&#128203;</button>
+    </p>
+    </div>
+    <?php
+} ?>
+
+    <div id="upload_direct_download">
+    <p>
+        <a id="direct_link" href=""><?php echo t('DIRECT_DL') ?></a>
+    </p><p>
+        <code id=direct_link_text></code>
+        <button id="direct_link_button">&#128203;</button>
+    </p>
+    </div>
+
+    <div id="upload_delete">
+    <p>
+        <a id="delete_link" href=""><?php echo t('DELETE_LINK') ?></a>
+    </p><p>
+        <code id=delete_link_text></code>
+        <button id="delete_link_button">&#128203;</button>
+    </p>
+    </div>
+
+    <div id="upload_validity">
+    <p><?php echo t('VALID_UNTIL'); ?>:</p>
+    <p id="date"></p>
+    </div>
+</div>
+<?php 
+}
+
+function jirafeau_get_expiration_time_options() {
+    return 
+    array(
+        array(
+          'value' => '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 
+    '<select name="time" id="select_time">';
+        
+        
+        $expirationTimeOptions = jirafeau_get_expiration_time_options();
+
+        foreach ($expirationTimeOptions as $expirationTimeOption) {
+            $selected = ($expirationTimeOption['value'] === $cfg['availability_default'])? 'selected="selected"' : '';
+            if (true === $cfg['availabilities'][$expirationTimeOption['value']]) {
+                echo '<option value="' . $expirationTimeOption['value'] . '" ' .
+              $selected . '>' . t($expirationTimeOption['label']) . '</option>';
+            }
+        }
+        echo '</select>';
+ }
+
+ 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),
+    ];
+}
index a048c2b79d7a73bee3588239970580c598dd8066..f8a9ad6a297666b24ce4e7fc00156a5bd8a698e6 100644 (file)
@@ -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": "",
index 7f38ca97e9794a69fc68ba2acd97c0eb3c81a52d..1fa1e6f07bea7d342412c7c1d60ef53340a0c7ff 100644 (file)
@@ -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": "",
index 796ceaa96fee4bf9e306dc36902e7bd9cd32a5a1..4c86aefcad0518b238fd3534c6b3e36e329f5169 100644 (file)
@@ -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": "",
index 0a949679695979b42317d523f33246aa0af21e8d..353cbd5215d5ed5157ac04a775c0100131f533bc 100644 (file)
@@ -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": "",
index 9fa849998811ca5f62acc0694382b89f606dfe0f..900d6185b76ee8a2c6ad5f5002ce378fafcf0a59 100644 (file)
@@ -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",
index 6277346fc5ae642fc71d3d72ec2230fccd3be7be..f4f30fe8fd02f8b48cb99c3d44ccdf995839b4ba 100644 (file)
@@ -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": "",
index 8aee6260e31a42476f468f40cceddd6c6b973613..a310461ca189f3e647298d32353844d39a46f034 100644 (file)
@@ -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": "",
index a08c46f369fe7c518af1ec9a74e345f35020dbf6..645bcefb3784c31f643a6d4f95a9ce0644b87917 100644 (file)
@@ -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": "",
index ea3c2901e17e898d8f284a440049177cc1d2449e..76062b526f547d1591a3dccfff50fdff2039b1d3 100644 (file)
@@ -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",
index a0da96f5b773bf88ebe1ab8e543e4ebbbff1f0ea..d9ea2f581980301e2575d086101043f0dca5ee6c 100644 (file)
@@ -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": "",
index 092980aa9b79e8f7c47a2816921e83b7c8194659..aa7559deee7ba9e198c8ff3d687ba2b93fd555dc 100644 (file)
@@ -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",
index 50530410f4a766a10a63e76cf1fa6b7e30103b8c..339c4685de5aa351e1e7679a69d8688714b16112 100644 (file)
@@ -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",
index 6277346fc5ae642fc71d3d72ec2230fccd3be7be..f4f30fe8fd02f8b48cb99c3d44ccdf995839b4ba 100644 (file)
@@ -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": "",
index db7eecf0e3d064d166abb7bbf071f1e144d20aba..21c28d1d9f7cde5b0fcf153ab6db208db6870c69 100644 (file)
@@ -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": "",
index a9162abd1bb580091477d7db431e674e9c858f7b..98506835061b527705711afa399ce6aaa238a5cb 100644 (file)
@@ -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",
index 3e40020b7119f2d7c8fcd2cc60a630a67e1090f6..f5c72b61ed85efce717fcaab8b4d372990d8eb83 100644 (file)
@@ -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": "",
index 5c19acc64f93edeeacfe53177537ff6a19d4208f..93490971a3ec0d35d880adba226728c1d493f2f0 100644 (file)
@@ -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": "",
index 788ce9e12a1d8269a6acf3bfbe272ab39b13ddaf..fb75482ba5293a8684deeb7accb171d1efc07a5e 100644 (file)
@@ -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": "",
index 4d3b8e0e29e3c39d72b5ad0b8d2dff47eb3f65e3..a381b821bb28a8a367412f48590a69c41c6a4d2a 100644 (file)
@@ -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": "",
index 74fc27631d1e2523e80fb7d76497f4f25438d100..4ed976106dc27631a17f181b73d59258b483eb7d 100644 (file)
@@ -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": "",
index c4e53b5258824d759de6728f42fc0c6101c1b041..2b8600b9842014b087fd51597c8955ab4a45e2dc 100644 (file)
@@ -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",
index ee6a2e818439c6b20c1132d866e06613974fca78..0a39a65954dd2d0a76432c1f92d683389eb1caf2 100644 (file)
@@ -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": "",
index 5c19acc64f93edeeacfe53177537ff6a19d4208f..93490971a3ec0d35d880adba226728c1d493f2f0 100644 (file)
@@ -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": "",
index 45aeaaa5358c925ea4c6eb3b13ad0f81655bf38d..e1b1bcee109b77393ec88d3566f0d30815673ed6 100644 (file)
@@ -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": "",
index 6277346fc5ae642fc71d3d72ec2230fccd3be7be..f4f30fe8fd02f8b48cb99c3d44ccdf995839b4ba 100644 (file)
@@ -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": "",
index c01c93d6c00ca863d9236f436c0d152c432b06f1..e97fa01071c453b57aa1b6e1843a9b6bf1204fd6 100644 (file)
@@ -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": "",
index ce80c40d803a152dd23655bf6416d5d9492e5f90..c5a62971abcca3493b55c348927f6316d67534de 100644 (file)
@@ -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",
index 1855d0bc5426798884263667522d819537af4ce5..ca4aa746f12ce8d56cbf51ed3f657c99eba2b556 100644 (file)
@@ -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",
index 07a814a94747932944756b75a24ef8f9ef279fc1..6a1fa9a929a9a08055494f6abd24c2c206b31714 100644 (file)
@@ -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": "",
index 6277346fc5ae642fc71d3d72ec2230fccd3be7be..f4f30fe8fd02f8b48cb99c3d44ccdf995839b4ba 100644 (file)
@@ -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": "",
index 9ec79a96c46feca94021e07e4e7b7ed960a3528c..f326529fa5ad89fc1005eff50545731ffd2e3273 100644 (file)
@@ -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",
index c902a9c4f32e735c1847e1cdb827eb151b1df158..638dc08196023b2a958981d6b9939056763d153f 100644 (file)
@@ -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",
index dbe2046b563782ccf1a1d94858dca77d1d625df4..fe03dec0788ef51a66e5213d44beba3ef7f7a16b 100644 (file)
@@ -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": "",
index 6452559d0b285db3dbf064728745050a90fb5078..e9dc7f1ca2be6056524fcc008c231da23ea0ceef 100644 (file)
@@ -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": "",
index 6277346fc5ae642fc71d3d72ec2230fccd3be7be..f4f30fe8fd02f8b48cb99c3d44ccdf995839b4ba 100644 (file)
@@ -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": "",
index 54401df01ae1d6f5e72c2e941d4ecd0dc6365afb..eb4a94da1be823692a2c8cc9c9fcafada525586c 100644 (file)
@@ -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": "",
index e40d2b95789c193cc35925778f87ded09e646696..a69e18dac8be92464aa2470043f64b3b544f14a2 100644 (file)
@@ -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": "",
index 7f06388f31c5cff4d6a3dc1a3ad92d92c303338a..bb4c65deaf3c80384a37bf572d3e9965a27135aa 100644 (file)
@@ -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": "",
index 6277346fc5ae642fc71d3d72ec2230fccd3be7be..f4f30fe8fd02f8b48cb99c3d44ccdf995839b4ba 100644 (file)
@@ -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": "",
index 53f23a27067579846d08a506cd1505ad2add0614..77556880c7e910b381b9a2ce7b619c3f8962cb75 100644 (file)
@@ -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": "",
index 01452063d0d999da0693c3e7b53639c5ecfbfc61..83997534e0cc4de816e21385a1c5e4bd975c0f97 100644 (file)
@@ -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",
index d6e0c1dc7321a66c995fc921dae8f94a8736d3b0..58c4f51a6141e1fb5b1b3c4c08a94d3b907d8ba7 100644 (file)
@@ -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": "",
index cfaefffe85b89c7b3751f84f800a59d0084a79c8..ee38ca9983245d88899aa336e13344c9b34ad745 100644 (file)
@@ -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": "",
     "ONETIME": "",
     "UPLOAD_DATE": "",
     "ORIGIN": "",
+    "DOWNLOAD_COUNT": "",
+    "DOWNLOAD_DATE": "",
+    "DOWNLOAD_IP": "",
     "ACTION": "",
     "DEL_LINK": "",
     "DEL_FILE_LINKS": "",
index 6277346fc5ae642fc71d3d72ec2230fccd3be7be..f4f30fe8fd02f8b48cb99c3d44ccdf995839b4ba 100644 (file)
@@ -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": "",
index 239a4329a7aa2ba0ca043b2c2b2ece481d0deeee..c29255ed840c0e16f1ace4f092470ff7f807250e 100644 (file)
@@ -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",
index 6b9e17e573579a5a519b20efd1b7889842d4bc97..f609ac84653d9db5edb53c4303e20a4226f90844 100644 (file)
@@ -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": "",
index bcfad0a769376f95d89873afd2238907a9627fa2..4dfcf33ee3b2fe234e99881f67d1676190e24317 100644 (file)
@@ -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": "",
index cf65cc5a2691bf164e903ff18107334e269c4dde..43495b118d2752514ed166f69ed64938e6019c4b 100644 (file)
@@ -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": "",
index a571dcb09f3501ef89ccd9505bbe3ee0d35066da..2e8bbf74a9dd3ad75a97da5897aef7ec83602f57 100644 (file)
@@ -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": "",
index efe238f730b420521a44c05156d0943c2d6bd982..637ce42b429cb93f9211575a5ab95edfaeaf5c48 100644 (file)
@@ -4,6 +4,7 @@
         <?php
           echo t('MADE_WITH') .
             ' <a href="' . JIRAFEAU_WEBSITE . '" target="_blank" rel="noopener noreferrer">' . t('JI_PROJECT') . '</a>' .
+            '<p> ' . t('DESIGNED')  . ' ' .  $cfg['contactperson'] . '</p>'  .
             ' (<a href="https://www.gnu.org/licenses/agpl.html" target="_blank" rel="noopener noreferrer"><abbr title="GNU Affero General Public License v3">AGPL-3.0</abbr></a>)';
         ?>
         <!-- Installation dependent links -->
index 8ebcce325fd078b50ada64535c7adc372c9f1285..6ef117ed13ee5c0a9c1b5417e7ef3a99a5326fee 100644 (file)
@@ -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']) {

patrick-canterino.de