@@ -2,9 +2,9 @@ discard block |
||
2 | 2 | |
3 | 3 | //Check everything exists before using it |
4 | 4 | if(!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) |
5 | - $_SERVER['HTTP_ACCEPT_ENCODING'] = ''; |
|
5 | + $_SERVER['HTTP_ACCEPT_ENCODING'] = ''; |
|
6 | 6 | if(!isset($_SERVER['HTTP_USER_AGENT'])) |
7 | - $_SERVER['HTTP_USER_AGENT'] = ''; |
|
7 | + $_SERVER['HTTP_USER_AGENT'] = ''; |
|
8 | 8 | |
9 | 9 | // Determine supported compression method |
10 | 10 | $gzip = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'); |
@@ -15,30 +15,30 @@ discard block |
||
15 | 15 | |
16 | 16 | // Check for buggy versions of Internet Explorer |
17 | 17 | if (!strstr($_SERVER['HTTP_USER_AGENT'], 'Opera') && |
18 | - preg_match('/^Mozilla\/4\.0 \(compatible; MSIE ([0-9]\.[0-9])/i', $_SERVER['HTTP_USER_AGENT'], $matches)) |
|
18 | + preg_match('/^Mozilla\/4\.0 \(compatible; MSIE ([0-9]\.[0-9])/i', $_SERVER['HTTP_USER_AGENT'], $matches)) |
|
19 | 19 | { |
20 | - $version = floatval($matches[1]); |
|
20 | + $version = floatval($matches[1]); |
|
21 | 21 | |
22 | - if ($version < 6) |
|
23 | - $encoding = 'none'; |
|
22 | + if ($version < 6) |
|
23 | + $encoding = 'none'; |
|
24 | 24 | |
25 | - if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) |
|
26 | - $encoding = 'none'; |
|
25 | + if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) |
|
26 | + $encoding = 'none'; |
|
27 | 27 | } |
28 | 28 | |
29 | 29 | //Some servers compress the output of PHP - Don't break in those cases |
30 | 30 | if(ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) |
31 | - $encoding = 'none'; |
|
31 | + $encoding = 'none'; |
|
32 | 32 | |
33 | 33 | $iscompressed = file_exists(__FILE__.'.'.$encoding); |
34 | 34 | if($encoding != 'none' && $iscompressed == false) |
35 | 35 | { |
36 | - $flag = ($encoding == 'gzip' ? FORCE_GZIP : FORCE_DEFLATE); |
|
37 | - $code = file_get_contents(__FILE__.'.none'); |
|
38 | - $contents = gzencode($code,9,$flag); |
|
36 | + $flag = ($encoding == 'gzip' ? FORCE_GZIP : FORCE_DEFLATE); |
|
37 | + $code = file_get_contents(__FILE__.'.none'); |
|
38 | + $contents = gzencode($code,9,$flag); |
|
39 | 39 | }else{ |
40 | - //Get data |
|
41 | - $contents = file_get_contents(__FILE__.'.'.$encoding); |
|
40 | + //Get data |
|
41 | + $contents = file_get_contents(__FILE__.'.'.$encoding); |
|
42 | 42 | } |
43 | 43 | |
44 | 44 | // first check if we have to send 304 |
@@ -52,36 +52,36 @@ discard block |
||
52 | 52 | $modTimeMatch = (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) === $modTime); |
53 | 53 | |
54 | 54 | if (($modTimeMatch)||($eTagMatch)) { |
55 | - header('HTTP/1.1 304 Not Modified'); |
|
56 | - header('Connection: close'); |
|
55 | + header('HTTP/1.1 304 Not Modified'); |
|
56 | + header('Connection: close'); |
|
57 | 57 | } else { |
58 | - // send all sorts of headers |
|
59 | - $expireTime=60*60*24*355; // 1y max according to RFC |
|
60 | - if ($encoding != 'none') { |
|
61 | - header('Content-Encoding: '.$encoding); |
|
62 | - } |
|
63 | - header('Vary: Accept-Encoding'); |
|
64 | - header('Content-Length: '.strlen($contents)); |
|
65 | - header('Content-type: %%CONTENT%%; charset=utf-8'); |
|
66 | - header('Cache-Control: max-age='.$expireTime.', public, must-revalidate'); |
|
67 | - header('Cache-Control: max-age='.$expireTime.', public, immutable'); |
|
68 | - header('Expires: '.gmdate('D, d M Y H:i:s', time() + $expireTime).' GMT'); |
|
69 | - header('ETag: ' . $eTag); |
|
70 | - header('Last-Modified: '.gmdate('D, d M Y H:i:s', $modTime).' GMT'); |
|
58 | + // send all sorts of headers |
|
59 | + $expireTime=60*60*24*355; // 1y max according to RFC |
|
60 | + if ($encoding != 'none') { |
|
61 | + header('Content-Encoding: '.$encoding); |
|
62 | + } |
|
63 | + header('Vary: Accept-Encoding'); |
|
64 | + header('Content-Length: '.strlen($contents)); |
|
65 | + header('Content-type: %%CONTENT%%; charset=utf-8'); |
|
66 | + header('Cache-Control: max-age='.$expireTime.', public, must-revalidate'); |
|
67 | + header('Cache-Control: max-age='.$expireTime.', public, immutable'); |
|
68 | + header('Expires: '.gmdate('D, d M Y H:i:s', time() + $expireTime).' GMT'); |
|
69 | + header('ETag: ' . $eTag); |
|
70 | + header('Last-Modified: '.gmdate('D, d M Y H:i:s', $modTime).' GMT'); |
|
71 | 71 | |
72 | - // send output |
|
73 | - echo $contents; |
|
72 | + // send output |
|
73 | + echo $contents; |
|
74 | 74 | |
75 | - //And write to filesystem cache if not done yet |
|
76 | - if($encoding != 'none' && $iscompressed == false) |
|
77 | - { |
|
78 | - //Write the content we sent |
|
79 | - file_put_contents(__FILE__.'.'.$encoding,$contents); |
|
75 | + //And write to filesystem cache if not done yet |
|
76 | + if($encoding != 'none' && $iscompressed == false) |
|
77 | + { |
|
78 | + //Write the content we sent |
|
79 | + file_put_contents(__FILE__.'.'.$encoding,$contents); |
|
80 | 80 | |
81 | - //And write the new content |
|
82 | - $flag = ($encoding == 'gzip' ? FORCE_DEFLATE : FORCE_GZIP); |
|
83 | - $ext = ($encoding == 'gzip' ? 'deflate' : 'gzip'); |
|
84 | - $contents = gzencode($code,9,$flag); |
|
85 | - file_put_contents(__FILE__.'.'.$ext,$contents); |
|
86 | - } |
|
81 | + //And write the new content |
|
82 | + $flag = ($encoding == 'gzip' ? FORCE_DEFLATE : FORCE_GZIP); |
|
83 | + $ext = ($encoding == 'gzip' ? 'deflate' : 'gzip'); |
|
84 | + $contents = gzencode($code,9,$flag); |
|
85 | + file_put_contents(__FILE__.'.'.$ext,$contents); |
|
86 | + } |
|
87 | 87 | } |
@@ -29,91 +29,91 @@ |
||
29 | 29 | * Exit if called directly. |
30 | 30 | */ |
31 | 31 | if ( ! defined( 'ABSPATH' ) ) { |
32 | - die; |
|
32 | + die; |
|
33 | 33 | } |
34 | 34 | |
35 | 35 | if ( ! class_exists( 'PAnD' ) ) { |
36 | 36 | |
37 | - /** |
|
38 | - * Class PAnD |
|
39 | - */ |
|
40 | - class PAnD { |
|
41 | - |
|
42 | - /** |
|
43 | - * Init hooks. |
|
44 | - */ |
|
45 | - public static function init() { |
|
46 | - add_action( 'admin_enqueue_scripts', array( __CLASS__, 'load_script' ) ); |
|
47 | - add_action( 'wp_ajax_dismiss_admin_notice', array( __CLASS__, 'dismiss_admin_notice' ) ); |
|
48 | - } |
|
49 | - |
|
50 | - /** |
|
51 | - * Enqueue javascript and variables. |
|
52 | - */ |
|
53 | - public static function load_script() { |
|
54 | - |
|
55 | - if(is_customize_preview()) return; |
|
56 | - |
|
57 | - wp_enqueue_script( |
|
58 | - 'dismissible-notices', |
|
59 | - plugins_url( 'dismiss-notice.js', __FILE__ ), |
|
60 | - array( 'jquery', 'common' ), |
|
61 | - false, |
|
62 | - true |
|
63 | - ); |
|
64 | - |
|
65 | - wp_localize_script( |
|
66 | - 'dismissible-notices', |
|
67 | - 'dismissible_notice', |
|
68 | - array( |
|
69 | - 'nonce' => wp_create_nonce( 'dismissible-notice' ), |
|
70 | - ) |
|
71 | - ); |
|
72 | - } |
|
73 | - |
|
74 | - /** |
|
75 | - * Handles Ajax request to persist notices dismissal. |
|
76 | - * Uses check_ajax_referer to verify nonce. |
|
77 | - */ |
|
78 | - public static function dismiss_admin_notice() { |
|
79 | - $option_name = sanitize_text_field( $_POST['option_name'] ); |
|
80 | - $dismissible_length = sanitize_text_field( $_POST['dismissible_length'] ); |
|
81 | - $transient = 0; |
|
82 | - |
|
83 | - if ( 'forever' != $dismissible_length ) { |
|
84 | - // If $dismissible_length is not an integer default to 1 |
|
85 | - $dismissible_length = ( 0 == absint( $dismissible_length ) ) ? 1 : $dismissible_length; |
|
86 | - $transient = absint( $dismissible_length ) * DAY_IN_SECONDS; |
|
87 | - $dismissible_length = strtotime( absint( $dismissible_length ) . ' days' ); |
|
88 | - } |
|
89 | - |
|
90 | - check_ajax_referer( 'dismissible-notice', 'nonce' ); |
|
91 | - set_site_transient( $option_name, $dismissible_length, $transient ); |
|
92 | - wp_die(); |
|
93 | - } |
|
94 | - |
|
95 | - /** |
|
96 | - * Is admin notice active? |
|
97 | - * |
|
98 | - * @param string $arg data-dismissible content of notice. |
|
99 | - * |
|
100 | - * @return bool |
|
101 | - */ |
|
102 | - public static function is_admin_notice_active( $arg ) { |
|
103 | - $array = explode( '-', $arg ); |
|
104 | - $length = array_pop( $array ); |
|
105 | - $option_name = implode( '-', $array ); |
|
106 | - $db_record = get_site_transient( $option_name ); |
|
107 | - |
|
108 | - if ( 'forever' == $db_record ) { |
|
109 | - return false; |
|
110 | - } elseif ( absint( $db_record ) >= time() ) { |
|
111 | - return false; |
|
112 | - } else { |
|
113 | - return true; |
|
114 | - } |
|
115 | - } |
|
116 | - |
|
117 | - } |
|
37 | + /** |
|
38 | + * Class PAnD |
|
39 | + */ |
|
40 | + class PAnD { |
|
41 | + |
|
42 | + /** |
|
43 | + * Init hooks. |
|
44 | + */ |
|
45 | + public static function init() { |
|
46 | + add_action( 'admin_enqueue_scripts', array( __CLASS__, 'load_script' ) ); |
|
47 | + add_action( 'wp_ajax_dismiss_admin_notice', array( __CLASS__, 'dismiss_admin_notice' ) ); |
|
48 | + } |
|
49 | + |
|
50 | + /** |
|
51 | + * Enqueue javascript and variables. |
|
52 | + */ |
|
53 | + public static function load_script() { |
|
54 | + |
|
55 | + if(is_customize_preview()) return; |
|
56 | + |
|
57 | + wp_enqueue_script( |
|
58 | + 'dismissible-notices', |
|
59 | + plugins_url( 'dismiss-notice.js', __FILE__ ), |
|
60 | + array( 'jquery', 'common' ), |
|
61 | + false, |
|
62 | + true |
|
63 | + ); |
|
64 | + |
|
65 | + wp_localize_script( |
|
66 | + 'dismissible-notices', |
|
67 | + 'dismissible_notice', |
|
68 | + array( |
|
69 | + 'nonce' => wp_create_nonce( 'dismissible-notice' ), |
|
70 | + ) |
|
71 | + ); |
|
72 | + } |
|
73 | + |
|
74 | + /** |
|
75 | + * Handles Ajax request to persist notices dismissal. |
|
76 | + * Uses check_ajax_referer to verify nonce. |
|
77 | + */ |
|
78 | + public static function dismiss_admin_notice() { |
|
79 | + $option_name = sanitize_text_field( $_POST['option_name'] ); |
|
80 | + $dismissible_length = sanitize_text_field( $_POST['dismissible_length'] ); |
|
81 | + $transient = 0; |
|
82 | + |
|
83 | + if ( 'forever' != $dismissible_length ) { |
|
84 | + // If $dismissible_length is not an integer default to 1 |
|
85 | + $dismissible_length = ( 0 == absint( $dismissible_length ) ) ? 1 : $dismissible_length; |
|
86 | + $transient = absint( $dismissible_length ) * DAY_IN_SECONDS; |
|
87 | + $dismissible_length = strtotime( absint( $dismissible_length ) . ' days' ); |
|
88 | + } |
|
89 | + |
|
90 | + check_ajax_referer( 'dismissible-notice', 'nonce' ); |
|
91 | + set_site_transient( $option_name, $dismissible_length, $transient ); |
|
92 | + wp_die(); |
|
93 | + } |
|
94 | + |
|
95 | + /** |
|
96 | + * Is admin notice active? |
|
97 | + * |
|
98 | + * @param string $arg data-dismissible content of notice. |
|
99 | + * |
|
100 | + * @return bool |
|
101 | + */ |
|
102 | + public static function is_admin_notice_active( $arg ) { |
|
103 | + $array = explode( '-', $arg ); |
|
104 | + $length = array_pop( $array ); |
|
105 | + $option_name = implode( '-', $array ); |
|
106 | + $db_record = get_site_transient( $option_name ); |
|
107 | + |
|
108 | + if ( 'forever' == $db_record ) { |
|
109 | + return false; |
|
110 | + } elseif ( absint( $db_record ) >= time() ) { |
|
111 | + return false; |
|
112 | + } else { |
|
113 | + return true; |
|
114 | + } |
|
115 | + } |
|
116 | + |
|
117 | + } |
|
118 | 118 | |
119 | 119 | } |
@@ -412,7 +412,7 @@ |
||
412 | 412 | * First element is the filepath, second is the md5 hash of contents |
413 | 413 | * the filepath had when it was being processed. |
414 | 414 | * If we don't have those, we'll bail out early. |
415 | - */ |
|
415 | + */ |
|
416 | 416 | $filepath = null; |
417 | 417 | $filehash = null; |
418 | 418 |