xref: /dokuwiki/lib/exe/jquery.php (revision 47605f734c16d9b6ba1460c21e215cd3c1663175)
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        DOKU_INC . 'lib/scripts/jquery/jquery-migrate.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(array('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