@@ -42,6 +42,9 @@ discard block |
||
42 | 42 | return false; |
43 | 43 | } |
44 | 44 | |
45 | + /** |
|
46 | + * @param string $mime |
|
47 | + */ |
|
45 | 48 | public function cache($code,$mime) { |
46 | 49 | if($this->nogzip == false) { |
47 | 50 | $file = ($this->delayed ? 'delayed.php' : 'default.php'); |
@@ -240,6 +243,9 @@ discard block |
||
240 | 243 | return true; |
241 | 244 | } |
242 | 245 | |
246 | + /** |
|
247 | + * @param string $dir |
|
248 | + */ |
|
243 | 249 | static function checkCacheDir($dir) { |
244 | 250 | // Check and create if not exists |
245 | 251 | if(!file_exists($dir)) { |
@@ -1,5 +1,8 @@ |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly |
|
2 | +if ( ! defined( 'ABSPATH' ) ) { |
|
3 | + exit; |
|
4 | +} |
|
5 | +// Exit if accessed directly |
|
3 | 6 | |
4 | 7 | class autoptimizeCache { |
5 | 8 | private $filename; |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly |
|
2 | +if (!defined('ABSPATH')) exit; // Exit if accessed directly |
|
3 | 3 | |
4 | 4 | class autoptimizeCache { |
5 | 5 | private $filename; |
@@ -7,14 +7,14 @@ discard block |
||
7 | 7 | private $cachedir; |
8 | 8 | private $delayed; |
9 | 9 | |
10 | - public function __construct($md5,$ext='php') { |
|
10 | + public function __construct($md5, $ext = 'php') { |
|
11 | 11 | $this->cachedir = AUTOPTIMIZE_CACHE_DIR; |
12 | 12 | $this->delayed = AUTOPTIMIZE_CACHE_DELAY; |
13 | 13 | $this->nogzip = AUTOPTIMIZE_CACHE_NOGZIP; |
14 | - if($this->nogzip == false) { |
|
14 | + if ($this->nogzip == false) { |
|
15 | 15 | $this->filename = AUTOPTIMIZE_CACHEFILE_PREFIX.$md5.'.php'; |
16 | 16 | } else { |
17 | - if (in_array($ext, array("js","css"))) { |
|
17 | + if (in_array($ext, array("js", "css"))) { |
|
18 | 18 | $this->filename = $ext.'/'.AUTOPTIMIZE_CACHEFILE_PREFIX.$md5.'.'.$ext; |
19 | 19 | } else { |
20 | 20 | $this->filename = AUTOPTIMIZE_CACHEFILE_PREFIX.$md5.'.'.$ext; |
@@ -23,7 +23,7 @@ discard block |
||
23 | 23 | } |
24 | 24 | |
25 | 25 | public function check() { |
26 | - if(!file_exists($this->cachedir.$this->filename)) { |
|
26 | + if (!file_exists($this->cachedir.$this->filename)) { |
|
27 | 27 | // No cached file, sorry |
28 | 28 | return false; |
29 | 29 | } |
@@ -32,8 +32,8 @@ discard block |
||
32 | 32 | } |
33 | 33 | |
34 | 34 | public function retrieve() { |
35 | - if($this->check()) { |
|
36 | - if($this->nogzip == false) { |
|
35 | + if ($this->check()) { |
|
36 | + if ($this->nogzip == false) { |
|
37 | 37 | return file_get_contents($this->cachedir.$this->filename.'.none'); |
38 | 38 | } else { |
39 | 39 | return file_get_contents($this->cachedir.$this->filename); |
@@ -42,48 +42,48 @@ discard block |
||
42 | 42 | return false; |
43 | 43 | } |
44 | 44 | |
45 | - public function cache($code,$mime) { |
|
46 | - if($this->nogzip == false) { |
|
45 | + public function cache($code, $mime) { |
|
46 | + if ($this->nogzip == false) { |
|
47 | 47 | $file = ($this->delayed ? 'delayed.php' : 'default.php'); |
48 | 48 | $phpcode = file_get_contents(AUTOPTIMIZE_PLUGIN_DIR.'/config/'.$file); |
49 | - $phpcode = str_replace(array('%%CONTENT%%','exit;'),array($mime,''),$phpcode); |
|
50 | - file_put_contents($this->cachedir.$this->filename,$phpcode, LOCK_EX); |
|
51 | - file_put_contents($this->cachedir.$this->filename.'.none',$code, LOCK_EX); |
|
52 | - if(!$this->delayed) { |
|
49 | + $phpcode = str_replace(array('%%CONTENT%%', 'exit;'), array($mime, ''), $phpcode); |
|
50 | + file_put_contents($this->cachedir.$this->filename, $phpcode, LOCK_EX); |
|
51 | + file_put_contents($this->cachedir.$this->filename.'.none', $code, LOCK_EX); |
|
52 | + if (!$this->delayed) { |
|
53 | 53 | // Compress now! |
54 | - file_put_contents($this->cachedir.$this->filename.'.deflate',gzencode($code,9,FORCE_DEFLATE), LOCK_EX); |
|
55 | - file_put_contents($this->cachedir.$this->filename.'.gzip',gzencode($code,9,FORCE_GZIP), LOCK_EX); |
|
54 | + file_put_contents($this->cachedir.$this->filename.'.deflate', gzencode($code, 9, FORCE_DEFLATE), LOCK_EX); |
|
55 | + file_put_contents($this->cachedir.$this->filename.'.gzip', gzencode($code, 9, FORCE_GZIP), LOCK_EX); |
|
56 | 56 | } |
57 | 57 | } else { |
58 | 58 | // Write code to cache without doing anything else |
59 | - file_put_contents($this->cachedir.$this->filename,$code, LOCK_EX); |
|
59 | + file_put_contents($this->cachedir.$this->filename, $code, LOCK_EX); |
|
60 | 60 | if (apply_filters('autoptimize_filter_cache_create_static_gzip', false)) { |
61 | 61 | // Create an additional cached gzip file |
62 | - file_put_contents($this->cachedir.$this->filename.'.gz', gzencode($code,9,FORCE_GZIP), LOCK_EX); |
|
62 | + file_put_contents($this->cachedir.$this->filename.'.gz', gzencode($code, 9, FORCE_GZIP), LOCK_EX); |
|
63 | 63 | } |
64 | 64 | } |
65 | 65 | } |
66 | 66 | |
67 | 67 | public function getname() { |
68 | - apply_filters('autoptimize_filter_cache_getname',AUTOPTIMIZE_CACHE_URL.$this->filename); |
|
68 | + apply_filters('autoptimize_filter_cache_getname', AUTOPTIMIZE_CACHE_URL.$this->filename); |
|
69 | 69 | return $this->filename; |
70 | 70 | } |
71 | 71 | |
72 | 72 | static function clearall() { |
73 | - if(!autoptimizeCache::cacheavail()) { |
|
73 | + if (!autoptimizeCache::cacheavail()) { |
|
74 | 74 | return false; |
75 | 75 | } |
76 | 76 | |
77 | 77 | // scan the cachedirs |
78 | - foreach (array("","js","css") as $scandirName) { |
|
78 | + foreach (array("", "js", "css") as $scandirName) { |
|
79 | 79 | $scan[$scandirName] = scandir(AUTOPTIMIZE_CACHE_DIR.$scandirName); |
80 | 80 | } |
81 | 81 | |
82 | 82 | // clear the cachedirs |
83 | 83 | foreach ($scan as $scandirName=>$scanneddir) { |
84 | - $thisAoCacheDir=rtrim(AUTOPTIMIZE_CACHE_DIR.$scandirName,"/")."/"; |
|
85 | - foreach($scanneddir as $file) { |
|
86 | - if(!in_array($file,array('.','..')) && strpos($file,AUTOPTIMIZE_CACHEFILE_PREFIX) !== false && is_file($thisAoCacheDir.$file)) { |
|
84 | + $thisAoCacheDir = rtrim(AUTOPTIMIZE_CACHE_DIR.$scandirName, "/")."/"; |
|
85 | + foreach ($scanneddir as $file) { |
|
86 | + if (!in_array($file, array('.', '..')) && strpos($file, AUTOPTIMIZE_CACHEFILE_PREFIX) !== false && is_file($thisAoCacheDir.$file)) { |
|
87 | 87 | @unlink($thisAoCacheDir.$file); |
88 | 88 | } |
89 | 89 | } |
@@ -98,15 +98,15 @@ discard block |
||
98 | 98 | do_action("autoptimize_action_cachepurged"); |
99 | 99 | } |
100 | 100 | } |
101 | - add_action("shutdown","autoptimize_do_cachepurged_action",11); |
|
101 | + add_action("shutdown", "autoptimize_do_cachepurged_action", 11); |
|
102 | 102 | |
103 | 103 | // try to purge caching plugins cache-files? |
104 | 104 | include_once(AUTOPTIMIZE_PLUGIN_DIR.'classlesses/autoptimizePageCacheFlush.php'); |
105 | - add_action("autoptimize_action_cachepurged","autoptimize_flush_pagecache",10,0); |
|
105 | + add_action("autoptimize_action_cachepurged", "autoptimize_flush_pagecache", 10, 0); |
|
106 | 106 | |
107 | 107 | // warm cache (part of speedupper)? |
108 | - if ( apply_filters('autoptimize_filter_speedupper', true) ) { |
|
109 | - $warmCacheUrl = site_url()."/?ao_speedup_cachebuster=".rand(1,100000); |
|
108 | + if (apply_filters('autoptimize_filter_speedupper', true)) { |
|
109 | + $warmCacheUrl = site_url()."/?ao_speedup_cachebuster=".rand(1, 100000); |
|
110 | 110 | $warmCache = @wp_remote_get($warmCacheUrl); |
111 | 111 | unset($warmCache); |
112 | 112 | } |
@@ -114,12 +114,12 @@ discard block |
||
114 | 114 | return true; |
115 | 115 | } |
116 | 116 | |
117 | - static function stats() { |
|
118 | - $AOstats=get_transient("autoptimize_stats"); |
|
117 | + static function stats() { |
|
118 | + $AOstats = get_transient("autoptimize_stats"); |
|
119 | 119 | |
120 | 120 | if (empty($AOstats)) { |
121 | 121 | // Cache not available :( |
122 | - if(!autoptimizeCache::cacheavail()) { |
|
122 | + if (!autoptimizeCache::cacheavail()) { |
|
123 | 123 | return 0; |
124 | 124 | } |
125 | 125 | |
@@ -128,28 +128,28 @@ discard block |
||
128 | 128 | $size = 0; |
129 | 129 | |
130 | 130 | // scan the cachedirs |
131 | - foreach (array("","js","css") as $scandirName) { |
|
131 | + foreach (array("", "js", "css") as $scandirName) { |
|
132 | 132 | $scan[$scandirName] = scandir(AUTOPTIMIZE_CACHE_DIR.$scandirName); |
133 | 133 | } |
134 | 134 | |
135 | 135 | foreach ($scan as $scandirName=>$scanneddir) { |
136 | - $thisAoCacheDir=rtrim(AUTOPTIMIZE_CACHE_DIR.$scandirName,"/")."/"; |
|
137 | - foreach($scanneddir as $file) { |
|
138 | - if(!in_array($file,array('.','..')) && strpos($file,AUTOPTIMIZE_CACHEFILE_PREFIX) !== false) { |
|
139 | - if(is_file($thisAoCacheDir.$file)) { |
|
140 | - if(AUTOPTIMIZE_CACHE_NOGZIP && (strpos($file,'.js') !== false || strpos($file,'.css') !== false || strpos($file,'.img') !== false || strpos($file,'.txt') !== false )) { |
|
136 | + $thisAoCacheDir = rtrim(AUTOPTIMIZE_CACHE_DIR.$scandirName, "/")."/"; |
|
137 | + foreach ($scanneddir as $file) { |
|
138 | + if (!in_array($file, array('.', '..')) && strpos($file, AUTOPTIMIZE_CACHEFILE_PREFIX) !== false) { |
|
139 | + if (is_file($thisAoCacheDir.$file)) { |
|
140 | + if (AUTOPTIMIZE_CACHE_NOGZIP && (strpos($file, '.js') !== false || strpos($file, '.css') !== false || strpos($file, '.img') !== false || strpos($file, '.txt') !== false)) { |
|
141 | 141 | $count++; |
142 | - } elseif(!AUTOPTIMIZE_CACHE_NOGZIP && strpos($file,'.none') !== false) { |
|
142 | + } elseif (!AUTOPTIMIZE_CACHE_NOGZIP && strpos($file, '.none') !== false) { |
|
143 | 143 | $count++; |
144 | 144 | } |
145 | - $size+=filesize($thisAoCacheDir.$file); |
|
145 | + $size += filesize($thisAoCacheDir.$file); |
|
146 | 146 | } |
147 | 147 | } |
148 | 148 | } |
149 | 149 | } |
150 | - $AOstats=array($count,$size,time()); |
|
151 | - if ($count>100) { |
|
152 | - set_transient( "autoptimize_stats", $AOstats, apply_filters( 'autoptimize_filter_cache_statsexpiry', HOUR_IN_SECONDS ) ); |
|
150 | + $AOstats = array($count, $size, time()); |
|
151 | + if ($count > 100) { |
|
152 | + set_transient("autoptimize_stats", $AOstats, apply_filters('autoptimize_filter_cache_statsexpiry', HOUR_IN_SECONDS)); |
|
153 | 153 | } |
154 | 154 | } |
155 | 155 | // print the number of instances |
@@ -157,36 +157,36 @@ discard block |
||
157 | 157 | } |
158 | 158 | |
159 | 159 | static function cacheavail() { |
160 | - if(!defined('AUTOPTIMIZE_CACHE_DIR')) { |
|
160 | + if (!defined('AUTOPTIMIZE_CACHE_DIR')) { |
|
161 | 161 | // We didn't set a cache |
162 | 162 | return false; |
163 | 163 | } |
164 | 164 | |
165 | - foreach (array("","js","css") as $checkDir) { |
|
166 | - if(!autoptimizeCache::checkCacheDir(AUTOPTIMIZE_CACHE_DIR.$checkDir)) { |
|
165 | + foreach (array("", "js", "css") as $checkDir) { |
|
166 | + if (!autoptimizeCache::checkCacheDir(AUTOPTIMIZE_CACHE_DIR.$checkDir)) { |
|
167 | 167 | return false; |
168 | 168 | } |
169 | 169 | } |
170 | 170 | |
171 | 171 | /** write index.html here to avoid prying eyes */ |
172 | - $indexFile=AUTOPTIMIZE_CACHE_DIR.'/index.html'; |
|
173 | - if(!is_file($indexFile)) { |
|
174 | - @file_put_contents($indexFile,'<html><head><meta name="robots" content="noindex, nofollow"></head><body>Generated by <a href="http://wordpress.org/extend/plugins/autoptimize/" rel="nofollow">Autoptimize</a></body></html>'); |
|
172 | + $indexFile = AUTOPTIMIZE_CACHE_DIR.'/index.html'; |
|
173 | + if (!is_file($indexFile)) { |
|
174 | + @file_put_contents($indexFile, '<html><head><meta name="robots" content="noindex, nofollow"></head><body>Generated by <a href="http://wordpress.org/extend/plugins/autoptimize/" rel="nofollow">Autoptimize</a></body></html>'); |
|
175 | 175 | } |
176 | 176 | |
177 | 177 | /** write .htaccess here to overrule wp_super_cache */ |
178 | - $htAccess=AUTOPTIMIZE_CACHE_DIR.'/.htaccess'; |
|
179 | - if(!is_file($htAccess)) { |
|
178 | + $htAccess = AUTOPTIMIZE_CACHE_DIR.'/.htaccess'; |
|
179 | + if (!is_file($htAccess)) { |
|
180 | 180 | /** |
181 | 181 | * create wp-content/AO_htaccess_tmpl with |
182 | 182 | * whatever htaccess rules you might need |
183 | 183 | * if you want to override default AO htaccess |
184 | 184 | */ |
185 | - $htaccess_tmpl=WP_CONTENT_DIR."/AO_htaccess_tmpl"; |
|
185 | + $htaccess_tmpl = WP_CONTENT_DIR."/AO_htaccess_tmpl"; |
|
186 | 186 | if (is_file($htaccess_tmpl)) { |
187 | - $htAccessContent=file_get_contents($htaccess_tmpl); |
|
187 | + $htAccessContent = file_get_contents($htaccess_tmpl); |
|
188 | 188 | } else if (is_multisite() || AUTOPTIMIZE_CACHE_NOGZIP == false) { |
189 | - $htAccessContent='<IfModule mod_expires.c> |
|
189 | + $htAccessContent = '<IfModule mod_expires.c> |
|
190 | 190 | ExpiresActive On |
191 | 191 | ExpiresByType text/css A30672000 |
192 | 192 | ExpiresByType text/javascript A30672000 |
@@ -212,7 +212,7 @@ discard block |
||
212 | 212 | </Files> |
213 | 213 | </IfModule>'; |
214 | 214 | } else { |
215 | - $htAccessContent='<IfModule mod_expires.c> |
|
215 | + $htAccessContent = '<IfModule mod_expires.c> |
|
216 | 216 | ExpiresActive On |
217 | 217 | ExpiresByType text/css A30672000 |
218 | 218 | ExpiresByType text/javascript A30672000 |
@@ -238,7 +238,7 @@ discard block |
||
238 | 238 | </Files> |
239 | 239 | </IfModule>'; |
240 | 240 | } |
241 | - @file_put_contents($htAccess,$htAccessContent); |
|
241 | + @file_put_contents($htAccess, $htAccessContent); |
|
242 | 242 | } |
243 | 243 | |
244 | 244 | // All OK |
@@ -247,22 +247,22 @@ discard block |
||
247 | 247 | |
248 | 248 | static function checkCacheDir($dir) { |
249 | 249 | // Check and create if not exists |
250 | - if(!file_exists($dir)) { |
|
251 | - @mkdir($dir,0775,true); |
|
252 | - if(!file_exists($dir)) { |
|
250 | + if (!file_exists($dir)) { |
|
251 | + @mkdir($dir, 0775, true); |
|
252 | + if (!file_exists($dir)) { |
|
253 | 253 | return false; |
254 | 254 | } |
255 | 255 | } |
256 | 256 | |
257 | 257 | // check if we can now write |
258 | - if(!is_writable($dir)) { |
|
258 | + if (!is_writable($dir)) { |
|
259 | 259 | return false; |
260 | 260 | } |
261 | 261 | |
262 | 262 | // and write index.html here to avoid prying eyes |
263 | - $indexFile=$dir.'/index.html'; |
|
264 | - if(!is_file($indexFile)) { |
|
265 | - @file_put_contents($indexFile,'<html><head><meta name="robots" content="noindex, nofollow"></head><body>Generated by <a href="http://wordpress.org/extend/plugins/autoptimize/" rel="nofollow">Autoptimize</a></body></html>'); |
|
263 | + $indexFile = $dir.'/index.html'; |
|
264 | + if (!is_file($indexFile)) { |
|
265 | + @file_put_contents($indexFile, '<html><head><meta name="robots" content="noindex, nofollow"></head><body>Generated by <a href="http://wordpress.org/extend/plugins/autoptimize/" rel="nofollow">Autoptimize</a></body></html>'); |
|
266 | 266 | } |
267 | 267 | |
268 | 268 | return true; |
@@ -625,6 +625,9 @@ |
||
625 | 625 | return false; |
626 | 626 | } |
627 | 627 | |
628 | + /** |
|
629 | + * @param string $url |
|
630 | + */ |
|
628 | 631 | private function getFutttaFeeds($url) { |
629 | 632 | if (apply_filters('autoptimize_settingsscreen_remotehttp',true)) { |
630 | 633 | $rss = fetch_feed( $url ); |
@@ -345,8 +345,8 @@ discard block |
||
345 | 345 | </td> |
346 | 346 | </tr> |
347 | 347 | <?php |
348 | - if ( function_exists("is_checkout") || function_exists("is_cart") || function_exists("edd_is_checkout") || function_exists("wpsc_is_cart") || function_exists("wpsc_is_checkout") ) { |
|
349 | - ?> |
|
348 | + if ( function_exists("is_checkout") || function_exists("is_cart") || function_exists("edd_is_checkout") || function_exists("wpsc_is_cart") || function_exists("wpsc_is_checkout") ) { |
|
349 | + ?> |
|
350 | 350 | <tr valign="top" class="<?php echo $hiddenClass;?>ao_adv"> |
351 | 351 | <th scope="row"><?php _e('Also optimize shop cart/ checkout?','autoptimize'); ?></th> |
352 | 352 | <td><label class="cb_label"><input type="checkbox" name="autoptimize_optimize_checkout" <?php echo get_option('autoptimize_optimize_checkout','1')?'checked="checked" ':''; ?>/> |
@@ -354,8 +354,8 @@ discard block |
||
354 | 354 | </td> |
355 | 355 | </tr> |
356 | 356 | <?php |
357 | - } |
|
358 | - ?> |
|
357 | + } |
|
358 | + ?> |
|
359 | 359 | </table> |
360 | 360 | </li> |
361 | 361 |
@@ -1,5 +1,8 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly |
|
2 | +if ( ! defined( 'ABSPATH' ) ) { |
|
3 | + exit; |
|
4 | +} |
|
5 | +// Exit if accessed directly |
|
3 | 6 | |
4 | 7 | class autoptimizeConfig { |
5 | 8 | private $config = null; |
@@ -597,8 +600,9 @@ discard block |
||
597 | 600 | //Inspired on http://wpengineer.com/meta-links-for-wordpress-plugins/ |
598 | 601 | //Do it only once - saves time |
599 | 602 | static $plugin; |
600 | - if(empty($plugin)) |
|
601 | - $plugin = plugin_basename(AUTOPTIMIZE_PLUGIN_DIR.'autoptimize.php'); |
|
603 | + if(empty($plugin)) { |
|
604 | + $plugin = plugin_basename(AUTOPTIMIZE_PLUGIN_DIR.'autoptimize.php'); |
|
605 | + } |
|
602 | 606 | |
603 | 607 | if($file===null) { |
604 | 608 | //2.7 |
@@ -656,8 +660,9 @@ discard block |
||
656 | 660 | $this->config = apply_filters( 'autoptimize_filter_get_config', $config ); |
657 | 661 | } |
658 | 662 | |
659 | - if(isset($this->config[$key])) |
|
660 | - return $this->config[$key]; |
|
663 | + if(isset($this->config[$key])) { |
|
664 | + return $this->config[$key]; |
|
665 | + } |
|
661 | 666 | |
662 | 667 | return false; |
663 | 668 | } |
@@ -675,10 +680,13 @@ discard block |
||
675 | 680 | <ul> |
676 | 681 | <?php if ( $maxitems == 0 ) : ?> |
677 | 682 | <li><?php _e( 'No items', 'autoptimize' ); ?></li> |
678 | - <?php else : ?> |
|
683 | + <?php else { |
|
684 | + : ?> |
|
679 | 685 | <?php foreach ( $rss_items as $item ) : ?> |
680 | 686 | <li> |
681 | - <a href="<?php echo esc_url( $item->get_permalink() ); ?>" |
|
687 | + <a href="<?php echo esc_url( $item->get_permalink() ); |
|
688 | +} |
|
689 | +?>" |
|
682 | 690 | title="<?php printf( __( 'Posted %s', 'autoptimize' ), $item->get_date('j F Y | g:i a') ); ?>"> |
683 | 691 | <?php echo esc_html( $item->get_title() ); ?> |
684 | 692 | </a> |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly |
|
2 | +if (!defined('ABSPATH')) exit; // Exit if accessed directly |
|
3 | 3 | |
4 | 4 | class autoptimizeConfig { |
5 | 5 | private $config = null; |
@@ -7,25 +7,25 @@ discard block |
||
7 | 7 | |
8 | 8 | //Singleton: private construct |
9 | 9 | private function __construct() { |
10 | - if( is_admin() ) { |
|
10 | + if (is_admin()) { |
|
11 | 11 | //Add the admin page and settings |
12 | - add_action('admin_menu',array($this,'addmenu')); |
|
13 | - add_action('admin_init',array($this,'registersettings')); |
|
12 | + add_action('admin_menu', array($this, 'addmenu')); |
|
13 | + add_action('admin_init', array($this, 'registersettings')); |
|
14 | 14 | |
15 | 15 | //Set meta info |
16 | - if(function_exists('plugin_row_meta')) { |
|
16 | + if (function_exists('plugin_row_meta')) { |
|
17 | 17 | //2.8+ |
18 | - add_filter('plugin_row_meta',array($this,'setmeta'),10,2); |
|
19 | - } elseif(function_exists('post_class')) { |
|
18 | + add_filter('plugin_row_meta', array($this, 'setmeta'), 10, 2); |
|
19 | + } elseif (function_exists('post_class')) { |
|
20 | 20 | //2.7 |
21 | 21 | $plugin = plugin_basename(AUTOPTIMIZE_PLUGIN_DIR.'autoptimize.php'); |
22 | - add_filter('plugin_action_links_'.$plugin,array($this,'setmeta')); |
|
22 | + add_filter('plugin_action_links_'.$plugin, array($this, 'setmeta')); |
|
23 | 23 | } |
24 | 24 | |
25 | 25 | //Clean cache? |
26 | - if(get_option('autoptimize_cache_clean')) { |
|
26 | + if (get_option('autoptimize_cache_clean')) { |
|
27 | 27 | autoptimizeCache::clearall(); |
28 | - update_option('autoptimize_cache_clean',0); |
|
28 | + update_option('autoptimize_cache_clean', 0); |
|
29 | 29 | } |
30 | 30 | } |
31 | 31 | |
@@ -159,27 +159,27 @@ discard block |
||
159 | 159 | <div class="wrap"> |
160 | 160 | |
161 | 161 | <?php if (version_compare(PHP_VERSION, '5.3.0') < 0) { ?> |
162 | -<div class="notice-error notice"><?php echo '<p>' . sprintf( __('<strong>You are using a very old version of PHP</strong> (5.2.x or older) which has <a href=%s>serious security and performance issues</a>. Support for PHP 5.5 and below will be removed in one of the next AO released, please ask your hoster to provide you with an upgrade path to 7.x.','autoptimize'), '"http://blog.futtta.be/2016/03/15/why-would-you-still-be-on-php-5-2/" target="_blank"') . '</p>'; ?></div> |
|
162 | +<div class="notice-error notice"><?php echo '<p>'.sprintf(__('<strong>You are using a very old version of PHP</strong> (5.2.x or older) which has <a href=%s>serious security and performance issues</a>. Support for PHP 5.5 and below will be removed in one of the next AO released, please ask your hoster to provide you with an upgrade path to 7.x.', 'autoptimize'), '"http://blog.futtta.be/2016/03/15/why-would-you-still-be-on-php-5-2/" target="_blank"').'</p>'; ?></div> |
|
163 | 163 | <?php } ?> |
164 | 164 | |
165 | 165 | <div id="autoptimize_main"> |
166 | 166 | <div id="ao_title_and_button"> |
167 | - <h1 id="ao_title"><?php _e('Autoptimize Settings','autoptimize'); ?> |
|
167 | + <h1 id="ao_title"><?php _e('Autoptimize Settings', 'autoptimize'); ?> |
|
168 | 168 | <span id="ao_adv_button"> |
169 | 169 | <?php |
170 | - if (get_option('autoptimize_show_adv','0')=='1') { |
|
170 | + if (get_option('autoptimize_show_adv', '0') == '1') { |
|
171 | 171 | ?> |
172 | - <a href="javascript:void(0);" id="ao_show_adv" class="button" style="display:none;"><span><?php _e("Show advanced settings","autoptimize") ?></span></a> |
|
173 | - <a href="javascript:void(0);" id="ao_hide_adv" class="button"><span><?php _e("Hide advanced settings","autoptimize") ?></span></a> |
|
172 | + <a href="javascript:void(0);" id="ao_show_adv" class="button" style="display:none;"><span><?php _e("Show advanced settings", "autoptimize") ?></span></a> |
|
173 | + <a href="javascript:void(0);" id="ao_hide_adv" class="button"><span><?php _e("Hide advanced settings", "autoptimize") ?></span></a> |
|
174 | 174 | <style>tr.ao_adv{display:table-row;} li.ao_adv{display:list-item;}</style> |
175 | 175 | <?php |
176 | - $hiddenClass=""; |
|
176 | + $hiddenClass = ""; |
|
177 | 177 | } else { |
178 | 178 | ?> |
179 | - <a href="javascript:void(0);" id="ao_show_adv" class="button"><span><?php _e("Show advanced settings","autoptimize") ?></span></a> |
|
180 | - <a href="javascript:void(0);" id="ao_hide_adv" class="button" style="display:none;"><span><?php _e("Hide advanced settings","autoptimize") ?></span></a> |
|
179 | + <a href="javascript:void(0);" id="ao_show_adv" class="button"><span><?php _e("Show advanced settings", "autoptimize") ?></span></a> |
|
180 | + <a href="javascript:void(0);" id="ao_hide_adv" class="button" style="display:none;"><span><?php _e("Hide advanced settings", "autoptimize") ?></span></a> |
|
181 | 181 | <?php |
182 | - $hiddenClass="hidden "; |
|
182 | + $hiddenClass = "hidden "; |
|
183 | 183 | } |
184 | 184 | ?> |
185 | 185 | </span> |
@@ -194,158 +194,158 @@ discard block |
||
194 | 194 | <ul> |
195 | 195 | |
196 | 196 | <li class="itemDetail"> |
197 | -<h2 class="itemTitle"><?php _e('HTML Options','autoptimize'); ?></h2> |
|
197 | +<h2 class="itemTitle"><?php _e('HTML Options', 'autoptimize'); ?></h2> |
|
198 | 198 | <table class="form-table"> |
199 | 199 | <tr valign="top"> |
200 | -<th scope="row"><?php _e('Optimize HTML Code?','autoptimize'); ?></th> |
|
201 | -<td><input type="checkbox" id="autoptimize_html" name="autoptimize_html" <?php echo get_option('autoptimize_html')?'checked="checked" ':''; ?>/></td> |
|
200 | +<th scope="row"><?php _e('Optimize HTML Code?', 'autoptimize'); ?></th> |
|
201 | +<td><input type="checkbox" id="autoptimize_html" name="autoptimize_html" <?php echo get_option('autoptimize_html') ? 'checked="checked" ' : ''; ?>/></td> |
|
202 | 202 | </tr> |
203 | -<tr class="<?php echo $hiddenClass;?>html_sub ao_adv" valign="top"> |
|
204 | -<th scope="row"><?php _e('Keep HTML comments?','autoptimize'); ?></th> |
|
205 | -<td><label class="cb_label"><input type="checkbox" name="autoptimize_html_keepcomments" <?php echo get_option('autoptimize_html_keepcomments')?'checked="checked" ':''; ?>/> |
|
206 | -<?php _e('Enable this if you want HTML comments to remain in the page.','autoptimize'); ?></label></td> |
|
203 | +<tr class="<?php echo $hiddenClass; ?>html_sub ao_adv" valign="top"> |
|
204 | +<th scope="row"><?php _e('Keep HTML comments?', 'autoptimize'); ?></th> |
|
205 | +<td><label class="cb_label"><input type="checkbox" name="autoptimize_html_keepcomments" <?php echo get_option('autoptimize_html_keepcomments') ? 'checked="checked" ' : ''; ?>/> |
|
206 | +<?php _e('Enable this if you want HTML comments to remain in the page.', 'autoptimize'); ?></label></td> |
|
207 | 207 | </tr> |
208 | 208 | </table> |
209 | 209 | </li> |
210 | 210 | |
211 | 211 | <li class="itemDetail"> |
212 | -<h2 class="itemTitle"><?php _e('JavaScript Options','autoptimize'); ?></h2> |
|
212 | +<h2 class="itemTitle"><?php _e('JavaScript Options', 'autoptimize'); ?></h2> |
|
213 | 213 | <table class="form-table"> |
214 | 214 | <tr valign="top"> |
215 | -<th scope="row"><?php _e('Optimize JavaScript Code?','autoptimize'); ?></th> |
|
216 | -<td><input type="checkbox" id="autoptimize_js" name="autoptimize_js" <?php echo get_option('autoptimize_js')?'checked="checked" ':''; ?>/></td> |
|
215 | +<th scope="row"><?php _e('Optimize JavaScript Code?', 'autoptimize'); ?></th> |
|
216 | +<td><input type="checkbox" id="autoptimize_js" name="autoptimize_js" <?php echo get_option('autoptimize_js') ? 'checked="checked" ' : ''; ?>/></td> |
|
217 | 217 | </tr> |
218 | -<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv"> |
|
219 | -<th scope="row"><?php _e('Force JavaScript in <head>?','autoptimize'); ?></th> |
|
220 | -<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_forcehead" <?php echo get_option('autoptimize_js_forcehead')?'checked="checked" ':''; ?>/> |
|
221 | -<?php _e('Load JavaScript early, this can potentially fix some JS-errors, but makes the JS render blocking.','autoptimize'); ?></label></td> |
|
218 | +<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv"> |
|
219 | +<th scope="row"><?php _e('Force JavaScript in <head>?', 'autoptimize'); ?></th> |
|
220 | +<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_forcehead" <?php echo get_option('autoptimize_js_forcehead') ? 'checked="checked" ' : ''; ?>/> |
|
221 | +<?php _e('Load JavaScript early, this can potentially fix some JS-errors, but makes the JS render blocking.', 'autoptimize'); ?></label></td> |
|
222 | 222 | </tr> |
223 | 223 | <?php if (get_option('autoptimize_js_justhead')) { ?> |
224 | -<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv"> |
|
225 | -<th scope="row"><?php _e('Look for scripts only in <head>?','autoptimize'); echo ' <i>'. __('(deprecated)','autoptimize') . '</i>'; ?></th> |
|
226 | -<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_justhead" <?php echo get_option('autoptimize_js_justhead')?'checked="checked" ':''; ?>/> |
|
227 | -<?php _e('Mostly useful in combination with previous option when using jQuery-based templates, but might help keeping cache size under control.','autoptimize'); ?></label></td> |
|
224 | +<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv"> |
|
225 | +<th scope="row"><?php _e('Look for scripts only in <head>?', 'autoptimize'); echo ' <i>'.__('(deprecated)', 'autoptimize').'</i>'; ?></th> |
|
226 | +<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_justhead" <?php echo get_option('autoptimize_js_justhead') ? 'checked="checked" ' : ''; ?>/> |
|
227 | +<?php _e('Mostly useful in combination with previous option when using jQuery-based templates, but might help keeping cache size under control.', 'autoptimize'); ?></label></td> |
|
228 | 228 | </tr> |
229 | 229 | <?php } ?> |
230 | -<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv"> |
|
231 | -<th scope="row"><?php _e('Also aggregate inline JS?','autoptimize'); ?></th> |
|
232 | -<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_include_inline" <?php echo get_option('autoptimize_js_include_inline')?'checked="checked" ':''; ?>/> |
|
233 | -<?php _e('Let Autoptimize also extract JS from the HTML. <strong>Warning</strong>: this can make Autoptimize\'s cache size grow quickly, so only enable this if you know what you\'re doing.','autoptimize'); ?></label></td> |
|
230 | +<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv"> |
|
231 | +<th scope="row"><?php _e('Also aggregate inline JS?', 'autoptimize'); ?></th> |
|
232 | +<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_include_inline" <?php echo get_option('autoptimize_js_include_inline') ? 'checked="checked" ' : ''; ?>/> |
|
233 | +<?php _e('Let Autoptimize also extract JS from the HTML. <strong>Warning</strong>: this can make Autoptimize\'s cache size grow quickly, so only enable this if you know what you\'re doing.', 'autoptimize'); ?></label></td> |
|
234 | 234 | </tr> |
235 | -<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv"> |
|
236 | -<th scope="row"><?php _e('Exclude scripts from Autoptimize:','autoptimize'); ?></th> |
|
237 | -<td><label><input type="text" style="width:100%;" name="autoptimize_js_exclude" value="<?php echo get_option('autoptimize_js_exclude',"seal.js, js/jquery/jquery.js"); ?>"/><br /> |
|
238 | -<?php _e('A comma-separated list of scripts you want to exclude from being optimized, for example \'whatever.js, another.js\' (without the quotes) to exclude those scripts from being aggregated and minimized by Autoptimize.','autoptimize'); ?></label></td> |
|
235 | +<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv"> |
|
236 | +<th scope="row"><?php _e('Exclude scripts from Autoptimize:', 'autoptimize'); ?></th> |
|
237 | +<td><label><input type="text" style="width:100%;" name="autoptimize_js_exclude" value="<?php echo get_option('autoptimize_js_exclude', "seal.js, js/jquery/jquery.js"); ?>"/><br /> |
|
238 | +<?php _e('A comma-separated list of scripts you want to exclude from being optimized, for example \'whatever.js, another.js\' (without the quotes) to exclude those scripts from being aggregated and minimized by Autoptimize.', 'autoptimize'); ?></label></td> |
|
239 | 239 | </tr> |
240 | -<tr valign="top" class="<?php echo $hiddenClass;?>js_sub ao_adv"> |
|
241 | -<th scope="row"><?php _e('Add try-catch wrapping?','autoptimize'); ?></th> |
|
242 | -<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_trycatch" <?php echo get_option('autoptimize_js_trycatch')?'checked="checked" ':''; ?>/> |
|
243 | -<?php _e('If your scripts break because of a JS-error, you might want to try this.','autoptimize'); ?></label></td> |
|
240 | +<tr valign="top" class="<?php echo $hiddenClass; ?>js_sub ao_adv"> |
|
241 | +<th scope="row"><?php _e('Add try-catch wrapping?', 'autoptimize'); ?></th> |
|
242 | +<td><label class="cb_label"><input type="checkbox" name="autoptimize_js_trycatch" <?php echo get_option('autoptimize_js_trycatch') ? 'checked="checked" ' : ''; ?>/> |
|
243 | +<?php _e('If your scripts break because of a JS-error, you might want to try this.', 'autoptimize'); ?></label></td> |
|
244 | 244 | </tr> |
245 | 245 | </table> |
246 | 246 | </li> |
247 | 247 | |
248 | 248 | <li class="itemDetail"> |
249 | -<h2 class="itemTitle"><?php _e('CSS Options','autoptimize'); ?></h2> |
|
249 | +<h2 class="itemTitle"><?php _e('CSS Options', 'autoptimize'); ?></h2> |
|
250 | 250 | <table class="form-table"> |
251 | 251 | <tr valign="top"> |
252 | -<th scope="row"><?php _e('Optimize CSS Code?','autoptimize'); ?></th> |
|
253 | -<td><input type="checkbox" id="autoptimize_css" name="autoptimize_css" <?php echo get_option('autoptimize_css')?'checked="checked" ':''; ?>/></td> |
|
252 | +<th scope="row"><?php _e('Optimize CSS Code?', 'autoptimize'); ?></th> |
|
253 | +<td><input type="checkbox" id="autoptimize_css" name="autoptimize_css" <?php echo get_option('autoptimize_css') ? 'checked="checked" ' : ''; ?>/></td> |
|
254 | 254 | </tr> |
255 | -<tr class="<?php echo $hiddenClass;?>css_sub ao_adv" valign="top"> |
|
256 | -<th scope="row"><?php _e('Generate data: URIs for images?','autoptimize'); ?></th> |
|
257 | -<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_datauris" <?php echo get_option('autoptimize_css_datauris')?'checked="checked" ':''; ?>/> |
|
258 | -<?php _e('Enable this to include small background-images in the CSS itself instead of as separate downloads.','autoptimize'); ?></label></td> |
|
255 | +<tr class="<?php echo $hiddenClass; ?>css_sub ao_adv" valign="top"> |
|
256 | +<th scope="row"><?php _e('Generate data: URIs for images?', 'autoptimize'); ?></th> |
|
257 | +<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_datauris" <?php echo get_option('autoptimize_css_datauris') ? 'checked="checked" ' : ''; ?>/> |
|
258 | +<?php _e('Enable this to include small background-images in the CSS itself instead of as separate downloads.', 'autoptimize'); ?></label></td> |
|
259 | 259 | </tr> |
260 | 260 | <?php if (get_option('autoptimize_css_justhead')) { ?> |
261 | -<tr valign="top" class="<?php echo $hiddenClass;?>css_sub ao_adv"> |
|
262 | -<th scope="row"><?php _e('Look for styles only in <head>?','autoptimize'); echo ' <i>'. __('(deprecated)','autoptimize') . '</i>'; ?></th> |
|
263 | -<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_justhead" <?php echo get_option('autoptimize_css_justhead')?'checked="checked" ':''; ?>/> |
|
264 | -<?php _e('Don\'t autoptimize CSS outside the head-section. If the cache gets big, you might want to enable this.','autoptimize'); ?></label></td> |
|
261 | +<tr valign="top" class="<?php echo $hiddenClass; ?>css_sub ao_adv"> |
|
262 | +<th scope="row"><?php _e('Look for styles only in <head>?', 'autoptimize'); echo ' <i>'.__('(deprecated)', 'autoptimize').'</i>'; ?></th> |
|
263 | +<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_justhead" <?php echo get_option('autoptimize_css_justhead') ? 'checked="checked" ' : ''; ?>/> |
|
264 | +<?php _e('Don\'t autoptimize CSS outside the head-section. If the cache gets big, you might want to enable this.', 'autoptimize'); ?></label></td> |
|
265 | 265 | </tr> |
266 | 266 | <?php } ?> |
267 | -<tr valign="top" class="<?php echo $hiddenClass;?>css_sub ao_adv"> |
|
268 | -<th scope="row"><?php _e('Also aggregate inline CSS?','autoptimize'); ?></th> |
|
269 | -<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_include_inline" <?php echo get_option('autoptimize_css_include_inline','1')?'checked="checked" ':''; ?>/> |
|
270 | -<?php _e('Check this option for Autoptimize to also aggregate CSS in the HTML.','autoptimize'); ?></label></td> |
|
267 | +<tr valign="top" class="<?php echo $hiddenClass; ?>css_sub ao_adv"> |
|
268 | +<th scope="row"><?php _e('Also aggregate inline CSS?', 'autoptimize'); ?></th> |
|
269 | +<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_include_inline" <?php echo get_option('autoptimize_css_include_inline', '1') ? 'checked="checked" ' : ''; ?>/> |
|
270 | +<?php _e('Check this option for Autoptimize to also aggregate CSS in the HTML.', 'autoptimize'); ?></label></td> |
|
271 | 271 | </tr> |
272 | -<tr valign="top" class="<?php echo $hiddenClass;?>css_sub ao_adv"> |
|
273 | -<th scope="row"><?php _e('Inline and Defer CSS?','autoptimize'); ?></th> |
|
274 | -<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_defer" id="autoptimize_css_defer" <?php echo get_option('autoptimize_css_defer')?'checked="checked" ':''; ?>/> |
|
275 | -<?php _e('Inline "above the fold CSS" while loading the main autoptimized CSS only after page load. <a href="http://wordpress.org/plugins/autoptimize/faq/" target="_blank">Check the FAQ</a> before activating this option!','autoptimize'); ?></label></td> |
|
272 | +<tr valign="top" class="<?php echo $hiddenClass; ?>css_sub ao_adv"> |
|
273 | +<th scope="row"><?php _e('Inline and Defer CSS?', 'autoptimize'); ?></th> |
|
274 | +<td><label class="cb_label"><input type="checkbox" name="autoptimize_css_defer" id="autoptimize_css_defer" <?php echo get_option('autoptimize_css_defer') ? 'checked="checked" ' : ''; ?>/> |
|
275 | +<?php _e('Inline "above the fold CSS" while loading the main autoptimized CSS only after page load. <a href="http://wordpress.org/plugins/autoptimize/faq/" target="_blank">Check the FAQ</a> before activating this option!', 'autoptimize'); ?></label></td> |
|
276 | 276 | </tr> |
277 | -<tr valign="top" class="<?php echo $hiddenClass;?>css_sub ao_adv" id="autoptimize_css_defer_inline"> |
|
277 | +<tr valign="top" class="<?php echo $hiddenClass; ?>css_sub ao_adv" id="autoptimize_css_defer_inline"> |
|
278 | 278 | <th scope="row"></th> |
279 | -<td><label><textarea rows="10" cols="10" style="width:100%;" placeholder="<?php _e('Paste the above the fold CSS here.','autoptimize'); ?>" name="autoptimize_css_defer_inline"><?php echo get_option('autoptimize_css_defer_inline'); ?></textarea></label></td> |
|
279 | +<td><label><textarea rows="10" cols="10" style="width:100%;" placeholder="<?php _e('Paste the above the fold CSS here.', 'autoptimize'); ?>" name="autoptimize_css_defer_inline"><?php echo get_option('autoptimize_css_defer_inline'); ?></textarea></label></td> |
|
280 | 280 | </tr> |
281 | -<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv css_sub"> |
|
282 | -<th scope="row"><?php _e('Inline all CSS?','autoptimize'); ?></th> |
|
283 | -<td><label class="cb_label"><input type="checkbox" id="autoptimize_css_inline" name="autoptimize_css_inline" <?php echo get_option('autoptimize_css_inline')?'checked="checked" ':''; ?>/> |
|
284 | -<?php _e('Inlining all CSS can improve performance for sites with a low pageviews/ visitor-rate, but may slow down performance otherwise.','autoptimize'); ?></label></td> |
|
281 | +<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv css_sub"> |
|
282 | +<th scope="row"><?php _e('Inline all CSS?', 'autoptimize'); ?></th> |
|
283 | +<td><label class="cb_label"><input type="checkbox" id="autoptimize_css_inline" name="autoptimize_css_inline" <?php echo get_option('autoptimize_css_inline') ? 'checked="checked" ' : ''; ?>/> |
|
284 | +<?php _e('Inlining all CSS can improve performance for sites with a low pageviews/ visitor-rate, but may slow down performance otherwise.', 'autoptimize'); ?></label></td> |
|
285 | 285 | </tr> |
286 | -<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv css_sub"> |
|
287 | -<th scope="row"><?php _e('Exclude CSS from Autoptimize:','autoptimize'); ?></th> |
|
288 | -<td><label><input type="text" style="width:100%;" name="autoptimize_css_exclude" value="<?php echo get_option('autoptimize_css_exclude','admin-bar.min.css, dashicons.min.css'); ?>"/><br /> |
|
289 | -<?php _e('A comma-separated list of CSS you want to exclude from being optimized.','autoptimize'); ?></label></td> |
|
286 | +<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv css_sub"> |
|
287 | +<th scope="row"><?php _e('Exclude CSS from Autoptimize:', 'autoptimize'); ?></th> |
|
288 | +<td><label><input type="text" style="width:100%;" name="autoptimize_css_exclude" value="<?php echo get_option('autoptimize_css_exclude', 'admin-bar.min.css, dashicons.min.css'); ?>"/><br /> |
|
289 | +<?php _e('A comma-separated list of CSS you want to exclude from being optimized.', 'autoptimize'); ?></label></td> |
|
290 | 290 | </tr> |
291 | 291 | </table> |
292 | 292 | </li> |
293 | 293 | |
294 | 294 | <li class="itemDetail"> |
295 | -<h2 class="itemTitle"><?php _e('CDN Options','autoptimize'); ?></h2> |
|
295 | +<h2 class="itemTitle"><?php _e('CDN Options', 'autoptimize'); ?></h2> |
|
296 | 296 | <table class="form-table"> |
297 | 297 | <tr valign="top"> |
298 | -<th scope="row"><?php _e('CDN Base URL','autoptimize'); ?></th> |
|
299 | -<td><label><input id="cdn_url" type="text" name="autoptimize_cdn_url" pattern="^(https?:)?\/\/([\da-z\.-]+)\.([\da-z\.]{2,6})([\/\w \.-]*)*(:\d{2,5})?\/?$" style="width:100%" value="<?php echo esc_url(get_option('autoptimize_cdn_url',''),array("http","https")); ?>" /><br /> |
|
300 | -<?php _e('Enter your CDN root URL to enable CDN for Autoptimized files. The URL can be http, https or protocol-relative (e.g. <code>//cdn.example.com/</code>). This is not needed for Cloudflare.','autoptimize'); ?></label></td> |
|
298 | +<th scope="row"><?php _e('CDN Base URL', 'autoptimize'); ?></th> |
|
299 | +<td><label><input id="cdn_url" type="text" name="autoptimize_cdn_url" pattern="^(https?:)?\/\/([\da-z\.-]+)\.([\da-z\.]{2,6})([\/\w \.-]*)*(:\d{2,5})?\/?$" style="width:100%" value="<?php echo esc_url(get_option('autoptimize_cdn_url', ''), array("http", "https")); ?>" /><br /> |
|
300 | +<?php _e('Enter your CDN root URL to enable CDN for Autoptimized files. The URL can be http, https or protocol-relative (e.g. <code>//cdn.example.com/</code>). This is not needed for Cloudflare.', 'autoptimize'); ?></label></td> |
|
301 | 301 | </tr> |
302 | 302 | </table> |
303 | 303 | </li> |
304 | 304 | |
305 | -<li class="<?php echo $hiddenClass;?>itemDetail ao_adv"> |
|
306 | -<h2 class="itemTitle"><?php _e('Cache Info','autoptimize'); ?></h2> |
|
305 | +<li class="<?php echo $hiddenClass; ?>itemDetail ao_adv"> |
|
306 | +<h2 class="itemTitle"><?php _e('Cache Info', 'autoptimize'); ?></h2> |
|
307 | 307 | <table class="form-table" > |
308 | -<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv"> |
|
309 | -<th scope="row"><?php _e('Cache folder','autoptimize'); ?></th> |
|
308 | +<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv"> |
|
309 | +<th scope="row"><?php _e('Cache folder', 'autoptimize'); ?></th> |
|
310 | 310 | <td><?php echo htmlentities(AUTOPTIMIZE_CACHE_DIR); ?></td> |
311 | 311 | </tr> |
312 | -<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv"> |
|
313 | -<th scope="row"><?php _e('Can we write?','autoptimize'); ?></th> |
|
314 | -<td><?php echo (autoptimizeCache::cacheavail() ? __('Yes','autoptimize') : __('No','autoptimize')); ?></td> |
|
312 | +<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv"> |
|
313 | +<th scope="row"><?php _e('Can we write?', 'autoptimize'); ?></th> |
|
314 | +<td><?php echo (autoptimizeCache::cacheavail() ? __('Yes', 'autoptimize') : __('No', 'autoptimize')); ?></td> |
|
315 | 315 | </tr> |
316 | -<tr valign="top" class="<?php echo $hiddenClass;?>ao_adv"> |
|
317 | -<th scope="row"><?php _e('Cached styles and scripts','autoptimize'); ?></th> |
|
316 | +<tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv"> |
|
317 | +<th scope="row"><?php _e('Cached styles and scripts', 'autoptimize'); ?></th> |
|
318 | 318 | <td><?php |
319 | - $AOstatArr=autoptimizeCache::stats(); |
|
320 | - $AOcacheSize=round($AOstatArr[1]/1024); |
|
321 | - printf( __( '%1$s files, totalling %2$s Kbytes (calculated at %3$s)', 'autoptimize'), $AOstatArr[0], $AOcacheSize, date("H:i e", $AOstatArr[2]) ); |
|
319 | + $AOstatArr = autoptimizeCache::stats(); |
|
320 | + $AOcacheSize = round($AOstatArr[1]/1024); |
|
321 | + printf(__('%1$s files, totalling %2$s Kbytes (calculated at %3$s)', 'autoptimize'), $AOstatArr[0], $AOcacheSize, date("H:i e", $AOstatArr[2])); |
|
322 | 322 | ?></td> |
323 | 323 | </tr> |
324 | 324 | </table> |
325 | 325 | </li> |
326 | 326 | |
327 | -<li class="<?php echo $hiddenClass;?>itemDetail ao_adv"> |
|
328 | -<h2 class="itemTitle"><?php _e('Misc Options','autoptimize'); ?></h2> |
|
327 | +<li class="<?php echo $hiddenClass; ?>itemDetail ao_adv"> |
|
328 | +<h2 class="itemTitle"><?php _e('Misc Options', 'autoptimize'); ?></h2> |
|
329 | 329 | <table class="form-table"> |
330 | - <tr valign="top" class="<?php echo $hiddenClass;?>ao_adv"> |
|
331 | - <th scope="row"><?php _e('Save aggregated script/css as static files?','autoptimize'); ?></th> |
|
332 | - <td><label class="cb_label"><input type="checkbox" name="autoptimize_cache_nogzip" <?php echo get_option('autoptimize_cache_nogzip','1')?'checked="checked" ':''; ?>/> |
|
333 | - <?php _e('By default files saved are static css/js, uncheck this option if your webserver doesn\'t properly handle the compression and expiry.','autoptimize'); ?></label> |
|
330 | + <tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv"> |
|
331 | + <th scope="row"><?php _e('Save aggregated script/css as static files?', 'autoptimize'); ?></th> |
|
332 | + <td><label class="cb_label"><input type="checkbox" name="autoptimize_cache_nogzip" <?php echo get_option('autoptimize_cache_nogzip', '1') ? 'checked="checked" ' : ''; ?>/> |
|
333 | + <?php _e('By default files saved are static css/js, uncheck this option if your webserver doesn\'t properly handle the compression and expiry.', 'autoptimize'); ?></label> |
|
334 | 334 | </td> |
335 | 335 | </tr> |
336 | - <tr valign="top" class="<?php echo $hiddenClass;?>ao_adv"> |
|
337 | - <th scope="row"><?php _e('Also optimize for logged in users?','autoptimize'); ?></th> |
|
338 | - <td><label class="cb_label"><input type="checkbox" name="autoptimize_optimize_logged" <?php echo get_option('autoptimize_optimize_logged','1')?'checked="checked" ':''; ?>/> |
|
339 | - <?php _e('By default Autoptimize is also active for logged on users, uncheck not to optimize when logged in e.g. to use a pagebuilder.','autoptimize'); ?></label> |
|
336 | + <tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv"> |
|
337 | + <th scope="row"><?php _e('Also optimize for logged in users?', 'autoptimize'); ?></th> |
|
338 | + <td><label class="cb_label"><input type="checkbox" name="autoptimize_optimize_logged" <?php echo get_option('autoptimize_optimize_logged', '1') ? 'checked="checked" ' : ''; ?>/> |
|
339 | + <?php _e('By default Autoptimize is also active for logged on users, uncheck not to optimize when logged in e.g. to use a pagebuilder.', 'autoptimize'); ?></label> |
|
340 | 340 | </td> |
341 | 341 | </tr> |
342 | 342 | <?php |
343 | - if ( function_exists("is_checkout") || function_exists("is_cart") || function_exists("edd_is_checkout") || function_exists("wpsc_is_cart") || function_exists("wpsc_is_checkout") ) { |
|
343 | + if (function_exists("is_checkout") || function_exists("is_cart") || function_exists("edd_is_checkout") || function_exists("wpsc_is_cart") || function_exists("wpsc_is_checkout")) { |
|
344 | 344 | ?> |
345 | - <tr valign="top" class="<?php echo $hiddenClass;?>ao_adv"> |
|
346 | - <th scope="row"><?php _e('Also optimize shop cart/ checkout?','autoptimize'); ?></th> |
|
347 | - <td><label class="cb_label"><input type="checkbox" name="autoptimize_optimize_checkout" <?php echo get_option('autoptimize_optimize_checkout','1')?'checked="checked" ':''; ?>/> |
|
348 | - <?php _e('By default Autoptimize is also active on your shop\'s cart/ checkout, uncheck not to optimize those.','autoptimize'); ?></label> |
|
345 | + <tr valign="top" class="<?php echo $hiddenClass; ?>ao_adv"> |
|
346 | + <th scope="row"><?php _e('Also optimize shop cart/ checkout?', 'autoptimize'); ?></th> |
|
347 | + <td><label class="cb_label"><input type="checkbox" name="autoptimize_optimize_checkout" <?php echo get_option('autoptimize_optimize_checkout', '1') ? 'checked="checked" ' : ''; ?>/> |
|
348 | + <?php _e('By default Autoptimize is also active on your shop\'s cart/ checkout, uncheck not to optimize those.', 'autoptimize'); ?></label> |
|
349 | 349 | </td> |
350 | 350 | </tr> |
351 | 351 | <?php |
@@ -356,11 +356,11 @@ discard block |
||
356 | 356 | |
357 | 357 | </ul> |
358 | 358 | |
359 | -<input type="hidden" id="autoptimize_show_adv" name="autoptimize_show_adv" value="<?php echo get_option('autoptimize_show_adv','0'); ?>"> |
|
359 | +<input type="hidden" id="autoptimize_show_adv" name="autoptimize_show_adv" value="<?php echo get_option('autoptimize_show_adv', '0'); ?>"> |
|
360 | 360 | |
361 | 361 | <p class="submit"> |
362 | -<input type="submit" class="button-secondary" value="<?php _e('Save Changes','autoptimize') ?>" /> |
|
363 | -<input type="submit" class="button-primary" name="autoptimize_cache_clean" value="<?php _e('Save Changes and Empty Cache','autoptimize') ?>" /> |
|
362 | +<input type="submit" class="button-secondary" value="<?php _e('Save Changes', 'autoptimize') ?>" /> |
|
363 | +<input type="submit" class="button-primary" name="autoptimize_cache_clean" value="<?php _e('Save Changes and Empty Cache', 'autoptimize') ?>" /> |
|
364 | 364 | </p> |
365 | 365 | |
366 | 366 | </form> |
@@ -369,31 +369,31 @@ discard block |
||
369 | 369 | <div class="autoptimize_banner hidden"> |
370 | 370 | <ul> |
371 | 371 | <?php |
372 | - if (apply_filters('autoptimize_settingsscreen_remotehttp',true)) { |
|
373 | - $AO_banner=get_transient("autoptimize_banner"); |
|
372 | + if (apply_filters('autoptimize_settingsscreen_remotehttp', true)) { |
|
373 | + $AO_banner = get_transient("autoptimize_banner"); |
|
374 | 374 | if (empty($AO_banner)) { |
375 | 375 | $banner_resp = wp_remote_get("http://misc.optimizingmatters.com/autoptimize_news.html"); |
376 | 376 | if (!is_wp_error($banner_resp)) { |
377 | - if (wp_remote_retrieve_response_code($banner_resp)=="200") { |
|
377 | + if (wp_remote_retrieve_response_code($banner_resp) == "200") { |
|
378 | 378 | $AO_banner = wp_kses_post(wp_remote_retrieve_body($banner_resp)); |
379 | - set_transient("autoptimize_banner",$AO_banner,DAY_IN_SECONDS); |
|
379 | + set_transient("autoptimize_banner", $AO_banner, DAY_IN_SECONDS); |
|
380 | 380 | } |
381 | 381 | } |
382 | 382 | } |
383 | 383 | echo $AO_banner; |
384 | 384 | } |
385 | 385 | ?> |
386 | - <li><?php _e("Need help? <a href='https://wordpress.org/plugins/autoptimize/faq/'>Check out the FAQ here</a>.","autoptimize"); ?></li> |
|
387 | - <li><?php _e("Happy with Autoptimize?","autoptimize"); ?><br /><a href="<?php echo network_admin_url(); ?>plugin-install.php?tab=search&type=author&s=optimizingmatters"><?php _e("Try my other plugins!","autoptimize"); ?></a></li> |
|
386 | + <li><?php _e("Need help? <a href='https://wordpress.org/plugins/autoptimize/faq/'>Check out the FAQ here</a>.", "autoptimize"); ?></li> |
|
387 | + <li><?php _e("Happy with Autoptimize?", "autoptimize"); ?><br /><a href="<?php echo network_admin_url(); ?>plugin-install.php?tab=search&type=author&s=optimizingmatters"><?php _e("Try my other plugins!", "autoptimize"); ?></a></li> |
|
388 | 388 | </ul> |
389 | 389 | </div> |
390 | 390 | <div style="margin-left:10px;margin-top:-5px;"> |
391 | 391 | <h2> |
392 | - <?php _e("futtta about","autoptimize") ?> |
|
392 | + <?php _e("futtta about", "autoptimize") ?> |
|
393 | 393 | <select id="feed_dropdown" > |
394 | - <option value="1"><?php _e("Autoptimize","autoptimize") ?></option> |
|
395 | - <option value="2"><?php _e("WordPress","autoptimize") ?></option> |
|
396 | - <option value="3"><?php _e("Web Technology","autoptimize") ?></option> |
|
394 | + <option value="1"><?php _e("Autoptimize", "autoptimize") ?></option> |
|
395 | + <option value="2"><?php _e("WordPress", "autoptimize") ?></option> |
|
396 | + <option value="3"><?php _e("Web Technology", "autoptimize") ?></option> |
|
397 | 397 | </select> |
398 | 398 | </h2> |
399 | 399 | <div id="futtta_feed"> |
@@ -408,7 +408,7 @@ discard block |
||
408 | 408 | </div> |
409 | 409 | </div> |
410 | 410 | </div> |
411 | - <div style="float:right;margin:50px 15px;"><a href="http://blog.futtta.be/2013/10/21/do-not-donate-to-me/" target="_blank"><img width="100px" height="85px" src="<?php echo plugins_url().'/'.plugin_basename(dirname(__FILE__)).'/external/do_not_donate_smallest.png'; ?>" title="<?php _e("Do not donate for this plugin!","autoptimize"); ?>"></a></div> |
|
411 | + <div style="float:right;margin:50px 15px;"><a href="http://blog.futtta.be/2013/10/21/do-not-donate-to-me/" target="_blank"><img width="100px" height="85px" src="<?php echo plugins_url().'/'.plugin_basename(dirname(__FILE__)).'/external/do_not_donate_smallest.png'; ?>" title="<?php _e("Do not donate for this plugin!", "autoptimize"); ?>"></a></div> |
|
412 | 412 | </div> |
413 | 413 | |
414 | 414 | <script type="text/javascript"> |
@@ -547,14 +547,14 @@ discard block |
||
547 | 547 | } |
548 | 548 | |
549 | 549 | public function addmenu() { |
550 | - $hook=add_options_page(__('Autoptimize Options','autoptimize'),'Autoptimize','manage_options','autoptimize',array($this,'show')); |
|
551 | - add_action( 'admin_print_scripts-'.$hook,array($this,'autoptimize_admin_scripts')); |
|
552 | - add_action( 'admin_print_styles-'.$hook,array($this,'autoptimize_admin_styles')); |
|
550 | + $hook = add_options_page(__('Autoptimize Options', 'autoptimize'), 'Autoptimize', 'manage_options', 'autoptimize', array($this, 'show')); |
|
551 | + add_action('admin_print_scripts-'.$hook, array($this, 'autoptimize_admin_scripts')); |
|
552 | + add_action('admin_print_styles-'.$hook, array($this, 'autoptimize_admin_styles')); |
|
553 | 553 | } |
554 | 554 | |
555 | 555 | public function autoptimize_admin_scripts() { |
556 | - wp_enqueue_script('jqcookie', plugins_url('/external/js/jquery.cookie.min.js', __FILE__), array('jquery'),null,true); |
|
557 | - wp_enqueue_script('unslider', plugins_url('/external/js/unslider-min.js', __FILE__), array('jquery'),null,true); |
|
556 | + wp_enqueue_script('jqcookie', plugins_url('/external/js/jquery.cookie.min.js', __FILE__), array('jquery'), null, true); |
|
557 | + wp_enqueue_script('unslider', plugins_url('/external/js/unslider-min.js', __FILE__), array('jquery'), null, true); |
|
558 | 558 | } |
559 | 559 | |
560 | 560 | public function autoptimize_admin_styles() { |
@@ -563,47 +563,47 @@ discard block |
||
563 | 563 | } |
564 | 564 | |
565 | 565 | public function registersettings() { |
566 | - register_setting('autoptimize','autoptimize_html'); |
|
567 | - register_setting('autoptimize','autoptimize_html_keepcomments'); |
|
568 | - register_setting('autoptimize','autoptimize_js'); |
|
569 | - register_setting('autoptimize','autoptimize_js_exclude'); |
|
570 | - register_setting('autoptimize','autoptimize_js_trycatch'); |
|
571 | - register_setting('autoptimize','autoptimize_js_justhead'); |
|
572 | - register_setting('autoptimize','autoptimize_js_forcehead'); |
|
573 | - register_setting('autoptimize','autoptimize_js_include_inline'); |
|
574 | - register_setting('autoptimize','autoptimize_css'); |
|
575 | - register_setting('autoptimize','autoptimize_css_exclude'); |
|
576 | - register_setting('autoptimize','autoptimize_css_justhead'); |
|
577 | - register_setting('autoptimize','autoptimize_css_datauris'); |
|
578 | - register_setting('autoptimize','autoptimize_css_defer'); |
|
579 | - register_setting('autoptimize','autoptimize_css_defer_inline'); |
|
580 | - register_setting('autoptimize','autoptimize_css_inline'); |
|
581 | - register_setting('autoptimize','autoptimize_css_include_inline'); |
|
582 | - register_setting('autoptimize','autoptimize_cdn_url'); |
|
583 | - register_setting('autoptimize','autoptimize_cache_clean'); |
|
584 | - register_setting('autoptimize','autoptimize_cache_nogzip'); |
|
585 | - register_setting('autoptimize','autoptimize_show_adv'); |
|
586 | - register_setting('autoptimize','autoptimize_optimize_logged'); |
|
587 | - register_setting('autoptimize','autoptimize_optimize_checkout'); |
|
566 | + register_setting('autoptimize', 'autoptimize_html'); |
|
567 | + register_setting('autoptimize', 'autoptimize_html_keepcomments'); |
|
568 | + register_setting('autoptimize', 'autoptimize_js'); |
|
569 | + register_setting('autoptimize', 'autoptimize_js_exclude'); |
|
570 | + register_setting('autoptimize', 'autoptimize_js_trycatch'); |
|
571 | + register_setting('autoptimize', 'autoptimize_js_justhead'); |
|
572 | + register_setting('autoptimize', 'autoptimize_js_forcehead'); |
|
573 | + register_setting('autoptimize', 'autoptimize_js_include_inline'); |
|
574 | + register_setting('autoptimize', 'autoptimize_css'); |
|
575 | + register_setting('autoptimize', 'autoptimize_css_exclude'); |
|
576 | + register_setting('autoptimize', 'autoptimize_css_justhead'); |
|
577 | + register_setting('autoptimize', 'autoptimize_css_datauris'); |
|
578 | + register_setting('autoptimize', 'autoptimize_css_defer'); |
|
579 | + register_setting('autoptimize', 'autoptimize_css_defer_inline'); |
|
580 | + register_setting('autoptimize', 'autoptimize_css_inline'); |
|
581 | + register_setting('autoptimize', 'autoptimize_css_include_inline'); |
|
582 | + register_setting('autoptimize', 'autoptimize_cdn_url'); |
|
583 | + register_setting('autoptimize', 'autoptimize_cache_clean'); |
|
584 | + register_setting('autoptimize', 'autoptimize_cache_nogzip'); |
|
585 | + register_setting('autoptimize', 'autoptimize_show_adv'); |
|
586 | + register_setting('autoptimize', 'autoptimize_optimize_logged'); |
|
587 | + register_setting('autoptimize', 'autoptimize_optimize_checkout'); |
|
588 | 588 | } |
589 | 589 | |
590 | - public function setmeta($links,$file=null) { |
|
590 | + public function setmeta($links, $file = null) { |
|
591 | 591 | //Inspired on http://wpengineer.com/meta-links-for-wordpress-plugins/ |
592 | 592 | //Do it only once - saves time |
593 | 593 | static $plugin; |
594 | - if(empty($plugin)) |
|
594 | + if (empty($plugin)) |
|
595 | 595 | $plugin = plugin_basename(AUTOPTIMIZE_PLUGIN_DIR.'autoptimize.php'); |
596 | 596 | |
597 | - if($file===null) { |
|
597 | + if ($file === null) { |
|
598 | 598 | //2.7 |
599 | 599 | $settings_link = sprintf('<a href="options-general.php?page=autoptimize">%s</a>', __('Settings')); |
600 | - array_unshift($links,$settings_link); |
|
600 | + array_unshift($links, $settings_link); |
|
601 | 601 | } else { |
602 | 602 | //2.8 |
603 | 603 | //If it's us, add the link |
604 | - if($file === $plugin) { |
|
605 | - $newlink = array(sprintf('<a href="options-general.php?page=autoptimize">%s</a>',__('Settings'))); |
|
606 | - $links = array_merge($links,$newlink); |
|
604 | + if ($file === $plugin) { |
|
605 | + $newlink = array(sprintf('<a href="options-general.php?page=autoptimize">%s</a>', __('Settings'))); |
|
606 | + $links = array_merge($links, $newlink); |
|
607 | 607 | } |
608 | 608 | } |
609 | 609 | |
@@ -611,7 +611,7 @@ discard block |
||
611 | 611 | } |
612 | 612 | |
613 | 613 | public function get($key) { |
614 | - if(!is_array($this->config)) { |
|
614 | + if (!is_array($this->config)) { |
|
615 | 615 | //Default config |
616 | 616 | $config = array('autoptimize_html' => 0, |
617 | 617 | 'autoptimize_html_keepcomments' => 0, |
@@ -637,43 +637,43 @@ discard block |
||
637 | 637 | ); |
638 | 638 | |
639 | 639 | //Override with user settings |
640 | - foreach(array_keys($config) as $name) { |
|
640 | + foreach (array_keys($config) as $name) { |
|
641 | 641 | $conf = get_option($name); |
642 | - if($conf!==false) { |
|
642 | + if ($conf !== false) { |
|
643 | 643 | //It was set before! |
644 | 644 | $config[$name] = $conf; |
645 | 645 | } |
646 | 646 | } |
647 | 647 | |
648 | 648 | //Save for next question |
649 | - $this->config = apply_filters( 'autoptimize_filter_get_config', $config ); |
|
649 | + $this->config = apply_filters('autoptimize_filter_get_config', $config); |
|
650 | 650 | } |
651 | 651 | |
652 | - if(isset($this->config[$key])) |
|
652 | + if (isset($this->config[$key])) |
|
653 | 653 | return $this->config[$key]; |
654 | 654 | |
655 | 655 | return false; |
656 | 656 | } |
657 | 657 | |
658 | 658 | private function getFutttaFeeds($url) { |
659 | - if (apply_filters('autoptimize_settingsscreen_remotehttp',true)) { |
|
660 | - $rss = fetch_feed( $url ); |
|
659 | + if (apply_filters('autoptimize_settingsscreen_remotehttp', true)) { |
|
660 | + $rss = fetch_feed($url); |
|
661 | 661 | $maxitems = 0; |
662 | 662 | |
663 | - if ( ! is_wp_error( $rss ) ) { |
|
664 | - $maxitems = $rss->get_item_quantity( 7 ); |
|
665 | - $rss_items = $rss->get_items( 0, $maxitems ); |
|
663 | + if (!is_wp_error($rss)) { |
|
664 | + $maxitems = $rss->get_item_quantity(7); |
|
665 | + $rss_items = $rss->get_items(0, $maxitems); |
|
666 | 666 | } |
667 | 667 | ?> |
668 | 668 | <ul> |
669 | - <?php if ( $maxitems == 0 ) : ?> |
|
670 | - <li><?php _e( 'No items', 'autoptimize' ); ?></li> |
|
669 | + <?php if ($maxitems == 0) : ?> |
|
670 | + <li><?php _e('No items', 'autoptimize'); ?></li> |
|
671 | 671 | <?php else : ?> |
672 | - <?php foreach ( $rss_items as $item ) : ?> |
|
672 | + <?php foreach ($rss_items as $item) : ?> |
|
673 | 673 | <li> |
674 | - <a href="<?php echo esc_url( $item->get_permalink() ); ?>" |
|
675 | - title="<?php printf( __( 'Posted %s', 'autoptimize' ), $item->get_date('j F Y | g:i a') ); ?>"> |
|
676 | - <?php echo esc_html( $item->get_title() ); ?> |
|
674 | + <a href="<?php echo esc_url($item->get_permalink()); ?>" |
|
675 | + title="<?php printf(__('Posted %s', 'autoptimize'), $item->get_date('j F Y | g:i a')); ?>"> |
|
676 | + <?php echo esc_html($item->get_title()); ?> |
|
677 | 677 | </a> |
678 | 678 | </li> |
679 | 679 | <?php endforeach; ?> |
@@ -684,20 +684,20 @@ discard block |
||
684 | 684 | } |
685 | 685 | |
686 | 686 | // based on http://wordpress.stackexchange.com/a/58826 |
687 | - static function ao_admin_tabs(){ |
|
688 | - $tabs = apply_filters('autoptimize_filter_settingsscreen_tabs',array('autoptimize' => __('Main','autoptimize'))); |
|
689 | - $tabContent=""; |
|
690 | - if (count($tabs)>1) { |
|
691 | - if(isset($_GET['page'])){ |
|
687 | + static function ao_admin_tabs() { |
|
688 | + $tabs = apply_filters('autoptimize_filter_settingsscreen_tabs', array('autoptimize' => __('Main', 'autoptimize'))); |
|
689 | + $tabContent = ""; |
|
690 | + if (count($tabs) > 1) { |
|
691 | + if (isset($_GET['page'])) { |
|
692 | 692 | $currentId = $_GET['page']; |
693 | 693 | } else { |
694 | 694 | $currentId = "autoptimize"; |
695 | 695 | } |
696 | 696 | $tabContent .= "<h2 class=\"nav-tab-wrapper\">"; |
697 | - foreach($tabs as $tabId => $tabName){ |
|
698 | - if($currentId == $tabId){ |
|
697 | + foreach ($tabs as $tabId => $tabName) { |
|
698 | + if ($currentId == $tabId) { |
|
699 | 699 | $class = " nav-tab-active"; |
700 | - } else{ |
|
700 | + } else { |
|
701 | 701 | $class = ""; |
702 | 702 | } |
703 | 703 | $tabContent .= '<a class="nav-tab'.$class.'" href="?page='.$tabId.'">'.$tabName.'</a>'; |
@@ -53,7 +53,7 @@ |
||
53 | 53 | * |
54 | 54 | * @param array $options (currently ignored) |
55 | 55 | * |
56 | - * @return null |
|
56 | + * @return string |
|
57 | 57 | */ |
58 | 58 | private function __construct($options) { |
59 | 59 | $this->_options = $options; |
@@ -245,6 +245,6 @@ |
||
245 | 245 | ) |
246 | 246 | \\s* |
247 | 247 | /x', '$1', $m[1]); |
248 | - return 'font-family:' . $m[1] . $m[2]; |
|
248 | + return 'font-family:'.$m[1].$m[2]; |
|
249 | 249 | } |
250 | 250 | } |
@@ -1,10 +1,12 @@ discard block |
||
1 | 1 | <?php exit; |
2 | 2 | |
3 | 3 | //Check everything exists before using it |
4 | -if(!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) |
|
4 | +if(!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) { |
|
5 | 5 | $_SERVER['HTTP_ACCEPT_ENCODING'] = ''; |
6 | -if(!isset($_SERVER['HTTP_USER_AGENT'])) |
|
6 | +} |
|
7 | +if(!isset($_SERVER['HTTP_USER_AGENT'])) { |
|
7 | 8 | $_SERVER['HTTP_USER_AGENT'] = ''; |
9 | +} |
|
8 | 10 | |
9 | 11 | // Determine supported compression method |
10 | 12 | $gzip = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'); |
@@ -19,16 +21,19 @@ discard block |
||
19 | 21 | { |
20 | 22 | $version = floatval($matches[1]); |
21 | 23 | |
22 | - if ($version < 6) |
|
23 | - $encoding = 'none'; |
|
24 | + if ($version < 6) { |
|
25 | + $encoding = 'none'; |
|
26 | + } |
|
24 | 27 | |
25 | - if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) |
|
26 | - $encoding = 'none'; |
|
27 | -} |
|
28 | + if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) { |
|
29 | + $encoding = 'none'; |
|
30 | + } |
|
31 | + } |
|
28 | 32 | |
29 | 33 | //Some servers compress the output of PHP - Don't break in those cases |
30 | -if(ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) |
|
34 | +if(ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) { |
|
31 | 35 | $encoding = 'none'; |
36 | +} |
|
32 | 37 | |
33 | 38 | //Get data |
34 | 39 | $contents = file_get_contents(__FILE__.'.'.$encoding); |
@@ -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,20 +15,20 @@ 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 | //Get data |
34 | 34 | $contents = file_get_contents(__FILE__.'.'.$encoding); |
@@ -41,24 +41,24 @@ discard block |
||
41 | 41 | $modTimeMatch = (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) === $modTime); |
42 | 42 | |
43 | 43 | if (($modTimeMatch)||($eTagMatch)) { |
44 | - header('HTTP/1.1 304 Not Modified'); |
|
45 | - header('Connection: close'); |
|
44 | + header('HTTP/1.1 304 Not Modified'); |
|
45 | + header('Connection: close'); |
|
46 | 46 | } else { |
47 | - // send all sorts of headers |
|
48 | - $expireTime=60*60*24*356; // 1y max according to RFC |
|
47 | + // send all sorts of headers |
|
48 | + $expireTime=60*60*24*356; // 1y max according to RFC |
|
49 | 49 | |
50 | - if(isset($encoding) && $encoding != 'none') |
|
51 | - { |
|
52 | - header('Content-Encoding: '.$encoding); |
|
53 | - } |
|
54 | - header('Vary: Accept-Encoding'); |
|
55 | - header('Content-Length: '.strlen($contents)); |
|
56 | - header('Content-type: %%CONTENT%%; charset=utf-8'); |
|
57 | - header('Cache-Control: max-age='.$expireTime.', public, immutable'); |
|
58 | - header('Expires: '.gmdate('D, d M Y H:i:s', time() + $expireTime).' GMT'); //10 years |
|
59 | - header('ETag: ' . $eTag); |
|
60 | - header('Last-Modified: '.gmdate('D, d M Y H:i:s', $modTime).' GMT'); |
|
50 | + if(isset($encoding) && $encoding != 'none') |
|
51 | + { |
|
52 | + header('Content-Encoding: '.$encoding); |
|
53 | + } |
|
54 | + header('Vary: Accept-Encoding'); |
|
55 | + header('Content-Length: '.strlen($contents)); |
|
56 | + header('Content-type: %%CONTENT%%; charset=utf-8'); |
|
57 | + header('Cache-Control: max-age='.$expireTime.', public, immutable'); |
|
58 | + header('Expires: '.gmdate('D, d M Y H:i:s', time() + $expireTime).' GMT'); //10 years |
|
59 | + header('ETag: ' . $eTag); |
|
60 | + header('Last-Modified: '.gmdate('D, d M Y H:i:s', $modTime).' GMT'); |
|
61 | 61 | |
62 | - // send output |
|
63 | - echo $contents; |
|
62 | + // send output |
|
63 | + echo $contents; |
|
64 | 64 | } |
@@ -1,9 +1,9 @@ discard block |
||
1 | 1 | <?php exit; |
2 | 2 | |
3 | 3 | //Check everything exists before using it |
4 | -if(!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) |
|
4 | +if (!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) |
|
5 | 5 | $_SERVER['HTTP_ACCEPT_ENCODING'] = ''; |
6 | -if(!isset($_SERVER['HTTP_USER_AGENT'])) |
|
6 | +if (!isset($_SERVER['HTTP_USER_AGENT'])) |
|
7 | 7 | $_SERVER['HTTP_USER_AGENT'] = ''; |
8 | 8 | |
9 | 9 | // Determine supported compression method |
@@ -27,28 +27,28 @@ discard block |
||
27 | 27 | } |
28 | 28 | |
29 | 29 | //Some servers compress the output of PHP - Don't break in those cases |
30 | -if(ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) |
|
30 | +if (ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) |
|
31 | 31 | $encoding = 'none'; |
32 | 32 | |
33 | 33 | //Get data |
34 | 34 | $contents = file_get_contents(__FILE__.'.'.$encoding); |
35 | 35 | |
36 | 36 | // first check if we have to send 304 |
37 | -$eTag=md5($contents); |
|
38 | -$modTime=filemtime(__FILE__.'.none'); |
|
37 | +$eTag = md5($contents); |
|
38 | +$modTime = filemtime(__FILE__.'.none'); |
|
39 | 39 | |
40 | 40 | date_default_timezone_set("UTC"); |
41 | -$eTagMatch = (isset($_SERVER['HTTP_IF_NONE_MATCH']) && strpos($_SERVER['HTTP_IF_NONE_MATCH'],$eTag)); |
|
41 | +$eTagMatch = (isset($_SERVER['HTTP_IF_NONE_MATCH']) && strpos($_SERVER['HTTP_IF_NONE_MATCH'], $eTag)); |
|
42 | 42 | $modTimeMatch = (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) === $modTime); |
43 | 43 | |
44 | -if (($modTimeMatch)||($eTagMatch)) { |
|
44 | +if (($modTimeMatch) || ($eTagMatch)) { |
|
45 | 45 | header('HTTP/1.1 304 Not Modified'); |
46 | 46 | header('Connection: close'); |
47 | 47 | } else { |
48 | 48 | // send all sorts of headers |
49 | - $expireTime=60*60*24*356; // 1y max according to RFC |
|
49 | + $expireTime = 60*60*24*356; // 1y max according to RFC |
|
50 | 50 | |
51 | - if(isset($encoding) && $encoding != 'none') |
|
51 | + if (isset($encoding) && $encoding != 'none') |
|
52 | 52 | { |
53 | 53 | header('Content-Encoding: '.$encoding); |
54 | 54 | } |
@@ -57,7 +57,7 @@ discard block |
||
57 | 57 | header('Content-type: %%CONTENT%%; charset=utf-8'); |
58 | 58 | header('Cache-Control: max-age='.$expireTime.', public, immutable'); |
59 | 59 | header('Expires: '.gmdate('D, d M Y H:i:s', time() + $expireTime).' GMT'); //10 years |
60 | - header('ETag: ' . $eTag); |
|
60 | + header('ETag: '.$eTag); |
|
61 | 61 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', $modTime).' GMT'); |
62 | 62 | |
63 | 63 | // send output |
@@ -1,10 +1,12 @@ discard block |
||
1 | 1 | <?php exit; |
2 | 2 | |
3 | 3 | //Check everything exists before using it |
4 | -if(!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) |
|
4 | +if(!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) { |
|
5 | 5 | $_SERVER['HTTP_ACCEPT_ENCODING'] = ''; |
6 | -if(!isset($_SERVER['HTTP_USER_AGENT'])) |
|
6 | +} |
|
7 | +if(!isset($_SERVER['HTTP_USER_AGENT'])) { |
|
7 | 8 | $_SERVER['HTTP_USER_AGENT'] = ''; |
9 | +} |
|
8 | 10 | |
9 | 11 | // Determine supported compression method |
10 | 12 | $gzip = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'); |
@@ -19,16 +21,19 @@ discard block |
||
19 | 21 | { |
20 | 22 | $version = floatval($matches[1]); |
21 | 23 | |
22 | - if ($version < 6) |
|
23 | - $encoding = 'none'; |
|
24 | + if ($version < 6) { |
|
25 | + $encoding = 'none'; |
|
26 | + } |
|
24 | 27 | |
25 | - if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) |
|
26 | - $encoding = 'none'; |
|
27 | -} |
|
28 | + if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) { |
|
29 | + $encoding = 'none'; |
|
30 | + } |
|
31 | + } |
|
28 | 32 | |
29 | 33 | //Some servers compress the output of PHP - Don't break in those cases |
30 | -if(ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) |
|
34 | +if(ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) { |
|
31 | 35 | $encoding = 'none'; |
36 | +} |
|
32 | 37 | |
33 | 38 | $iscompressed = file_exists(__FILE__.'.'.$encoding); |
34 | 39 | if($encoding != 'none' && $iscompressed == false) |
@@ -36,7 +41,7 @@ discard block |
||
36 | 41 | $flag = ($encoding == 'gzip' ? FORCE_GZIP : FORCE_DEFLATE); |
37 | 42 | $code = file_get_contents(__FILE__.'.none'); |
38 | 43 | $contents = gzencode($code,9,$flag); |
39 | -}else{ |
|
44 | +} else{ |
|
40 | 45 | //Get data |
41 | 46 | $contents = file_get_contents(__FILE__.'.'.$encoding); |
42 | 47 | } |
@@ -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 |
@@ -51,35 +51,35 @@ discard block |
||
51 | 51 | $modTimeMatch = (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) === $modTime); |
52 | 52 | |
53 | 53 | if (($modTimeMatch)||($eTagMatch)) { |
54 | - header('HTTP/1.1 304 Not Modified'); |
|
55 | - header('Connection: close'); |
|
54 | + header('HTTP/1.1 304 Not Modified'); |
|
55 | + header('Connection: close'); |
|
56 | 56 | } else { |
57 | - // send all sorts of headers |
|
58 | - $expireTime=60*60*24*355; // 1y max according to RFC |
|
59 | - if ($encoding != 'none') { |
|
60 | - header('Content-Encoding: '.$encoding); |
|
61 | - } |
|
62 | - header('Vary: Accept-Encoding'); |
|
63 | - header('Content-Length: '.strlen($contents)); |
|
64 | - header('Content-type: %%CONTENT%%; charset=utf-8'); |
|
65 | - header('Cache-Control: max-age='.$expireTime.', public, immutable'); |
|
66 | - header('Expires: '.gmdate('D, d M Y H:i:s', time() + $expireTime).' GMT'); |
|
67 | - header('ETag: ' . $eTag); |
|
68 | - header('Last-Modified: '.gmdate('D, d M Y H:i:s', $modTime).' GMT'); |
|
57 | + // send all sorts of headers |
|
58 | + $expireTime=60*60*24*355; // 1y max according to RFC |
|
59 | + if ($encoding != 'none') { |
|
60 | + header('Content-Encoding: '.$encoding); |
|
61 | + } |
|
62 | + header('Vary: Accept-Encoding'); |
|
63 | + header('Content-Length: '.strlen($contents)); |
|
64 | + header('Content-type: %%CONTENT%%; charset=utf-8'); |
|
65 | + header('Cache-Control: max-age='.$expireTime.', public, immutable'); |
|
66 | + header('Expires: '.gmdate('D, d M Y H:i:s', time() + $expireTime).' GMT'); |
|
67 | + header('ETag: ' . $eTag); |
|
68 | + header('Last-Modified: '.gmdate('D, d M Y H:i:s', $modTime).' GMT'); |
|
69 | 69 | |
70 | - // send output |
|
71 | - echo $contents; |
|
70 | + // send output |
|
71 | + echo $contents; |
|
72 | 72 | |
73 | - //And write to filesystem cache if not done yet |
|
74 | - if($encoding != 'none' && $iscompressed == false) |
|
75 | - { |
|
76 | - //Write the content we sent |
|
77 | - file_put_contents(__FILE__.'.'.$encoding,$contents); |
|
73 | + //And write to filesystem cache if not done yet |
|
74 | + if($encoding != 'none' && $iscompressed == false) |
|
75 | + { |
|
76 | + //Write the content we sent |
|
77 | + file_put_contents(__FILE__.'.'.$encoding,$contents); |
|
78 | 78 | |
79 | - //And write the new content |
|
80 | - $flag = ($encoding == 'gzip' ? FORCE_DEFLATE : FORCE_GZIP); |
|
81 | - $ext = ($encoding == 'gzip' ? 'deflate' : 'gzip'); |
|
82 | - $contents = gzencode($code,9,$flag); |
|
83 | - file_put_contents(__FILE__.'.'.$ext,$contents); |
|
84 | - } |
|
79 | + //And write the new content |
|
80 | + $flag = ($encoding == 'gzip' ? FORCE_DEFLATE : FORCE_GZIP); |
|
81 | + $ext = ($encoding == 'gzip' ? 'deflate' : 'gzip'); |
|
82 | + $contents = gzencode($code,9,$flag); |
|
83 | + file_put_contents(__FILE__.'.'.$ext,$contents); |
|
84 | + } |
|
85 | 85 | } |
@@ -1,9 +1,9 @@ discard block |
||
1 | 1 | <?php exit; |
2 | 2 | |
3 | 3 | //Check everything exists before using it |
4 | -if(!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) |
|
4 | +if (!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) |
|
5 | 5 | $_SERVER['HTTP_ACCEPT_ENCODING'] = ''; |
6 | -if(!isset($_SERVER['HTTP_USER_AGENT'])) |
|
6 | +if (!isset($_SERVER['HTTP_USER_AGENT'])) |
|
7 | 7 | $_SERVER['HTTP_USER_AGENT'] = ''; |
8 | 8 | |
9 | 9 | // Determine supported compression method |
@@ -27,16 +27,16 @@ discard block |
||
27 | 27 | } |
28 | 28 | |
29 | 29 | //Some servers compress the output of PHP - Don't break in those cases |
30 | -if(ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) |
|
30 | +if (ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) |
|
31 | 31 | $encoding = 'none'; |
32 | 32 | |
33 | 33 | $iscompressed = file_exists(__FILE__.'.'.$encoding); |
34 | -if($encoding != 'none' && $iscompressed == false) |
|
34 | +if ($encoding != 'none' && $iscompressed == false) |
|
35 | 35 | { |
36 | 36 | $flag = ($encoding == 'gzip' ? FORCE_GZIP : FORCE_DEFLATE); |
37 | 37 | $code = file_get_contents(__FILE__.'.none'); |
38 | - $contents = gzencode($code,9,$flag); |
|
39 | -}else{ |
|
38 | + $contents = gzencode($code, 9, $flag); |
|
39 | +} else { |
|
40 | 40 | //Get data |
41 | 41 | $contents = file_get_contents(__FILE__.'.'.$encoding); |
42 | 42 | } |
@@ -44,19 +44,19 @@ discard block |
||
44 | 44 | // first check if we have to send 304 |
45 | 45 | // inspired by http://www.jonasjohn.de/snippets/php/caching.htm |
46 | 46 | |
47 | -$eTag=md5($contents); |
|
48 | -$modTime=filemtime(__FILE__.'.none'); |
|
47 | +$eTag = md5($contents); |
|
48 | +$modTime = filemtime(__FILE__.'.none'); |
|
49 | 49 | |
50 | 50 | date_default_timezone_set("UTC"); |
51 | -$eTagMatch = (isset($_SERVER['HTTP_IF_NONE_MATCH']) && strpos($_SERVER['HTTP_IF_NONE_MATCH'],$eTag)); |
|
51 | +$eTagMatch = (isset($_SERVER['HTTP_IF_NONE_MATCH']) && strpos($_SERVER['HTTP_IF_NONE_MATCH'], $eTag)); |
|
52 | 52 | $modTimeMatch = (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) === $modTime); |
53 | 53 | |
54 | -if (($modTimeMatch)||($eTagMatch)) { |
|
54 | +if (($modTimeMatch) || ($eTagMatch)) { |
|
55 | 55 | header('HTTP/1.1 304 Not Modified'); |
56 | 56 | header('Connection: close'); |
57 | 57 | } else { |
58 | 58 | // send all sorts of headers |
59 | - $expireTime=60*60*24*355; // 1y max according to RFC |
|
59 | + $expireTime = 60*60*24*355; // 1y max according to RFC |
|
60 | 60 | if ($encoding != 'none') { |
61 | 61 | header('Content-Encoding: '.$encoding); |
62 | 62 | } |
@@ -65,22 +65,22 @@ discard block |
||
65 | 65 | header('Content-type: %%CONTENT%%; charset=utf-8'); |
66 | 66 | header('Cache-Control: max-age='.$expireTime.', public, immutable'); |
67 | 67 | header('Expires: '.gmdate('D, d M Y H:i:s', time() + $expireTime).' GMT'); |
68 | - header('ETag: ' . $eTag); |
|
68 | + header('ETag: '.$eTag); |
|
69 | 69 | header('Last-Modified: '.gmdate('D, d M Y H:i:s', $modTime).' GMT'); |
70 | 70 | |
71 | 71 | // send output |
72 | 72 | echo $contents; |
73 | 73 | |
74 | 74 | //And write to filesystem cache if not done yet |
75 | - if($encoding != 'none' && $iscompressed == false) |
|
75 | + if ($encoding != 'none' && $iscompressed == false) |
|
76 | 76 | { |
77 | 77 | //Write the content we sent |
78 | - file_put_contents(__FILE__.'.'.$encoding,$contents); |
|
78 | + file_put_contents(__FILE__.'.'.$encoding, $contents); |
|
79 | 79 | |
80 | 80 | //And write the new content |
81 | 81 | $flag = ($encoding == 'gzip' ? FORCE_DEFLATE : FORCE_GZIP); |
82 | 82 | $ext = ($encoding == 'gzip' ? 'deflate' : 'gzip'); |
83 | - $contents = gzencode($code,9,$flag); |
|
84 | - file_put_contents(__FILE__.'.'.$ext,$contents); |
|
83 | + $contents = gzencode($code, 9, $flag); |
|
84 | + file_put_contents(__FILE__.'.'.$ext, $contents); |
|
85 | 85 | } |
86 | 86 | } |
@@ -1,5 +1,8 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly |
|
2 | +if ( ! defined( 'ABSPATH' ) ) { |
|
3 | + exit; |
|
4 | +} |
|
5 | +// Exit if accessed directly |
|
3 | 6 | |
4 | 7 | class autoptimizeHTML extends autoptimizeBase { |
5 | 8 | private $keepcomments = false; |
@@ -26,8 +29,9 @@ discard block |
||
26 | 29 | //Joins and optimizes CSS |
27 | 30 | public function minify() { |
28 | 31 | $noptimizeHTML = apply_filters( 'autoptimize_filter_html_noptimize', false, $this->content ); |
29 | - if ($noptimizeHTML) |
|
30 | - return false; |
|
32 | + if ($noptimizeHTML) { |
|
33 | + return false; |
|
34 | + } |
|
31 | 35 | |
32 | 36 | if(class_exists('Minify_HTML')) { |
33 | 37 | // wrap the to-be-excluded strings in noptimize tags |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly |
|
2 | +if (!defined('ABSPATH')) exit; // Exit if accessed directly |
|
3 | 3 | |
4 | 4 | class autoptimizeHTML extends autoptimizeBase { |
5 | 5 | private $keepcomments = false; |
@@ -10,13 +10,13 @@ discard block |
||
10 | 10 | $this->keepcomments = (bool) $options['keepcomments']; |
11 | 11 | |
12 | 12 | // filter to force xhtml |
13 | - $this->forcexhtml = (bool) apply_filters( 'autoptimize_filter_html_forcexhtml', false ); |
|
13 | + $this->forcexhtml = (bool) apply_filters('autoptimize_filter_html_forcexhtml', false); |
|
14 | 14 | |
15 | 15 | // filter to add strings to be excluded from HTML minification |
16 | - $excludeHTML = apply_filters( 'autoptimize_filter_html_exclude','' ); |
|
17 | - if ($excludeHTML!=="") { |
|
18 | - $exclHTMLArr = array_filter(array_map('trim',explode(",",$excludeHTML))); |
|
19 | - $this->exclude = array_merge($exclHTMLArr,$this->exclude); |
|
16 | + $excludeHTML = apply_filters('autoptimize_filter_html_exclude', ''); |
|
17 | + if ($excludeHTML !== "") { |
|
18 | + $exclHTMLArr = array_filter(array_map('trim', explode(",", $excludeHTML))); |
|
19 | + $this->exclude = array_merge($exclHTMLArr, $this->exclude); |
|
20 | 20 | } |
21 | 21 | |
22 | 22 | // Nothing else for HTML |
@@ -25,16 +25,16 @@ discard block |
||
25 | 25 | |
26 | 26 | //Joins and optimizes CSS |
27 | 27 | public function minify() { |
28 | - $noptimizeHTML = apply_filters( 'autoptimize_filter_html_noptimize', false, $this->content ); |
|
28 | + $noptimizeHTML = apply_filters('autoptimize_filter_html_noptimize', false, $this->content); |
|
29 | 29 | if ($noptimizeHTML) |
30 | 30 | return false; |
31 | 31 | |
32 | - if(class_exists('Minify_HTML')) { |
|
32 | + if (class_exists('Minify_HTML')) { |
|
33 | 33 | // wrap the to-be-excluded strings in noptimize tags |
34 | 34 | foreach ($this->exclude as $exclString) { |
35 | - if (strpos($this->content,$exclString)!==false) { |
|
36 | - $replString="<!--noptimize-->".$exclString."<!--/noptimize-->"; |
|
37 | - $this->content=str_replace($exclString,$replString,$this->content); |
|
35 | + if (strpos($this->content, $exclString) !== false) { |
|
36 | + $replString = "<!--noptimize-->".$exclString."<!--/noptimize-->"; |
|
37 | + $this->content = str_replace($exclString, $replString, $this->content); |
|
38 | 38 | } |
39 | 39 | } |
40 | 40 | |
@@ -47,8 +47,8 @@ discard block |
||
47 | 47 | $options['xhtml'] = true; |
48 | 48 | } |
49 | 49 | |
50 | - if (@is_callable(array("Minify_HTML","minify"))) { |
|
51 | - $tmp_content = Minify_HTML::minify($this->content,$options); |
|
50 | + if (@is_callable(array("Minify_HTML", "minify"))) { |
|
51 | + $tmp_content = Minify_HTML::minify($this->content, $options); |
|
52 | 52 | if (!empty($tmp_content)) { |
53 | 53 | $this->content = $tmp_content; |
54 | 54 | unset($tmp_content); |
@@ -60,16 +60,16 @@ discard block |
||
60 | 60 | |
61 | 61 | // remove the noptimize-wrapper from around the excluded strings |
62 | 62 | foreach ($this->exclude as $exclString) { |
63 | - $replString="<!--noptimize-->".$exclString."<!--/noptimize-->"; |
|
64 | - if (strpos($this->content,$replString)!==false) { |
|
65 | - $this->content=str_replace($replString,$exclString,$this->content); |
|
63 | + $replString = "<!--noptimize-->".$exclString."<!--/noptimize-->"; |
|
64 | + if (strpos($this->content, $replString) !== false) { |
|
65 | + $this->content = str_replace($replString, $exclString, $this->content); |
|
66 | 66 | } |
67 | 67 | } |
68 | 68 | |
69 | 69 | // revslider data attribs somehow suffer from HTML optimization, this fixes that |
70 | - if ( class_exists('RevSlider') && apply_filters('autoptimize_filter_html_dataattrib_cleanup', false) ) { |
|
71 | - $this->content = preg_replace('#\n(data-.*$)\n#Um',' $1 ', $this->content); |
|
72 | - $this->content = preg_replace('#<[^>]*(=\"[^"\'<>\s]*\")(\w)#','$1 $2', $this->content); |
|
70 | + if (class_exists('RevSlider') && apply_filters('autoptimize_filter_html_dataattrib_cleanup', false)) { |
|
71 | + $this->content = preg_replace('#\n(data-.*$)\n#Um', ' $1 ', $this->content); |
|
72 | + $this->content = preg_replace('#<[^>]*(=\"[^"\'<>\s]*\")(\w)#', '$1 $2', $this->content); |
|
73 | 73 | } |
74 | 74 | |
75 | 75 | return true; |
@@ -273,12 +273,12 @@ discard block |
||
273 | 273 | return true; |
274 | 274 | } |
275 | 275 | |
276 | - // we have to check for a preceding keyword, and we don't need to pattern |
|
277 | - // match over the whole output. |
|
278 | - $recentOutput = substr($this->output, -10); |
|
276 | + // we have to check for a preceding keyword, and we don't need to pattern |
|
277 | + // match over the whole output. |
|
278 | + $recentOutput = substr($this->output, -10); |
|
279 | 279 | |
280 | - // check if return/typeof directly precede a pattern without a space |
|
281 | - foreach (array('return', 'typeof') as $keyword) { |
|
280 | + // check if return/typeof directly precede a pattern without a space |
|
281 | + foreach (array('return', 'typeof') as $keyword) { |
|
282 | 282 | if ($this->a !== substr($keyword, -1)) { |
283 | 283 | // certainly wasn't keyword |
284 | 284 | continue; |
@@ -290,13 +290,13 @@ discard block |
||
290 | 290 | } |
291 | 291 | } |
292 | 292 | |
293 | - // check all keywords |
|
294 | - if ($this->a === ' ' || $this->a === "\n") { |
|
295 | - if (preg_match('~(^|[\\s\\S])(?:case|else|in|return|typeof)$~', $recentOutput, $m)) { |
|
296 | - if ($m[1] === '' || !$this->isAlphaNum($m[1])) { |
|
297 | - return true; |
|
298 | - } |
|
299 | - } |
|
293 | + // check all keywords |
|
294 | + if ($this->a === ' ' || $this->a === "\n") { |
|
295 | + if (preg_match('~(^|[\\s\\S])(?:case|else|in|return|typeof)$~', $recentOutput, $m)) { |
|
296 | + if ($m[1] === '' || !$this->isAlphaNum($m[1])) { |
|
297 | + return true; |
|
298 | + } |
|
299 | + } |
|
300 | 300 | } |
301 | 301 | |
302 | 302 | return false; |
@@ -68,7 +68,7 @@ discard block |
||
68 | 68 | protected $inputLength = 0; |
69 | 69 | protected $lookAhead = null; |
70 | 70 | protected $output = ''; |
71 | - protected $lastByteOut = ''; |
|
71 | + protected $lastByteOut = ''; |
|
72 | 72 | protected $keptComment = ''; |
73 | 73 | |
74 | 74 | /** |
@@ -104,7 +104,7 @@ discard block |
||
104 | 104 | } |
105 | 105 | |
106 | 106 | $mbIntEnc = null; |
107 | - if (function_exists('mb_strlen') && ((int)ini_get('mbstring.func_overload') & 2)) { |
|
107 | + if (function_exists('mb_strlen') && ((int) ini_get('mbstring.func_overload') & 2)) { |
|
108 | 108 | $mbIntEnc = mb_internal_encoding(); |
109 | 109 | mb_internal_encoding('8bit'); |
110 | 110 | } |
@@ -121,7 +121,7 @@ discard block |
||
121 | 121 | && ($this->b === $this->lastByteOut)) { |
122 | 122 | // Don't delete this space. If we do, the addition/subtraction |
123 | 123 | // could be parsed as a post-increment |
124 | - } elseif (! $this->isAlphaNum($this->b)) { |
|
124 | + } elseif (!$this->isAlphaNum($this->b)) { |
|
125 | 125 | $command = self::ACTION_DELETE_A; |
126 | 126 | } |
127 | 127 | } elseif ($this->a === "\n") { |
@@ -132,10 +132,10 @@ discard block |
||
132 | 132 | // otherwise mb_strpos will give WARNING |
133 | 133 | } elseif ($this->b === null |
134 | 134 | || (false === strpos('{[(+-!~', $this->b) |
135 | - && ! $this->isAlphaNum($this->b))) { |
|
135 | + && !$this->isAlphaNum($this->b))) { |
|
136 | 136 | $command = self::ACTION_DELETE_A; |
137 | 137 | } |
138 | - } elseif (! $this->isAlphaNum($this->a)) { |
|
138 | + } elseif (!$this->isAlphaNum($this->a)) { |
|
139 | 139 | if ($this->b === ' ' |
140 | 140 | || ($this->b === "\n" |
141 | 141 | && (false === strpos('}])+-"\'', $this->a)))) { |
@@ -191,7 +191,7 @@ discard block |
||
191 | 191 | $this->a = $this->b; |
192 | 192 | if ($this->a === "'" || $this->a === '"') { // string literal |
193 | 193 | $str = $this->a; // in case needed for exception |
194 | - for(;;) { |
|
194 | + for (;;) { |
|
195 | 195 | $this->output .= $this->a; |
196 | 196 | $this->lastByteOut = $this->a; |
197 | 197 | |
@@ -218,13 +218,13 @@ discard block |
||
218 | 218 | case self::ACTION_DELETE_A_B: // 3 |
219 | 219 | $this->b = $this->next(); |
220 | 220 | if ($this->b === '/' && $this->isRegexpLiteral()) { |
221 | - $this->output .= $this->a . $this->b; |
|
221 | + $this->output .= $this->a.$this->b; |
|
222 | 222 | $pattern = '/'; // keep entire pattern in case we need to report it in the exception |
223 | - for(;;) { |
|
223 | + for (;;) { |
|
224 | 224 | $this->a = $this->get(); |
225 | 225 | $pattern .= $this->a; |
226 | 226 | if ($this->a === '[') { |
227 | - for(;;) { |
|
227 | + for (;;) { |
|
228 | 228 | $this->output .= $this->a; |
229 | 229 | $this->a = $this->get(); |
230 | 230 | $pattern .= $this->a; |
@@ -239,7 +239,7 @@ discard block |
||
239 | 239 | if ($this->isEOF($this->a)) { |
240 | 240 | throw new JSMin_UnterminatedRegExpException( |
241 | 241 | "JSMin: Unterminated set in RegExp at byte " |
242 | - . $this->inputIndex .": {$pattern}"); |
|
242 | + . $this->inputIndex.": {$pattern}"); |
|
243 | 243 | } |
244 | 244 | } |
245 | 245 | } |
@@ -283,7 +283,7 @@ discard block |
||
283 | 283 | // certainly wasn't keyword |
284 | 284 | continue; |
285 | 285 | } |
286 | - if (preg_match("~(^|[\\s\\S])" . substr($keyword, 0, -1) . "$~", $recentOutput, $m)) { |
|
286 | + if (preg_match("~(^|[\\s\\S])".substr($keyword, 0, -1)."$~", $recentOutput, $m)) { |
|
287 | 287 | if ($m[1] === '' || !$this->isAlphaNum($m[1])) { |
288 | 288 | return true; |
289 | 289 | } |
@@ -392,7 +392,7 @@ discard block |
||
392 | 392 | { |
393 | 393 | $this->get(); |
394 | 394 | $comment = ''; |
395 | - for(;;) { |
|
395 | + for (;;) { |
|
396 | 396 | $get = $this->get(); |
397 | 397 | if ($get === '*') { |
398 | 398 | if ($this->peek() === '/') { // end of comment reached |
@@ -403,7 +403,7 @@ discard block |
||
403 | 403 | // don't prepend a newline if two comments right after one another |
404 | 404 | $this->keptComment = "\n"; |
405 | 405 | } |
406 | - $this->keptComment .= "/*!" . substr($comment, 1) . "*/\n"; |
|
406 | + $this->keptComment .= "/*!".substr($comment, 1)."*/\n"; |
|
407 | 407 | } else if (preg_match('/^@(?:cc_on|if|elif|else|end)\\b/', $comment)) { |
408 | 408 | // IE conditional |
409 | 409 | $this->keptComment .= "/*{$comment}*/"; |
@@ -68,7 +68,7 @@ discard block |
||
68 | 68 | protected $inputLength = 0; |
69 | 69 | protected $lookAhead = null; |
70 | 70 | protected $output = ''; |
71 | - protected $lastByteOut = ''; |
|
71 | + protected $lastByteOut = ''; |
|
72 | 72 | protected $keptComment = ''; |
73 | 73 | |
74 | 74 | /** |
@@ -104,7 +104,7 @@ discard block |
||
104 | 104 | } |
105 | 105 | |
106 | 106 | $mbIntEnc = null; |
107 | - if (function_exists('mb_strlen') && ((int)ini_get('mbstring.func_overload') & 2)) { |
|
107 | + if (function_exists('mb_strlen') && ((int) ini_get('mbstring.func_overload') & 2)) { |
|
108 | 108 | $mbIntEnc = mb_internal_encoding(); |
109 | 109 | mb_internal_encoding('8bit'); |
110 | 110 | } |
@@ -126,7 +126,7 @@ discard block |
||
126 | 126 | && ($this->b === $this->lastByteOut)) { |
127 | 127 | // Don't delete this space. If we do, the addition/subtraction |
128 | 128 | // could be parsed as a post-increment |
129 | - } elseif (! $this->isAlphaNum($this->b)) { |
|
129 | + } elseif (!$this->isAlphaNum($this->b)) { |
|
130 | 130 | $command = self::ACTION_DELETE_A; |
131 | 131 | } |
132 | 132 | } elseif ($this->a === "\n") { |
@@ -137,10 +137,10 @@ discard block |
||
137 | 137 | // otherwise mb_strpos will give WARNING |
138 | 138 | } elseif ($this->b === null |
139 | 139 | || (false === strpos('{[(+-!~', $this->b) |
140 | - && ! $this->isAlphaNum($this->b))) { |
|
140 | + && !$this->isAlphaNum($this->b))) { |
|
141 | 141 | $command = self::ACTION_DELETE_A; |
142 | 142 | } |
143 | - } elseif (! $this->isAlphaNum($this->a)) { |
|
143 | + } elseif (!$this->isAlphaNum($this->a)) { |
|
144 | 144 | if ($this->b === ' ' |
145 | 145 | || ($this->b === "\n" |
146 | 146 | && (false === strpos('}])+-"\'', $this->a)))) { |
@@ -197,7 +197,7 @@ discard block |
||
197 | 197 | if ($this->a === "'" || $this->a === '"' || $this->a === '`') { // string/template literal |
198 | 198 | $delimiter = $this->a; |
199 | 199 | $str = $this->a; // in case needed for exception |
200 | - for(;;) { |
|
200 | + for (;;) { |
|
201 | 201 | $this->output .= $this->a; |
202 | 202 | $this->lastByteOut = $this->a; |
203 | 203 | $this->a = $this->get(); |
@@ -225,13 +225,13 @@ discard block |
||
225 | 225 | case self::ACTION_DELETE_A_B: // 3 |
226 | 226 | $this->b = $this->next(); |
227 | 227 | if ($this->b === '/' && $this->isRegexpLiteral()) { |
228 | - $this->output .= $this->a . $this->b; |
|
228 | + $this->output .= $this->a.$this->b; |
|
229 | 229 | $pattern = '/'; // keep entire pattern in case we need to report it in the exception |
230 | - for(;;) { |
|
230 | + for (;;) { |
|
231 | 231 | $this->a = $this->get(); |
232 | 232 | $pattern .= $this->a; |
233 | 233 | if ($this->a === '[') { |
234 | - for(;;) { |
|
234 | + for (;;) { |
|
235 | 235 | $this->output .= $this->a; |
236 | 236 | $this->a = $this->get(); |
237 | 237 | $pattern .= $this->a; |
@@ -246,7 +246,7 @@ discard block |
||
246 | 246 | if ($this->isEOF($this->a)) { |
247 | 247 | throw new JSMin_UnterminatedRegExpException( |
248 | 248 | "JSMin: Unterminated set in RegExp at byte " |
249 | - . $this->inputIndex .": {$pattern}"); |
|
249 | + . $this->inputIndex.": {$pattern}"); |
|
250 | 250 | } |
251 | 251 | } |
252 | 252 | } |
@@ -291,7 +291,7 @@ discard block |
||
291 | 291 | |
292 | 292 | // if the "/" follows a keyword, it must be a regexp, otherwise it's best to assume division |
293 | 293 | |
294 | - $subject = $this->output . trim($this->a); |
|
294 | + $subject = $this->output.trim($this->a); |
|
295 | 295 | if (!preg_match('/(?:case|else|in|return|typeof)$/', $subject, $m)) { |
296 | 296 | // not a keyword |
297 | 297 | return false; |
@@ -402,7 +402,7 @@ discard block |
||
402 | 402 | { |
403 | 403 | $this->get(); |
404 | 404 | $comment = ''; |
405 | - for(;;) { |
|
405 | + for (;;) { |
|
406 | 406 | $get = $this->get(); |
407 | 407 | if ($get === '*') { |
408 | 408 | if ($this->peek() === '/') { // end of comment reached |
@@ -413,7 +413,7 @@ discard block |
||
413 | 413 | // don't prepend a newline if two comments right after one another |
414 | 414 | $this->keptComment = "\n"; |
415 | 415 | } |
416 | - $this->keptComment .= "/*!" . substr($comment, 1) . "*/\n"; |
|
416 | + $this->keptComment .= "/*!".substr($comment, 1)."*/\n"; |
|
417 | 417 | } else if (preg_match('/^@(?:cc_on|if|elif|else|end)\\b/', $comment)) { |
418 | 418 | // IE conditional |
419 | 419 | $this->keptComment .= "/*{$comment}*/"; |
@@ -46,62 +46,62 @@ discard block |
||
46 | 46 | */ |
47 | 47 | |
48 | 48 | class JSMin { |
49 | - const ORD_LF = 10; |
|
50 | - const ORD_SPACE = 32; |
|
49 | + const ORD_LF = 10; |
|
50 | + const ORD_SPACE = 32; |
|
51 | 51 | |
52 | - protected $a = ''; |
|
53 | - protected $b = ''; |
|
54 | - protected $input = ''; |
|
55 | - protected $inputIndex = 0; |
|
56 | - protected $inputLength = 0; |
|
57 | - protected $lookAhead = null; |
|
58 | - protected $output = ''; |
|
52 | + protected $a = ''; |
|
53 | + protected $b = ''; |
|
54 | + protected $input = ''; |
|
55 | + protected $inputIndex = 0; |
|
56 | + protected $inputLength = 0; |
|
57 | + protected $lookAhead = null; |
|
58 | + protected $output = ''; |
|
59 | 59 | |
60 | - // -- Public Static Methods -------------------------------------------------- |
|
60 | + // -- Public Static Methods -------------------------------------------------- |
|
61 | 61 | |
62 | - public static function minify($js) { |
|
62 | + public static function minify($js) { |
|
63 | 63 | $jsmin = new JSMin($js); |
64 | 64 | return $jsmin->min(); |
65 | - } |
|
65 | + } |
|
66 | 66 | |
67 | - // -- Public Instance Methods ------------------------------------------------ |
|
67 | + // -- Public Instance Methods ------------------------------------------------ |
|
68 | 68 | |
69 | - public function __construct($input) { |
|
69 | + public function __construct($input) { |
|
70 | 70 | $this->input = str_replace("\r\n", "\n", $input); |
71 | 71 | $this->inputLength = strlen($this->input); |
72 | - } |
|
72 | + } |
|
73 | 73 | |
74 | - // -- Protected Instance Methods --------------------------------------------- |
|
74 | + // -- Protected Instance Methods --------------------------------------------- |
|
75 | 75 | |
76 | - protected function action($d) { |
|
76 | + protected function action($d) { |
|
77 | 77 | switch($d) { |
78 | - case 1: |
|
78 | + case 1: |
|
79 | 79 | $this->output .= $this->a; |
80 | 80 | |
81 | - case 2: |
|
81 | + case 2: |
|
82 | 82 | $this->a = $this->b; |
83 | 83 | |
84 | 84 | if ($this->a === "'" || $this->a === '"') { |
85 | - for (;;) { |
|
85 | + for (;;) { |
|
86 | 86 | $this->output .= $this->a; |
87 | 87 | $this->a = $this->get(); |
88 | 88 | |
89 | 89 | if ($this->a === $this->b) { |
90 | - break; |
|
90 | + break; |
|
91 | 91 | } |
92 | 92 | |
93 | 93 | if (ord($this->a) <= self::ORD_LF) { |
94 | - throw new JSMinException('Unterminated string literal.'); |
|
94 | + throw new JSMinException('Unterminated string literal.'); |
|
95 | 95 | } |
96 | 96 | |
97 | 97 | if ($this->a === '\\') { |
98 | - $this->output .= $this->a; |
|
99 | - $this->a = $this->get(); |
|
98 | + $this->output .= $this->a; |
|
99 | + $this->a = $this->get(); |
|
100 | + } |
|
100 | 101 | } |
101 | - } |
|
102 | 102 | } |
103 | 103 | |
104 | - case 3: |
|
104 | + case 3: |
|
105 | 105 | $this->b = $this->next(); |
106 | 106 | |
107 | 107 | if ($this->b === '/' && ( |
@@ -109,70 +109,70 @@ discard block |
||
109 | 109 | $this->a === ':' || $this->a === '[' || $this->a === '!' || |
110 | 110 | $this->a === '&' || $this->a === '|' || $this->a === '?')) { |
111 | 111 | |
112 | - $this->output .= $this->a . $this->b; |
|
112 | + $this->output .= $this->a . $this->b; |
|
113 | 113 | |
114 | - for (;;) { |
|
114 | + for (;;) { |
|
115 | 115 | $this->a = $this->get(); |
116 | 116 | |
117 | 117 | if ($this->a === '/') { |
118 | - break; |
|
118 | + break; |
|
119 | 119 | } elseif ($this->a === '\\') { |
120 | - $this->output .= $this->a; |
|
121 | - $this->a = $this->get(); |
|
120 | + $this->output .= $this->a; |
|
121 | + $this->a = $this->get(); |
|
122 | 122 | } elseif (ord($this->a) <= self::ORD_LF) { |
123 | - throw new JSMinException('Unterminated regular expression '. |
|
124 | - 'literal.'); |
|
123 | + throw new JSMinException('Unterminated regular expression '. |
|
124 | + 'literal.'); |
|
125 | 125 | } |
126 | 126 | |
127 | 127 | $this->output .= $this->a; |
128 | - } |
|
128 | + } |
|
129 | 129 | |
130 | - $this->b = $this->next(); |
|
130 | + $this->b = $this->next(); |
|
131 | 131 | } |
132 | 132 | } |
133 | - } |
|
133 | + } |
|
134 | 134 | |
135 | - protected function get() { |
|
135 | + protected function get() { |
|
136 | 136 | $c = $this->lookAhead; |
137 | 137 | $this->lookAhead = null; |
138 | 138 | |
139 | 139 | if ($c === null) { |
140 | - if ($this->inputIndex < $this->inputLength) { |
|
140 | + if ($this->inputIndex < $this->inputLength) { |
|
141 | 141 | $c = $this->input[$this->inputIndex]; |
142 | 142 | $this->inputIndex += 1; |
143 | - } else { |
|
143 | + } else { |
|
144 | 144 | $c = null; |
145 | - } |
|
145 | + } |
|
146 | 146 | } |
147 | 147 | |
148 | 148 | if ($c === "\r") { |
149 | - return "\n"; |
|
149 | + return "\n"; |
|
150 | 150 | } |
151 | 151 | |
152 | 152 | if ($c === null || $c === "\n" || ord($c) >= self::ORD_SPACE) { |
153 | - return $c; |
|
153 | + return $c; |
|
154 | 154 | } |
155 | 155 | |
156 | 156 | return ' '; |
157 | - } |
|
157 | + } |
|
158 | 158 | |
159 | - protected function isAlphaNum($c) { |
|
159 | + protected function isAlphaNum($c) { |
|
160 | 160 | return ord($c) > 126 || $c === '\\' || preg_match('/^[\w\$]$/', $c) === 1; |
161 | - } |
|
161 | + } |
|
162 | 162 | |
163 | - protected function min() { |
|
163 | + protected function min() { |
|
164 | 164 | $this->a = "\n"; |
165 | 165 | $this->action(3); |
166 | 166 | |
167 | 167 | while ($this->a !== null) { |
168 | - switch ($this->a) { |
|
168 | + switch ($this->a) { |
|
169 | 169 | case ' ': |
170 | 170 | if ($this->isAlphaNum($this->b)) { |
171 | 171 | $this->action(1); |
172 | - } else { |
|
172 | + } else { |
|
173 | 173 | $this->action(2); |
174 | - } |
|
175 | - break; |
|
174 | + } |
|
175 | + break; |
|
176 | 176 | |
177 | 177 | case "\n": |
178 | 178 | switch ($this->b) { |
@@ -182,21 +182,21 @@ discard block |
||
182 | 182 | case '+': |
183 | 183 | case '-': |
184 | 184 | $this->action(1); |
185 | - break; |
|
185 | + break; |
|
186 | 186 | |
187 | 187 | case ' ': |
188 | 188 | $this->action(3); |
189 | - break; |
|
189 | + break; |
|
190 | 190 | |
191 | 191 | default: |
192 | 192 | if ($this->isAlphaNum($this->b)) { |
193 | 193 | $this->action(1); |
194 | - } |
|
195 | - else { |
|
194 | + } |
|
195 | + else { |
|
196 | 196 | $this->action(2); |
197 | - } |
|
198 | - } |
|
199 | - break; |
|
197 | + } |
|
198 | + } |
|
199 | + break; |
|
200 | 200 | |
201 | 201 | default: |
202 | 202 | switch ($this->b) { |
@@ -204,10 +204,10 @@ discard block |
||
204 | 204 | if ($this->isAlphaNum($this->a)) { |
205 | 205 | $this->action(1); |
206 | 206 | break; |
207 | - } |
|
207 | + } |
|
208 | 208 | |
209 | - $this->action(3); |
|
210 | - break; |
|
209 | + $this->action(3); |
|
210 | + break; |
|
211 | 211 | |
212 | 212 | case "\n": |
213 | 213 | switch ($this->a) { |
@@ -219,71 +219,71 @@ discard block |
||
219 | 219 | case '"': |
220 | 220 | case "'": |
221 | 221 | $this->action(1); |
222 | - break; |
|
222 | + break; |
|
223 | 223 | |
224 | 224 | default: |
225 | 225 | if ($this->isAlphaNum($this->a)) { |
226 | 226 | $this->action(1); |
227 | - } |
|
228 | - else { |
|
227 | + } |
|
228 | + else { |
|
229 | 229 | $this->action(3); |
230 | - } |
|
231 | - } |
|
232 | - break; |
|
230 | + } |
|
231 | + } |
|
232 | + break; |
|
233 | 233 | |
234 | 234 | default: |
235 | 235 | $this->action(1); |
236 | - break; |
|
237 | - } |
|
238 | - } |
|
236 | + break; |
|
237 | + } |
|
238 | + } |
|
239 | 239 | } |
240 | 240 | |
241 | 241 | return $this->output; |
242 | - } |
|
242 | + } |
|
243 | 243 | |
244 | - protected function next() { |
|
244 | + protected function next() { |
|
245 | 245 | $c = $this->get(); |
246 | 246 | |
247 | 247 | if ($c === '/') { |
248 | - switch($this->peek()) { |
|
248 | + switch($this->peek()) { |
|
249 | 249 | case '/': |
250 | 250 | for (;;) { |
251 | 251 | $c = $this->get(); |
252 | 252 | |
253 | 253 | if (ord($c) <= self::ORD_LF) { |
254 | - return $c; |
|
254 | + return $c; |
|
255 | + } |
|
255 | 256 | } |
256 | - } |
|
257 | 257 | |
258 | 258 | case '*': |
259 | 259 | $this->get(); |
260 | 260 | |
261 | - for (;;) { |
|
261 | + for (;;) { |
|
262 | 262 | switch($this->get()) { |
263 | - case '*': |
|
263 | + case '*': |
|
264 | 264 | if ($this->peek() === '/') { |
265 | - $this->get(); |
|
266 | - return ' '; |
|
265 | + $this->get(); |
|
266 | + return ' '; |
|
267 | 267 | } |
268 | 268 | break; |
269 | 269 | |
270 | - case null: |
|
270 | + case null: |
|
271 | 271 | throw new JSMinException('Unterminated comment.'); |
272 | 272 | } |
273 | - } |
|
273 | + } |
|
274 | 274 | |
275 | 275 | default: |
276 | 276 | return $c; |
277 | - } |
|
277 | + } |
|
278 | 278 | } |
279 | 279 | |
280 | 280 | return $c; |
281 | - } |
|
281 | + } |
|
282 | 282 | |
283 | - protected function peek() { |
|
283 | + protected function peek() { |
|
284 | 284 | $this->lookAhead = $this->get(); |
285 | 285 | return $this->lookAhead; |
286 | - } |
|
286 | + } |
|
287 | 287 | } |
288 | 288 | |
289 | 289 | // -- Exceptions --------------------------------------------------------------- |
@@ -74,7 +74,7 @@ discard block |
||
74 | 74 | // -- Protected Instance Methods --------------------------------------------- |
75 | 75 | |
76 | 76 | protected function action($d) { |
77 | - switch($d) { |
|
77 | + switch ($d) { |
|
78 | 78 | case 1: |
79 | 79 | $this->output .= $this->a; |
80 | 80 | |
@@ -109,7 +109,7 @@ discard block |
||
109 | 109 | $this->a === ':' || $this->a === '[' || $this->a === '!' || |
110 | 110 | $this->a === '&' || $this->a === '|' || $this->a === '?')) { |
111 | 111 | |
112 | - $this->output .= $this->a . $this->b; |
|
112 | + $this->output .= $this->a.$this->b; |
|
113 | 113 | |
114 | 114 | for (;;) { |
115 | 115 | $this->a = $this->get(); |
@@ -245,7 +245,7 @@ discard block |
||
245 | 245 | $c = $this->get(); |
246 | 246 | |
247 | 247 | if ($c === '/') { |
248 | - switch($this->peek()) { |
|
248 | + switch ($this->peek()) { |
|
249 | 249 | case '/': |
250 | 250 | for (;;) { |
251 | 251 | $c = $this->get(); |
@@ -259,7 +259,7 @@ discard block |
||
259 | 259 | $this->get(); |
260 | 260 | |
261 | 261 | for (;;) { |
262 | - switch($this->get()) { |
|
262 | + switch ($this->get()) { |
|
263 | 263 | case '*': |
264 | 264 | if ($this->peek() === '/') { |
265 | 265 | $this->get(); |
@@ -191,8 +191,7 @@ discard block |
||
191 | 191 | default: |
192 | 192 | if ($this->isAlphaNum($this->b)) { |
193 | 193 | $this->action(1); |
194 | - } |
|
195 | - else { |
|
194 | + } else { |
|
196 | 195 | $this->action(2); |
197 | 196 | } |
198 | 197 | } |
@@ -224,8 +223,7 @@ discard block |
||
224 | 223 | default: |
225 | 224 | if ($this->isAlphaNum($this->a)) { |
226 | 225 | $this->action(1); |
227 | - } |
|
228 | - else { |
|
226 | + } else { |
|
229 | 227 | $this->action(3); |
230 | 228 | } |
231 | 229 | } |