1<?php 2 3use dokuwiki\Cache\Cache; 4 5if (!defined('DOKU_INC')) define('DOKU_INC', __DIR__ . '/../../'); 6if (!defined('NOSESSION')) define('NOSESSION', true); // we do not use a session or authentication here (better caching) 7if (!defined('NL')) define('NL', "\n"); 8if (!defined('DOKU_DISABLE_GZIP_OUTPUT')) define('DOKU_DISABLE_GZIP_OUTPUT', 1); // we gzip ourself here 9require_once(DOKU_INC . 'inc/init.php'); 10 11// MAIN 12header('Content-Type: application/javascript; charset=utf-8'); 13jquery_out(); 14 15/** 16 * Delivers the jQuery JavaScript 17 * 18 * We do absolutely nothing fancy here but concatenating the different files 19 * and handling conditional and gzipped requests 20 * 21 * uses cache or fills it 22 */ 23function jquery_out() 24{ 25 $cache = new Cache('jquery', '.js'); 26 $files = [ 27 DOKU_INC . 'lib/scripts/jquery/jquery.min.js', 28 DOKU_INC . 'lib/scripts/jquery/jquery-ui.min.js' 29 ]; 30 $cache_files = $files; 31 $cache_files[] = __FILE__; 32 33 // check cache age & handle conditional request 34 // This may exit if a cache can be used 35 $cache_ok = $cache->useCache(['files' => $cache_files]); 36 http_cached($cache->cache, $cache_ok); 37 38 $js = ''; 39 foreach ($files as $file) { 40 $js .= file_get_contents($file) . "\n"; 41 } 42 stripsourcemaps($js); 43 44 http_cached_finish($cache->cache, $js); 45} 46