This repository has been archived by the owner on Dec 18, 2020. It is now read-only.
forked from srsolutionsag/Uni_Freiburg_5.0-Skin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathphysik.js.php
68 lines (60 loc) · 2.39 KB
/
physik.js.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
/**
* PHYSIK ONLINE 5.1 JavaScripts - Server side compiling und packing
* Vergleichbar mit physik.css.php
* Diese PHP-File gibt eine Javascript-Datei aus.
**/
header('Content-type: text/javascript; charset=utf-8');
// Parameter:
// Temporaere nur interne Cache-Datei auf dem Server
$outfile = "/tmp/po51-ilias-generated.js";
// Alle Dateien, die auf diese Globbing-Pattern passen, werden bei jedem
// PHP-Aufruf auf Aenderungen ueberprueft.
$watch_files = glob("js/*.js");
// Soll Browser-Cache-Information verwendet werden (spart Bandbreite) oder
// nicht? Default: false.
$ignore_http_caching = false;
// Ab hier das Programm
$mtime_cache_file = @filemtime($outfile);
$mtime_test_files = array_map(
function($x){return @filemtime($x);},
$watch_files);
$mtime_test_max = array_reduce($mtime_test_files, 'max');
$cache_is_valid = $mtime_cache_file
&& $mtime_test_max < $mtime_cache_file;
$debug = isset($_GET["debug"]);
$regenerate = !$cache_is_valid || $debug;
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $mtime_cache_file)." GMT");
if($regenerate) {
// gepackte Javascript-File erzeugen
$javascript = "";
foreach($watch_files as $file) {
$javascript .= "\n\n/* -------------- $file ------------------- */\n\n";
$javascript .= file_get_contents($file);
}
// load minifier
include "lib/JavaScriptMinifier.php";
$javascript = JavaScriptMinifier::minify($javascript);
file_put_contents($outfile, $javascript);
} else {
// Cache is valid!
// HTTP Caching verwenden, wenn Client bereits neuste Version hat, nicht nochmal
// uebertragen
if(!$ignore_http_caching && @strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $mtime_cache_file) {
header("HTTP/1.1 304 Not Modified");
// important - no more output!
exit;
} // else: Ausgaben machen, siehe unten:
}
?>
/*!
* PhysikOnline (PO5) JavaScript Code - https://elearning.physik.uni-frankfurt.de/
* Generated from a bunch of javascript files
* --- DIESE DATEI NICHT VON HAND BEARBEITEN ---
* Coded by Philip Arnold and Sven Koeppel
*
* Packed: <?php echo implode(' ', $watch_files); ?>
* Arguments: ?debug=true - regenerate cache file
* Generation Date: <?php print date('r', $mtime_cache_file); ?><?php #print $regenerate ? "Just regenerated" : date('r', $mtime_cache_file); ?>
**/
<?php if($regenerate) print $javascript; else readfile($outfile); ?>