PluginProbe
Autoptimize / 1.6.3
Autoptimize v1.6.3
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.3, at autoptimize.php

167 lines 5.0 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/category/autoptimize/
5 Description: Optimizes your website, concatenating the CSS and JavaScript code, and compressing it.
6 Version: 1.6.3
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 // Load config and cache class
14 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeConfig.php');
15 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeCache.php');
16
17 // Plugin constants
18 define('AUTOPTIMIZE_CACHE_DIR',WP_CONTENT_DIR.'/cache/autoptimize/');
19 define('AUTOPTIMIZE_CACHE_URL',content_url().'/cache/autoptimize/');
20 define('AUTOPTIMIZE_CACHE_DELAY',true);
21 define('WP_ROOT_URL',str_replace('/wp-content','',content_url()));
22 define('WP_ROOT_DIR',str_replace('/wp-content','',WP_CONTENT_DIR));
23
24 // Initialize the cache at least once
25 $conf = autoptimizeConfig::instance();
26
27 /* Check if we're updating, in which case we need to flush the cache
28 to avoid old versions of aggregated files lingering around */
29 // update_option('autoptimize_version','none');
30
31 $autoptimize_version="1.6.3";
32 $autoptimize_db_version=get_option('autoptimize_version','none');
33
34 if ($autoptimize_db_version !== $autoptimize_version) {
35 autoptimizeCache::clearall();
36 update_option('autoptimize_version',$autoptimize_version);
37 $autoptimize_db_version=$autoptimize_version;
38 }
39
40 // Do we gzip when caching?
41 define('AUTOPTIMIZE_CACHE_NOGZIP',(bool) $conf->get('autoptimize_cache_nogzip'));
42
43 // Load translations
44 $plugin_dir = basename(dirname(__FILE__));
45 load_plugin_textdomain('autoptimize','wp-content/plugins/'.$plugin_dir.'/localization',$plugin_dir.'/localization');
46
47 // Set up the buffering
48 function autoptimize_start_buffering()
49 {
50 // if (!is_user_logged_in()) {
51
52 // Config element
53 $conf = autoptimizeConfig::instance();
54
55 // Load our base class
56 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeBase.php');
57
58 // Load extra classes and set some vars
59 if($conf->get('autoptimize_html'))
60 {
61 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeHTML.php');
62 @include(WP_PLUGIN_DIR.'/autoptimize/classes/minify-html.php');
63 }
64
65 if($conf->get('autoptimize_js'))
66 {
67 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeScripts.php');
68 @include(WP_PLUGIN_DIR.'/autoptimize/classes/jsmin-1.1.1.php');
69 define('CONCATENATE_SCRIPTS',false);
70 define('COMPRESS_SCRIPTS',false);
71 }
72
73 if($conf->get('autoptimize_css'))
74 {
75 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeStyles.php');
76 @include(WP_PLUGIN_DIR.'/autoptimize/classes/minify-css-compressor.php');
77 define('COMPRESS_CSS',false);
78 }
79
80 if($conf->get('autoptimize_js_yui') || $conf->get('autoptimize_css_yui'))
81 {
82 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeYUI.php');
83 }
84
85 if($conf->get('autoptimize_cdn_js') || $conf->get('autoptimize_cdn_css'))
86 {
87 include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeCDN.php');
88 }
89
90 // Now, start the real thing!
91 ob_start('autoptimize_end_buffering');
92
93 // }
94 }
95
96 //Action on end -
97 function autoptimize_end_buffering($content)
98 {
99 // Config element
100 $conf = autoptimizeConfig::instance();
101
102 // Choose the classes
103 $classes = array();
104 if($conf->get('autoptimize_js'))
105 $classes[] = 'autoptimizeScripts';
106 if($conf->get('autoptimize_css'))
107 $classes[] = 'autoptimizeStyles';
108 if($conf->get('autoptimize_cdn_js') || $conf->get('autoptimize_cdn_css'))
109 $classes[] = 'autoptimizeCDN';
110 if($conf->get('autoptimize_html'))
111 $classes[] = 'autoptimizeHTML';
112
113 // Set some options
114 $classoptions = array(
115 'autoptimizeScripts' => array(
116 'justhead' => $conf->get('autoptimize_js_justhead'),
117 'trycatch' => $conf->get('autoptimize_js_trycatch'),
118 'yui' => $conf->get('autoptimize_js_yui'),
119 'exclude' => $conf->get('autoptimize_js_exclude')
120 ),
121 'autoptimizeStyles' => array(
122 'justhead' => $conf->get('autoptimize_css_justhead'),
123 'datauris' => $conf->get('autoptimize_css_datauris'),
124 'yui' => $conf->get('autoptimize_css_yui'),
125 ),
126 'autoptimizeCDN' => array(
127 'js' => $conf->get('autoptimize_cdn_js'),
128 'jsurl' => $conf->get('autoptimize_cdn_js_url'),
129 'css' => $conf->get('autoptimize_cdn_css'),
130 'cssurl' => $conf->get('autoptimize_cdn_css_url'),
131 'img' => $conf->get('autoptimize_cdn_img'),
132 'imgurl' => $conf->get('autoptimize_cdn_img_url')
133 ),
134 'autoptimizeHTML' => array(
135 'keepcomments' => $conf->get('autoptimize_html_keepcomments')
136 )
137 );
138
139
140 // Run the classes
141 foreach($classes as $name)
142 {
143 $instance = new $name($content);
144 if($instance->read($classoptions[$name]))
145 {
146 $instance->minify();
147 $instance->cache();
148 $content = $instance->getcontent();
149 }
150 unset($instance);
151 }
152 return $content;
153 }
154
155 if(autoptimizeCache::cacheavail())
156 {
157 $conf = autoptimizeConfig::instance();
158 if( $conf->get('autoptimize_html') || $conf->get('autoptimize_js') || $conf->get('autoptimize_css') || $conf->get('autoptimize_cdn_js') || $conf->get('autoptimize_cdn_css'))
159 {
160 // Hook to wordpress
161 add_action('template_redirect','autoptimize_start_buffering',2);
162 }
163 }
164
165 // Do not pollute other plugins
166 unset($conf);
167