3 /** |
3 /** |
4 * Disable error reporting |
4 * Disable error reporting |
5 * |
5 * |
6 * Set this to error_reporting( -1 ) for debugging. |
6 * Set this to error_reporting( -1 ) for debugging. |
7 */ |
7 */ |
8 error_reporting(0); |
8 error_reporting( 0 ); |
9 |
9 |
10 /** Set ABSPATH for execution */ |
10 /** Set ABSPATH for execution */ |
11 if ( ! defined( 'ABSPATH' ) ) { |
11 if ( ! defined( 'ABSPATH' ) ) { |
12 define( 'ABSPATH', dirname( dirname( __FILE__ ) ) . '/' ); |
12 define( 'ABSPATH', dirname( dirname( __FILE__ ) ) . '/' ); |
13 } |
13 } |
14 |
14 |
15 define( 'WPINC', 'wp-includes' ); |
15 define( 'WPINC', 'wp-includes' ); |
16 |
16 |
17 $load = $_GET['load']; |
17 $load = $_GET['load']; |
18 if ( is_array( $load ) ) |
18 if ( is_array( $load ) ) { |
19 $load = implode( '', $load ); |
19 $load = implode( '', $load ); |
|
20 } |
20 |
21 |
21 $load = preg_replace( '/[^a-z0-9,_-]+/i', '', $load ); |
22 $load = preg_replace( '/[^a-z0-9,_-]+/i', '', $load ); |
22 $load = array_unique( explode( ',', $load ) ); |
23 $load = array_unique( explode( ',', $load ) ); |
23 |
24 |
24 if ( empty($load) ) |
25 if ( empty( $load ) ) { |
25 exit; |
26 exit; |
|
27 } |
26 |
28 |
27 require( ABSPATH . 'wp-admin/includes/noop.php' ); |
29 require( ABSPATH . 'wp-admin/includes/noop.php' ); |
28 require( ABSPATH . WPINC . '/script-loader.php' ); |
30 require( ABSPATH . WPINC . '/script-loader.php' ); |
29 require( ABSPATH . WPINC . '/version.php' ); |
31 require( ABSPATH . WPINC . '/version.php' ); |
30 |
32 |
31 $compress = ( isset($_GET['c']) && $_GET['c'] ); |
|
32 $force_gzip = ( $compress && 'gzip' == $_GET['c'] ); |
|
33 $expires_offset = 31536000; // 1 year |
33 $expires_offset = 31536000; // 1 year |
34 $out = ''; |
34 $out = ''; |
35 |
35 |
36 $wp_scripts = new WP_Scripts(); |
36 $wp_scripts = new WP_Scripts(); |
37 wp_default_scripts($wp_scripts); |
37 wp_default_scripts( $wp_scripts ); |
|
38 wp_default_packages_vendor( $wp_scripts ); |
|
39 wp_default_packages_scripts( $wp_scripts ); |
38 |
40 |
39 if ( isset( $_SERVER['HTTP_IF_NONE_MATCH'] ) && stripslashes( $_SERVER['HTTP_IF_NONE_MATCH'] ) === $wp_version ) { |
41 if ( isset( $_SERVER['HTTP_IF_NONE_MATCH'] ) && stripslashes( $_SERVER['HTTP_IF_NONE_MATCH'] ) === $wp_version ) { |
40 $protocol = $_SERVER['SERVER_PROTOCOL']; |
42 $protocol = $_SERVER['SERVER_PROTOCOL']; |
41 if ( ! in_array( $protocol, array( 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0' ) ) ) { |
43 if ( ! in_array( $protocol, array( 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0' ) ) ) { |
42 $protocol = 'HTTP/1.0'; |
44 $protocol = 'HTTP/1.0'; |
44 header( "$protocol 304 Not Modified" ); |
46 header( "$protocol 304 Not Modified" ); |
45 exit(); |
47 exit(); |
46 } |
48 } |
47 |
49 |
48 foreach ( $load as $handle ) { |
50 foreach ( $load as $handle ) { |
49 if ( !array_key_exists($handle, $wp_scripts->registered) ) |
51 if ( ! array_key_exists( $handle, $wp_scripts->registered ) ) { |
50 continue; |
52 continue; |
|
53 } |
51 |
54 |
52 $path = ABSPATH . $wp_scripts->registered[$handle]->src; |
55 $path = ABSPATH . $wp_scripts->registered[ $handle ]->src; |
53 $out .= get_file($path) . "\n"; |
56 $out .= get_file( $path ) . "\n"; |
54 } |
57 } |
55 |
58 |
56 header("Etag: $wp_version"); |
59 header( "Etag: $wp_version" ); |
57 header('Content-Type: application/javascript; charset=UTF-8'); |
60 header( 'Content-Type: application/javascript; charset=UTF-8' ); |
58 header('Expires: ' . gmdate( "D, d M Y H:i:s", time() + $expires_offset ) . ' GMT'); |
61 header( 'Expires: ' . gmdate( 'D, d M Y H:i:s', time() + $expires_offset ) . ' GMT' ); |
59 header("Cache-Control: public, max-age=$expires_offset"); |
62 header( "Cache-Control: public, max-age=$expires_offset" ); |
60 |
|
61 if ( $compress && ! ini_get('zlib.output_compression') && 'ob_gzhandler' != ini_get('output_handler') && isset($_SERVER['HTTP_ACCEPT_ENCODING']) ) { |
|
62 header('Vary: Accept-Encoding'); // Handle proxies |
|
63 if ( false !== stripos($_SERVER['HTTP_ACCEPT_ENCODING'], 'deflate') && function_exists('gzdeflate') && ! $force_gzip ) { |
|
64 header('Content-Encoding: deflate'); |
|
65 $out = gzdeflate( $out, 3 ); |
|
66 } elseif ( false !== stripos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') && function_exists('gzencode') ) { |
|
67 header('Content-Encoding: gzip'); |
|
68 $out = gzencode( $out, 3 ); |
|
69 } |
|
70 } |
|
71 |
63 |
72 echo $out; |
64 echo $out; |
73 exit; |
65 exit; |