PluginProbe
Autoptimize / 1.5
Autoptimize v1.5
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.5, at autoptimize.php

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