1<?php
2
3use dokuwiki\Cache\Cache;
4
5if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__) . '/../../');
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    $cache = new Cache('jquery', '.js');
25    $files = array(
26        DOKU_INC . 'lib/scripts/jquery/jquery.min.js',
27        DOKU_INC . 'lib/scripts/jquery/jquery-ui.min.js',
28    );
29    $cache_files = $files;
30    $cache_files[] = __FILE__;
31
32    // check cache age & handle conditional request
33    // This may exit if a cache can be used
34    $cache_ok = $cache->useCache(array('files' => $cache_files));
35    http_cached($cache->cache, $cache_ok);
36
37    $js = '';
38    foreach($files as $file) {
39        $js .= file_get_contents($file)."\n";
40    }
41    stripsourcemaps($js);
42
43    http_cached_finish($cache->cache, $js);
44}
45