PluginProbe
Autoptimize / 2.1.2
Autoptimize v2.1.2
2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 All 107 releases
← All changes | autoptimize.php +21 -60 2.3.32.1.2 View file →
@@ -1,12 +1,12 @@
1 1 <?php
2 2 /*
3 3 Plugin Name: Autoptimize
4 -Plugin URI: https://autoptimize.com/
4 +Plugin URI: http://blog.futtta.be/autoptimize
5 5 Description: Optimizes your website, concatenating the CSS and JavaScript code, and compressing it.
6 -Version: 2.3.3
6 +Version: 2.1.2
7 7 Author: Frank Goossens (futtta)
8 -Author URI: https://autoptimize.com/
8 +Author URI: http://blog.futtta.be/
9 9 Domain Path: localization/
10 10 Text Domain: autoptimize
11 11 Released under the GNU General Public License (GPL)
12 12 http://www.gnu.org/licenses/gpl.txt
@@ -38,24 +38,17 @@
38 38 if (!defined('AUTOPTIMIZE_CACHE_CHILD_DIR')) { define('AUTOPTIMIZE_CACHE_CHILD_DIR','/cache/autoptimize/'); }
39 39 if (!defined('AUTOPTIMIZE_CACHEFILE_PREFIX')) { define('AUTOPTIMIZE_CACHEFILE_PREFIX', 'autoptimize_'); }
40 40
41 41 // Plugin dir constants (plugin url's defined later to accomodate domain mapped sites)
42 -if (!defined('AUTOPTIMIZE_CACHE_DIR')) {
43 - if (is_multisite() && apply_filters( 'autoptimize_separate_blog_caches' , true )) {
44 - $blog_id = get_current_blog_id();
45 - define('AUTOPTIMIZE_CACHE_DIR', WP_CONTENT_DIR.AUTOPTIMIZE_CACHE_CHILD_DIR.$blog_id.'/' );
46 - } else {
47 - define('AUTOPTIMIZE_CACHE_DIR', WP_CONTENT_DIR.AUTOPTIMIZE_CACHE_CHILD_DIR );
48 - }
42 +if (is_multisite() && apply_filters( 'autoptimize_separate_blog_caches' , true )) {
43 + $blog_id = get_current_blog_id();
44 + define('AUTOPTIMIZE_CACHE_DIR', WP_CONTENT_DIR.AUTOPTIMIZE_CACHE_CHILD_DIR.$blog_id.'/' );
45 +} else {
46 + define('AUTOPTIMIZE_CACHE_DIR', WP_CONTENT_DIR.AUTOPTIMIZE_CACHE_CHILD_DIR);
49 47 }
50 48 define('AUTOPTIMIZE_CACHE_DELAY',true);
51 -define('WP_ROOT_DIR',substr(WP_CONTENT_DIR, 0, strlen(WP_CONTENT_DIR)-strlen(AUTOPTIMIZE_WP_CONTENT_NAME)));
49 +define('WP_ROOT_DIR',str_replace(AUTOPTIMIZE_WP_CONTENT_NAME,'',WP_CONTENT_DIR));
52 50
53 -// WP CLI
54 -if ( defined( 'WP_CLI' ) && WP_CLI ) {
55 - require_once AUTOPTIMIZE_PLUGIN_DIR . 'classes/autoptimizeCLI.php';
56 -}
57 -
58 51 // Initialize the cache at least once
59 52 $conf = autoptimizeConfig::instance();
60 53
61 54 /* Check if we're updating, in which case we might need to do stuff and flush the cache
@@ -60,9 +53,9 @@
60 53
61 54 /* Check if we're updating, in which case we might need to do stuff and flush the cache
62 55 to avoid old versions of aggregated files lingering around */
63 56
64 -$autoptimize_version="2.3.0";
57 +$autoptimize_version="2.1.0";
65 58 $autoptimize_db_version=get_option('autoptimize_version','none');
66 59
67 60 if ($autoptimize_db_version !== $autoptimize_version) {
68 61 if ($autoptimize_db_version==="none") {
@@ -84,12 +77,12 @@
84 77
85 78 function autoptimize_uninstall(){
86 79 autoptimizeCache::clearall();
87 80
88 - $delete_options=array("autoptimize_cache_clean", "autoptimize_cache_nogzip", "autoptimize_css", "autoptimize_css_datauris", "autoptimize_css_justhead", "autoptimize_css_defer", "autoptimize_css_defer_inline", "autoptimize_css_inline", "autoptimize_css_exclude", "autoptimize_html", "autoptimize_html_keepcomments", "autoptimize_js", "autoptimize_js_exclude", "autoptimize_js_forcehead", "autoptimize_js_justhead", "autoptimize_js_trycatch", "autoptimize_version", "autoptimize_show_adv", "autoptimize_cdn_url", "autoptimize_cachesize_notice","autoptimize_css_include_inline","autoptimize_js_include_inline","autoptimize_optimize_logged","autoptimize_optimize_checkout","autoptimize_extra_settings");
81 + $delete_options=array("autoptimize_cache_clean", "autoptimize_cache_nogzip", "autoptimize_css", "autoptimize_css_datauris", "autoptimize_css_justhead", "autoptimize_css_defer", "autoptimize_css_defer_inline", "autoptimize_css_inline", "autoptimize_css_exclude", "autoptimize_html", "autoptimize_html_keepcomments", "autoptimize_js", "autoptimize_js_exclude", "autoptimize_js_forcehead", "autoptimize_js_justhead", "autoptimize_js_trycatch", "autoptimize_version", "autoptimize_show_adv", "autoptimize_cdn_url", "autoptimize_cachesize_notice","autoptimize_css_include_inline","autoptimize_js_include_inline","autoptimize_css_nogooglefont");
89 82
90 83 if ( !is_multisite() ) {
91 - foreach ($delete_options as $del_opt) { delete_option( $del_opt ); }
84 + foreach ($delete_options as $del_opt) { delete_option( $del_opt ); }
92 85 } else {
93 86 global $wpdb;
94 87 $blog_ids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
95 88 $original_blog_id = get_current_blog_id();
@@ -94,9 +87,9 @@
94 87 $blog_ids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
95 88 $original_blog_id = get_current_blog_id();
96 89 foreach ( $blog_ids as $blog_id ) {
97 90 switch_to_blog( $blog_id );
98 - foreach ($delete_options as $del_opt) { delete_option( $del_opt ); }
91 + foreach ($delete_options as $del_opt) { delete_option( $del_opt ); }
99 92 }
100 93 switch_to_blog( $original_blog_id );
101 94 }
102 95
@@ -118,9 +111,9 @@
118 111 }
119 112
120 113 function autoptimize_cache_unavailable_notice() {
121 114 echo '<div class="error"><p>';
122 - printf( __( 'Autoptimize cannot write to the cache directory (%s), please fix to enable CSS/ JS optimization!', 'autoptimize' ), AUTOPTIMIZE_CACHE_DIR );
115 + _e('Autoptimize cannot write to the cache directory (default: /wp-content/cache/autoptimize), please fix to enable CSS/ JS optimization!', 'autoptimize' );
123 116 echo '</p></div>';
124 117 }
125 118
126 119 // Set up the buffering
@@ -127,10 +120,10 @@
127 120 function autoptimize_start_buffering() {
128 121 $ao_noptimize = false;
129 122
130 123 // noptimize in qs to get non-optimized page for debugging
131 - if (array_key_exists("ao_noptimize",$_GET) || array_key_exists("ao_noptirocket",$_GET)) {
132 - if ( ( ($_GET["ao_noptimize"]==="1") || ($_GET["ao_noptirocket"]==="1") ) && (apply_filters('autoptimize_filter_honor_qs_noptimize',true)) ) {
124 + if (array_key_exists("ao_noptimize",$_GET)) {
125 + if ( ($_GET["ao_noptimize"]==="1") && (apply_filters('autoptimize_filter_honor_qs_noptimize',true)) ) {
133 126 $ao_noptimize = true;
134 127 }
135 128 }
136 129
@@ -138,33 +131,12 @@
138 131 if (defined('DONOTMINIFY') && (constant('DONOTMINIFY')===true || constant('DONOTMINIFY')==="true")) {
139 132 $ao_noptimize = true;
140 133 }
141 134
142 - // if setting says not to optimize logged in user and user is logged in
143 - if ( get_option('autoptimize_optimize_logged','on') !== 'on' && is_user_logged_in() && current_user_can('edit_posts') ) {
144 - $ao_noptimize = true;
145 - }
146 -
147 - // if setting says not to optimize cart/ checkout
148 - if ( get_option('autoptimize_optimize_checkout','on') !== 'on' ) {
149 - // checking for woocommerce, easy digital downloads and wp ecommerce
150 - foreach ( array("is_checkout","is_cart","edd_is_checkout","wpsc_is_cart","wpsc_is_checkout") as $shopCond ) {
151 - if ( function_exists($shopCond) && $shopCond() ) {
152 - $ao_noptimize = true;
153 - break;
154 - }
155 - }
156 - }
157 -
158 135 // filter you can use to block autoptimization on your own terms
159 136 $ao_noptimize = (bool) apply_filters( 'autoptimize_filter_noptimize', $ao_noptimize );
160 137
161 138 if (!is_feed() && !$ao_noptimize && !is_admin() && ( !function_exists('is_customize_preview') || !is_customize_preview() ) ) {
162 - // load speedupper conditionally (true by default?)
163 - if ( apply_filters('autoptimize_filter_speedupper', true) ) {
164 - include(AUTOPTIMIZE_PLUGIN_DIR.'classlesses/autoptimizeSpeedupper.php');
165 - }
166 -
167 139 // Config element
168 140 $conf = autoptimizeConfig::instance();
169 141
170 142 // Load our base class
@@ -219,8 +191,9 @@
219 191 while (ob_get_level() > 0) {
220 192 ob_end_clean();
221 193 }
222 194 }
195 +
223 196 // Now, start the real thing!
224 197 ob_start('autoptimize_end_buffering');
225 198 }
226 199 }
@@ -227,9 +200,9 @@
227 200
228 201 // Action on end, this is where the magic happens
229 202 function autoptimize_end_buffering($content) {
230 203 if ( ((stripos($content,"<html") === false) && (stripos($content,"<!DOCTYPE html") === false)) || preg_match('/<html[^>]*(?:amp|⚡)/',$content) === 1 || stripos($content,"<xsl:stylesheet") !== false ) { return $content; }
231 -
204 +
232 205 // load URL constants as late as possible to allow domain mapper to kick in
233 206 if (function_exists("domain_mapping_siteurl")) {
234 207 define('AUTOPTIMIZE_WP_SITE_URL',domain_mapping_siteurl(get_current_blog_id()));
235 208 define('AUTOPTIMIZE_WP_CONTENT_URL',str_replace(get_original_url(AUTOPTIMIZE_WP_SITE_URL),AUTOPTIMIZE_WP_SITE_URL,content_url()));
@@ -244,9 +217,9 @@
244 217 } else {
245 218 define('AUTOPTIMIZE_CACHE_URL',AUTOPTIMIZE_WP_CONTENT_URL.AUTOPTIMIZE_CACHE_CHILD_DIR);
246 219 }
247 220 define('AUTOPTIMIZE_WP_ROOT_URL',str_replace(AUTOPTIMIZE_WP_CONTENT_NAME,'',AUTOPTIMIZE_WP_CONTENT_URL));
248 - define('AUTOPTIMIZE_HASH',wp_hash(AUTOPTIMIZE_CACHE_DIR));
221 + define('AUTOPTIMIZE_HASH',wp_hash(AUTOPTIMIZE_CACHE_DIR . DB_HOST . DB_USER . DB_PASSWORD));
249 222
250 223 // Config element
251 224 $conf = autoptimizeConfig::instance();
252 225
@@ -308,10 +281,9 @@
308 281 // Hook to wordpress
309 282 if (defined('AUTOPTIMIZE_INIT_EARLIER')) {
310 283 add_action('init','autoptimize_start_buffering',-1);
311 284 } else {
312 - if (!defined('AUTOPTIMIZE_HOOK_INTO')) { define('AUTOPTIMIZE_HOOK_INTO', 'template_redirect'); }
313 - add_action(constant("AUTOPTIMIZE_HOOK_INTO"),'autoptimize_start_buffering',2);
285 + add_action('template_redirect','autoptimize_start_buffering',2);
314 286 }
315 287 }
316 288 } else {
317 289 add_action('admin_notices', 'autoptimize_cache_unavailable_notice');
@@ -316,20 +288,9 @@
316 288 } else {
317 289 add_action('admin_notices', 'autoptimize_cache_unavailable_notice');
318 290 }
319 291
320 -function autoptimize_activate() {
321 - register_uninstall_hook( __FILE__, 'autoptimize_uninstall' );
322 -}
323 -register_activation_hook( __FILE__, 'autoptimize_activate' );
324 -
292 +register_uninstall_hook(__FILE__, "autoptimize_uninstall");
325 293 include_once('classlesses/autoptimizeCacheChecker.php');
326 -
327 -add_action('plugins_loaded','includeAutoptimizeExtra');
328 -function includeAutoptimizeExtra() {
329 - if ( apply_filters('autoptimize_filter_extra_activate',true) ) {
330 - include_once('classlesses/autoptimizeExtra.php');
331 - }
332 -}
333 294
334 295 // Do not pollute other plugins
335 296 unset($conf);