Changeset 264 in t29-www for lib/js.php
- Timestamp:
- May 31, 2012, 1:47:32 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lib/js.php
r262 r264 4 4 $lib = dirname(__FILE__); 5 5 $webroot = realpath("$lib/../"); # file path to root of t29 web installation 6 $cache_file = "$webroot/shared/cache/compressed.js";6 $cache_file = 'compressed.js'; 7 7 $module_dir = "$webroot/shared/js-v6/modules"; 8 8 $modules = glob("$module_dir/*.js"); 9 9 10 10 $debug = isset($_GET['debug']); // skip cache and just concat everything 11 $purge_cache = isset($_GET['purge_cache']); // rebuild cache file (compressed)12 11 13 if(!$debug && !$purge_cache) { 14 // check cache and all input files 15 $filem_cache = @filemtime($cache_file); 16 $filem_moddir = @filemtime($module_dir); // if new modules were added 17 $filem_modules = array_reduce(array_map(function($x){return @filemtime($x);}, $modules), 'max'); 18 $cache_valid = $filem_cache && $filem_modules < $filem_cache && $filem_moddir < $filem_cache; 19 20 if($cache_valid) { 21 header("Last-Modified: ".gmdate("D, d M Y H:i:s", $filem_cache)." GMT"); 22 if(@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $filem_cache) 23 // client already has page cached locally 24 header("HTTP/1.1 304 Not Modified"); 25 else 26 readfile($cache_file); 27 exit; 28 } 12 if(!$debug) { 13 require "$lib/cache.php"; 14 $js_cache = new t29Cache(); 15 $js_cache->test_files = $modules; 16 $js_cache->set_cache_file($webroot, $cache_file); 17 $js_cache->try_cache_and_exit(); 18 $js_cache->start_cache('minify_javascript', true); 29 19 } 30 20 31 if(!$debug) ob_start();32 21 $filenames = array_map('basename', $modules); // filenames like foo.js 33 22 ?> … … 47 36 */ 48 37 <?php 38 39 $header = ob_get_contents(); // for prepending it to minified code 49 40 50 41 foreach($modules as $i => $mod) { … … 66 57 } 67 58 68 if($debug) exit; // just here without compressing etc.69 59 70 $code = ob_get_flush(); 71 72 // reduces code size about 1/2 - before: 23kB, after: 12kB 73 require "$lib/JavaScriptMinifier.php"; 74 $code = JavaScriptMinifier::minify($code); 75 76 // write out file. 77 file_put_contents($cache_file, $code); 78 79 print $code; 60 function minify_javascript($code) { 61 global $lib, $header; 62 // reduces code size about 1/2 - before: 23kB, after: 12kB 63 require "$lib/JavaScriptMinifier.php"; 64 $minified = JavaScriptMinifier::minify($code); 65 return $header . $minified; 66 }
Note: See TracChangeset
for help on using the changeset viewer.