get('autoptimize_cache_nogzip')); // Load translations $plugin_dir = basename(dirname(__FILE__)); load_plugin_textdomain('autoptimize','wp-content/plugins/'.$plugin_dir.'/localization',$plugin_dir.'/localization'); // Set up the buffering function autoptimize_start_buffering() { if (!is_feed()) { // Config element $conf = autoptimizeConfig::instance(); // Load our base class include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeBase.php'); // Load extra classes and set some vars if($conf->get('autoptimize_html')) { include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeHTML.php'); @include(WP_PLUGIN_DIR.'/autoptimize/classes/minify-html.php'); } if($conf->get('autoptimize_js')) { include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeScripts.php'); @include(WP_PLUGIN_DIR.'/autoptimize/classes/jsmin-1.1.1.php'); define('CONCATENATE_SCRIPTS',false); define('COMPRESS_SCRIPTS',false); } if($conf->get('autoptimize_css')) { include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeStyles.php'); @include(WP_PLUGIN_DIR.'/autoptimize/classes/minify-css-compressor.php'); define('COMPRESS_CSS',false); } if($conf->get('autoptimize_js_yui') || $conf->get('autoptimize_css_yui')) { include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeYUI.php'); } if($conf->get('autoptimize_cdn_js') || $conf->get('autoptimize_cdn_css')) { include(WP_PLUGIN_DIR.'/autoptimize/classes/autoptimizeCDN.php'); } // Now, start the real thing! ob_start('autoptimize_end_buffering'); } } //Action on end - function autoptimize_end_buffering($content) { // Config element $conf = autoptimizeConfig::instance(); // Choose the classes $classes = array(); if($conf->get('autoptimize_js')) $classes[] = 'autoptimizeScripts'; if($conf->get('autoptimize_css')) $classes[] = 'autoptimizeStyles'; if($conf->get('autoptimize_cdn_js') || $conf->get('autoptimize_cdn_css')) $classes[] = 'autoptimizeCDN'; if($conf->get('autoptimize_html')) $classes[] = 'autoptimizeHTML'; // Set some options $classoptions = array( 'autoptimizeScripts' => array( 'justhead' => $conf->get('autoptimize_js_justhead'), 'forcehead' => $conf->get('autoptimize_js_forcehead'), 'trycatch' => $conf->get('autoptimize_js_trycatch'), 'yui' => $conf->get('autoptimize_js_yui'), 'exclude' => $conf->get('autoptimize_js_exclude') ), 'autoptimizeStyles' => array( 'justhead' => $conf->get('autoptimize_css_justhead'), 'datauris' => $conf->get('autoptimize_css_datauris'), 'yui' => $conf->get('autoptimize_css_yui'), ), 'autoptimizeCDN' => array( 'js' => $conf->get('autoptimize_cdn_js'), 'jsurl' => $conf->get('autoptimize_cdn_js_url'), 'css' => $conf->get('autoptimize_cdn_css'), 'cssurl' => $conf->get('autoptimize_cdn_css_url'), 'img' => $conf->get('autoptimize_cdn_img'), 'imgurl' => $conf->get('autoptimize_cdn_img_url') ), 'autoptimizeHTML' => array( 'keepcomments' => $conf->get('autoptimize_html_keepcomments') ) ); // Run the classes foreach($classes as $name) { $instance = new $name($content); if($instance->read($classoptions[$name])) { $instance->minify(); $instance->cache(); $content = $instance->getcontent(); } unset($instance); } return $content; } if(autoptimizeCache::cacheavail()) { $conf = autoptimizeConfig::instance(); if( $conf->get('autoptimize_html') || $conf->get('autoptimize_js') || $conf->get('autoptimize_css') || $conf->get('autoptimize_cdn_js') || $conf->get('autoptimize_cdn_css')) { // Hook to wordpress add_action('template_redirect','autoptimize_start_buffering',2); } } // Do not pollute other plugins unset($conf);