PluginProbe
Autoptimize / 1.6.6
Autoptimize v1.6.6
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
autoptimize / autoptimize.php

autoptimize.php in Autoptimize 1.6.6, at autoptimize.php

175 lines 5.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 Plugin Name: Autoptimize
4 Plugin URI: http://blog.futtta.be/autoptimize
5 Description: Optimizes your website, concatenating the CSS and JavaScript code, and compressing it.
6 Version: 1.6.6
7 Author: Frank Goossens (futtta)
8 Author URI: http://blog.futtta.be/
9 Released under the GNU General Public License (GPL)
10 http://www.gnu.org/licenses/gpl.txt
11 */
12
13 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
14 // Load config and cache class
15 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeConfig.php');
16 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeCache.php');
17
18 // Plugin constants
19 define('AUTOPTIMIZE_CACHE_DIR',WP_CONTENT_DIR.'/cache/autoptimize/');
20 define('AUTOPTIMIZE_CACHE_URL',content_url().'/cache/autoptimize/');
21 define('AUTOPTIMIZE_CACHE_DELAY',true);
22 define('WP_ROOT_URL',str_replace('/wp-content','',content_url()));
23 define('WP_ROOT_DIR',str_replace('/wp-content','',WP_CONTENT_DIR));
24
25 // Initialize the cache at least once
26 $conf = autoptimizeConfig::instance();
27
28 /* Check if we're updating, in which case we need to flush the cache
29 to avoid old versions of aggregated files lingering around */
30
31 $autoptimize_version="1.6.6";
32 $autoptimize_db_version=get_option('autoptimize_version','none');
33
34 if ($autoptimize_db_version !== $autoptimize_version) {
35 if ($autoptimize_db_version==="none") {
36 add_action('admin_notices', 'config_autoptimize_notice');
37 }
38 autoptimizeCache::clearall();
39 update_option('autoptimize_version',$autoptimize_version);
40 $autoptimize_db_version=$autoptimize_version;
41 }
42
43 // Do we gzip when caching?
44 define('AUTOPTIMIZE_CACHE_NOGZIP',(bool) $conf->get('autoptimize_cache_nogzip'));
45
46 // Load translations
47 $plugin_dir = basename(dirname(__FILE__));
48 load_plugin_textdomain('autoptimize','wp-content/plugins/'.$plugin_dir.'/localization',$plugin_dir.'/localization');
49
50 function config_autoptimize_notice() {
51 echo '<div class="updated"><p>';
52 _e('Thank you for installing and activating Autoptimize. Please configure it under "Settings" -> "Autoptimize" to start improving your site\'s performance.', 'autoptimize' );
53 echo '</p></div>';
54 }
55 // Set up the buffering
56 function autoptimize_start_buffering()
57 {
58 if (!is_feed()) {
59
60 // Config element
61 $conf = autoptimizeConfig::instance();
62
63 // Load our base class
64 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeBase.php');
65
66 // Load extra classes and set some vars
67 if($conf->get('autoptimize_html'))
68 {
69 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeHTML.php');
70 @include(WP_PLUGIN_DIR.'/autoptimize/classes/minify-html.php');
71 }
72
73 if($conf->get('autoptimize_js'))
74 {
75 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeScripts.php');
76 @include(WP_PLUGIN_DIR.'/autoptimize/classes/jsmin-1.1.1.php');
77 define('CONCATENATE_SCRIPTS',false);
78 define('COMPRESS_SCRIPTS',false);
79 }
80
81 if($conf->get('autoptimize_css'))
82 {
83 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeStyles.php');
84 @include(WP_PLUGIN_DIR.'/autoptimize/classes/minify-css-compressor.php');
85 define('COMPRESS_CSS',false);
86 }
87
88 if($conf->get('autoptimize_js_yui') || $conf->get('autoptimize_css_yui'))
89 {
90 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeYUI.php');
91 }
92
93 if($conf->get('autoptimize_cdn_js') || $conf->get('autoptimize_cdn_css'))
94 {
95 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeCDN.php');
96 }
97
98 // Now, start the real thing!
99 ob_start('autoptimize_end_buffering');
100 }
101 }
102
103 //Action on end -
104 function autoptimize_end_buffering($content)
105 {
106 // Config element
107 $conf = autoptimizeConfig::instance();
108
109 // Choose the classes
110 $classes = array();
111 if($conf->get('autoptimize_js'))
112 $classes[] = 'autoptimizeScripts';
113 if($conf->get('autoptimize_css'))
114 $classes[] = 'autoptimizeStyles';
115 if($conf->get('autoptimize_cdn_js') || $conf->get('autoptimize_cdn_css'))
116 $classes[] = 'autoptimizeCDN';
117 if($conf->get('autoptimize_html'))
118 $classes[] = 'autoptimizeHTML';
119
120 // Set some options
121 $classoptions = array(
122 'autoptimizeScripts' => array(
123 'justhead' => $conf->get('autoptimize_js_justhead'),
124 'forcehead' => $conf->get('autoptimize_js_forcehead'),
125 'trycatch' => $conf->get('autoptimize_js_trycatch'),
126 'yui' => $conf->get('autoptimize_js_yui'),
127 'exclude' => $conf->get('autoptimize_js_exclude')
128 ),
129 'autoptimizeStyles' => array(
130 'justhead' => $conf->get('autoptimize_css_justhead'),
131 'datauris' => $conf->get('autoptimize_css_datauris'),
132 'yui' => $conf->get('autoptimize_css_yui'),
133 ),
134 'autoptimizeCDN' => array(
135 'js' => $conf->get('autoptimize_cdn_js'),
136 'jsurl' => $conf->get('autoptimize_cdn_js_url'),
137 'css' => $conf->get('autoptimize_cdn_css'),
138 'cssurl' => $conf->get('autoptimize_cdn_css_url'),
139 'img' => $conf->get('autoptimize_cdn_img'),
140 'imgurl' => $conf->get('autoptimize_cdn_img_url')
141 ),
142 'autoptimizeHTML' => array(
143 'keepcomments' => $conf->get('autoptimize_html_keepcomments')
144 )
145 );
146
147
148 // Run the classes
149 foreach($classes as $name)
150 {
151 $instance = new $name($content);
152 if($instance->read($classoptions[$name]))
153 {
154 $instance->minify();
155 $instance->cache();
156 $content = $instance->getcontent();
157 }
158 unset($instance);
159 }
160 return $content;
161 }
162
163 if(autoptimizeCache::cacheavail())
164 {
165 $conf = autoptimizeConfig::instance();
166 if( $conf->get('autoptimize_html') || $conf->get('autoptimize_js') || $conf->get('autoptimize_css') || $conf->get('autoptimize_cdn_js') || $conf->get('autoptimize_cdn_css'))
167 {
168 // Hook to wordpress
169 add_action('template_redirect','autoptimize_start_buffering',2);
170 }
171 }
172
173 // Do not pollute other plugins
174 unset($conf);
175