]> git.p6c8.net - jirafeau/pcanterino.git/commitdiff
add short link support
authorFlorian <7305144-fm-sys@users.noreply.gitlab.com>
Sat, 30 Aug 2025 12:13:45 +0000 (12:13 +0000)
committerPatrick Canterino <patrick@patrick-canterino.de>
Sat, 30 Aug 2025 12:13:45 +0000 (14:13 +0200)
.gitignore
.htaccess.sample [new file with mode: 0644]
lib/config.original.php
lib/functions.js.php

index 4c13bde9cd92aff8fce03d06c24d26dab14bea2c..02ef59ec58544f6df95b136de2f10b3e72c07ad0 100644 (file)
@@ -12,4 +12,5 @@ composer.phar
 .*
 !.gitlab-ci.yml
 !.gitignore
-!.dockerignore
\ No newline at end of file
+!.dockerignore
+!.htaccess.sample
\ No newline at end of file
diff --git a/.htaccess.sample b/.htaccess.sample
new file mode 100644 (file)
index 0000000..98d1d80
--- /dev/null
@@ -0,0 +1,7 @@
+<IfModule mod_rewrite.c>
+    RewriteEngine On
+
+    # Match URLs with an 8-character alphanumeric ID
+    RewriteRule ^([a-zA-Z0-9_-]{8})$ f.php?h=$1 [L,QSA]
+</IfModule>
+
index 8aec8572dc52948ec3e89bc57a61e84e506d1fd0..876ddbae4516ab4764aee7a83ab20c6f361d87fe 100644 (file)
@@ -34,6 +34,13 @@ $cfg['web_root'] = '';
  */
 $cfg['var_root'] = '';
 
+/* Activating 'use_shortlinks' will allow you to use shortened download links
+ * This requires a web server that supports URL rewriting, like Apache with mod_rewrite.
+ * If you are using Apache, copy the provided '.htaccess.sample' file  in the root directory of
+ * Jirafeau and store it as '.htaccess'. For other web servers, manual configuration is required.
+ */
+$cfg['use_shortlinks'] = false;
+
 /* Language - choose between 'auto' or any language located in the /lib/locales/ folder.
  * The mode »auto« will cause the script to detect the user's browser information
  * and offer a matching language, or use »en« if it is not available.
index b8888a69f90114cba914523fc738301e46e93fd7..29d50c198edfbc321a0d1855eadd8624f4baa15b 100644 (file)
@@ -25,7 +25,9 @@ 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';
+        var preview_link_href = use_shortlinks ? '' : 'f.php?h=';
+        preview_link_href += reference;
+        preview_link_href += use_shortlinks ? '?p=1' : '&p=1';
         if (crypt_key.length > 0)
         {
             preview_link_href += '&k=' + crypt_key;
@@ -50,10 +52,12 @@ function template_js_download_page()
 {
     ?>
     // Download page
-    var download_link_href = 'f.php?h=' + reference;
+    var download_link_href = use_shortlinks ? '' : 'f.php?h=';
+    download_link_href += reference;
     if (crypt_key.length > 0)
     {
-        download_link_href += '&k=' + crypt_key;
+        download_link_href += use_shortlinks ? '?k=' : '&k='
+        download_link_href += crypt_key;
     }
     if (!!document.getElementById('upload_finished_download_page'))
     {
@@ -79,7 +83,10 @@ function template_js_delete_link()
 {
     ?>
     // Delete link
-    var delete_link_href = 'f.php?h=' + reference + '&d=' + delete_code;
+    var delete_link_href = use_shortlinks ? '' : 'f.php?h=';
+    delete_link_href += reference;
+    delete_link_href += use_shortlinks ? '?d=' : '&d=';
+    delete_link_href += delete_code;
     document.getElementById('delete_link').href = delete_link_href;
     document.getElementById('delete_link_text').innerHTML = web_root + delete_link_href;
     <?php
@@ -88,7 +95,10 @@ function template_js_direct_download()
 {
     ?>
     // Direct download link
-    var direct_download_link_href = 'f.php?h=' + reference + '&d=1';
+    //var direct_download_link_href = 'f.php?h=' + reference + '&d=1';
+    var direct_download_link_href = use_shortlinks ? '' : 'f.php?h=';
+    direct_download_link_href += reference;
+    direct_download_link_href += use_shortlinks ? '?d=1' : '&d=1';
     if (crypt_key.length > 0)
     {
         direct_download_link_href += '&k=' + crypt_key;
@@ -132,6 +142,7 @@ require(JIRAFEAU_ROOT . 'lib/lang.php');
 ?>
 // @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
 var web_root = "<?php echo $cfg['web_root']; ?>";
+var use_shortlinks = <?php echo ($cfg['use_shortlinks'] === true) ? 'true' : 'false'; ?>;
 
 var lang_array = <?php echo json_lang_generator(null); ?>;
 var lang_array_fallback = <?php echo json_lang_generator("en"); ?>;

patrick-canterino.de