You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
3.1 KiB

<?php
/*
Plugin Name: Autoptimize
Plugin URI: https://autoptimize.com/
Description: Makes your site faster by optimizing CSS, JS, Images, Google fonts and more.
Version: 2.5.1
Author: Frank Goossens (futtta)
Author URI: https://autoptimize.com/
Text Domain: autoptimize
Released under the GNU General Public License (GPL)
http://www.gnu.org/licenses/gpl.txt
*/
/**
* Autoptimize main plugin file.
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
define( 'AUTOPTIMIZE_PLUGIN_VERSION', '2.5.1' );
// plugin_dir_path() returns the trailing slash!
define( 'AUTOPTIMIZE_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'AUTOPTIMIZE_PLUGIN_FILE', __FILE__ );
// Bail early if attempting to run on non-supported php versions.
if ( version_compare( PHP_VERSION, '5.3', '<' ) ) {
function autoptimize_incompatible_admin_notice() {
echo '<div class="error"><p>' . __( 'Autoptimize requires PHP 5.3 (or higher) to function properly. Please upgrade PHP. The Plugin has been auto-deactivated.', 'autoptimize' ) . '</p></div>';
if ( isset( $_GET['activate'] ) ) {
unset( $_GET['activate'] );
}
}
function autoptimize_deactivate_self() {
deactivate_plugins( plugin_basename( AUTOPTIMIZE_PLUGIN_FILE ) );
}
add_action( 'admin_notices', 'autoptimize_incompatible_admin_notice' );
add_action( 'admin_init', 'autoptimize_deactivate_self' );
return;
}
function autoptimize_autoload( $class_name ) {
if ( in_array( $class_name, array( 'Minify_HTML', 'JSMin' ) ) ) {
$file = strtolower( $class_name );
$file = str_replace( '_', '-', $file );
$path = dirname( __FILE__ ) . '/classes/external/php/';
$filepath = $path . $file . '.php';
} elseif ( false !== strpos( $class_name, 'Autoptimize\\tubalmartin\\CssMin' ) ) {
$file = str_replace( 'Autoptimize\\tubalmartin\\CssMin\\', '', $class_name );
$path = dirname( __FILE__ ) . '/classes/external/php/yui-php-cssmin-bundled/';
$filepath = $path . $file . '.php';
} elseif ( 'autoptimize' === substr( $class_name, 0, 11 ) ) {
// One of our "old" classes.
$file = $class_name;
$path = dirname( __FILE__ ) . '/classes/';
$filepath = $path . $file . '.php';
} elseif ( 'PAnD' === $class_name ) {
$file = 'persist-admin-notices-dismissal';
$path = dirname( __FILE__ ) . '/classes/external/php/persist-admin-notices-dismissal/';
$filepath = $path . $file . '.php';
}
// If we didn't match one of our rules, bail!
if ( ! isset( $filepath ) ) {
return;
}
require $filepath;
}
spl_autoload_register( 'autoptimize_autoload' );
// Load WP CLI command(s) on demand.
if ( defined( 'WP_CLI' ) && WP_CLI ) {
require AUTOPTIMIZE_PLUGIN_DIR . 'classes/autoptimizeCLI.php';
}
/**
* Retrieve the instance of the main plugin class.
*
* @return autoptimizeMain
*/
function autoptimize() {
static $plugin = null;
if ( null === $plugin ) {
$plugin = new autoptimizeMain( AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE );
}
return $plugin;
}
autoptimize()->run();