]> git.p6c8.net - jirafeau_project.git/commitdiff
Merge branch 'next-release' into 'f_modularization_wip_rebased'
authorBlackeye <14815724-Blackstareye@users.noreply.gitlab.com>
Mon, 19 Aug 2024 12:35:12 +0000 (12:35 +0000)
committerBlackeye <14815724-Blackstareye@users.noreply.gitlab.com>
Mon, 19 Aug 2024 12:35:12 +0000 (12:35 +0000)
# Conflicts:
#   index.php

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..622015412a8187cab56bfc31afa340e1f9bf02f3 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",
     "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",
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