angelovcom.net

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

load-scripts.php (1693B)


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