summaryrefslogtreecommitdiff
path: root/hugo/js/get_scripts.js.php
diff options
context:
space:
mode:
authorTristan Zur <tzur@web.web.ccwn.org>2014-03-27 22:27:47 +0100
committerTristan Zur <tzur@web.web.ccwn.org>2014-03-27 22:27:47 +0100
commitb62676ca5d3d6f6ba3f019ea3f99722e165a98d8 (patch)
tree86722cb80f07d4569f90088eeaea2fc2f6e2ef94 /hugo/js/get_scripts.js.php
Initial commit of intern.ccwn.org contentsHEADmaster
Diffstat (limited to 'hugo/js/get_scripts.js.php')
-rw-r--r--hugo/js/get_scripts.js.php38
1 files changed, 38 insertions, 0 deletions
diff --git a/hugo/js/get_scripts.js.php b/hugo/js/get_scripts.js.php
new file mode 100644
index 0000000..564fda7
--- /dev/null
+++ b/hugo/js/get_scripts.js.php
@@ -0,0 +1,38 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Concatenates reveral js files to reduce the number of
+ * http requests sent to the server
+ *
+ * @package PhpMyAdmin
+ */
+chdir('..');
+
+// Send correct type
+header('Content-Type: text/javascript; charset=UTF-8');
+// Enable browser cache for 1 hour
+header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT');
+
+if (! empty($_GET['scripts']) && is_array($_GET['scripts'])) {
+ foreach ($_GET['scripts'] as $script) {
+ // Sanitise filename
+ $script_name = 'js';
+ $path = explode("/", $script);
+ foreach ($path as $index => $filename) {
+ if (! preg_match("@^\.+$@", $filename)
+ && preg_match("@^[\w\.-]+$@", $filename)
+ ) {
+ // Disallow "." and ".." alone
+ // Allow alphanumeric, "." and "-" chars only
+ $script_name .= DIRECTORY_SEPARATOR . $filename;
+ }
+ }
+ // Output file contents
+ if (preg_match("@\.js$@", $script_name) && is_readable($script_name)) {
+ readfile($script_name);
+ echo ";\n\n";
+ }
+ }
+}
+
+?>