protected function includes() { $precompileCode = 'define("MINIFY_PATH", "' . dirname(__FILE__) . '/lib/");'; stingleInclude('lib/Minify/Loader.php', $precompileCode, 'Minify_Loader::register();'); stingleInclude('Managers/MinifyWrapper.class.php'); stingleInclude('Managers/MinifySmartyWrapper.class.php'); Minify_Loader::register(); }
function htmlia_js_css_compress($html) { /** * some minify codes here ... */ require_once 'min/lib/Minify/Loader.php'; // Reuired to minify CSS require_once 'min/lib/Minify/HTML.php'; require_once 'min/lib/Minify/CSS.php'; require_once 'min/lib/JSMin.php'; // return Minify_HTML::minify( $html ); Minify_Loader::register(); // Requeired by CSS return Minify_HTML::minify($html, array('jsMinifier' => array('JSMin', 'minify'), 'cssMinifier' => array('Minify_CSS', 'minify'))); }
} /** * Front controller for default Minify implementation * * DO NOT EDIT! Configure this utility via config.php and groupsConfig.php * * @package Minify */ define('MINIFY_MIN_DIR', dirname(__FILE__)); // load config require MINIFY_MIN_DIR . '/config.php'; if (isset($_GET['test'])) { include MINIFY_MIN_DIR . '/config-test.php'; } require "{$min_libPath}/Minify/Loader.php"; Minify_Loader::register(); Minify::$uploaderHoursBehind = $min_uploaderHoursBehind; Minify::setCache(isset($min_cachePath) ? $min_cachePath : '', $min_cacheFileLocking); if ($min_documentRoot) { $_SERVER['DOCUMENT_ROOT'] = $min_documentRoot; Minify::$isDocRootSet = true; } $min_serveOptions['minifierOptions']['text/css']['symlinks'] = $min_symlinks; // auto-add targets to allowDirs foreach ($min_symlinks as $uri => $target) { $min_serveOptions['minApp']['allowDirs'][] = $target; } if ($min_allowDebugFlag) { $min_serveOptions['debug'] = Minify_DebugDetector::shouldDebugRequest($_COOKIE, $_GET, $_SERVER['REQUEST_URI']); } if ($min_errorLogger) {
/** * Loads our requested library * * On first call it will adjust the include_path, for Minify support * * @param string Name of library to require * @return void */ public static function library($which) { // a few housekeeping items before we start loading our libraries if (!isset(get_instance()->session->cache['loader'])) { // try to bump our memory limits for good measure @ini_set('memory_limit', '12M'); @ini_set('memory_limit', '16M'); @ini_set('memory_limit', '32M'); @ini_set('memory_limit', '64M'); @ini_set('memory_limit', '128M'); @ini_set('memory_limit', '256M'); // Latest changes to Minify adopt a "loader" over sprinkled require's require_once PATH_THIRD . 'minimee/libraries/Minify/Loader.php'; Minify_Loader::register(); // don't do this again get_instance()->session->cache['loader'] = TRUE; } // require_once our library of choice switch ($which) { case 'minify': if (!class_exists('Minify_CSS')) { require_once PATH_THIRD . 'minimee/libraries/Minify/CSS.php'; } break; case 'cssmin': if (!class_exists('CSSmin')) { // this sucks, but it's a case-insensitivity issue that we need to protect ourselves against if (glob(PATH_THIRD . 'minimee/libraries/CSSmin.php')) { require_once PATH_THIRD . 'minimee/libraries/CSSmin.php'; } else { self::log('CSSMin.php in minimee/libraries needs to be renamed to the proper capitalisation of "CSSmin.php".', 2); require_once PATH_THIRD . 'minimee/libraries/CSSMin.php'; } } break; case 'css_urirewriter': if (!class_exists('Minify_CSS_UriRewriter')) { require_once PATH_THIRD . 'minimee/libraries/Minify/CSS/UriRewriter.php'; } break; case 'curl': if (!class_exists('EpiCurl')) { require_once PATH_THIRD . 'minimee/libraries/EpiCurl.php'; } break; case 'jsmin': if (!class_exists('JSMin')) { // this sucks, but it's a case-insensitivity issue that we need to protect ourselves against if (glob(PATH_THIRD . 'minimee/libraries/JSM*n.php')) { require_once PATH_THIRD . 'minimee/libraries/JSMin.php'; } else { self::log('jsmin.php in minimee/libraries needs to be renamed to the proper capitalisation of "JSMin.php".', 2); require_once PATH_THIRD . 'minimee/libraries/jsmin.php'; } } break; case 'jsminplus': if (!class_exists('JSMinPlus')) { require_once PATH_THIRD . 'minimee/libraries/JSMinPlus.php'; } break; case 'html': if (!class_exists('Minify_HTML')) { require_once PATH_THIRD . 'minimee/libraries/Minify/HTML.php'; } break; } }
function wpsmy_minify_html($buffer) { $wpsmy_plugin_version = get_option('wpsmy_plugin_version'); /* if ( is_user_logged_in() ) { $buffer .= PHP_EOL . '<!--' . PHP_EOL . '*** This site runs WP Super Minify plugin v'. $wpsmy_plugin_version . ' - http://wordpress.org/plugins/wp-super-minify ***' . PHP_EOL . '*** User is logged in, compression is not applied. ***' . PHP_EOL . '-->'; return $buffer; // for loggedin users minify is not required } else { */ $initial = strlen($buffer); $minify_lib_path = plugin_dir_path(__FILE__) . 'includes/min'; if (!class_exists('Minify_HTML')) { require_once "{$minify_lib_path}/lib/Minify/HTML.php"; ini_set('include_path', ini_get('include_path') . ":{$minify_lib_path}/lib"); require_once "{$minify_lib_path}/lib/Minify/CSS.php"; require_once "{$minify_lib_path}/lib/JSMin.php"; require "{$minify_lib_path}/lib/Minify/Loader.php"; Minify_Loader::register(); } if (get_option('wpsmy_combine_js', 1) == 'on') { $buffer = Minify_HTML::minify($buffer, array('jsMinifier' => array('JSMin', 'minify'))); } if (get_option('wpsmy_combine_css', 1) == 'on') { $buffer = Minify_HTML::minify($buffer, array('cssMinifier' => array('Minify_CSS', 'minify'))); } $final = strlen($buffer); $savings = round(($initial - $final) / $initial * 100, 3); // $buffer .= "<br/><!-- Uncompressed size: $initial bytes; Compressed size: $final bytes; $savings% savings -->"; if ($savings != 0) { $buffer .= PHP_EOL . '<!--' . PHP_EOL . '*** This site runs WP Super Minify plugin v' . $wpsmy_plugin_version . ' - http://wordpress.org/plugins/wp-super-minify ***' . PHP_EOL . '*** Total size saved: ' . $savings . '% | Size before compression: ' . $initial . ' bytes | Size after compression: ' . $final . ' bytes. ***' . PHP_EOL . '-->'; } return $buffer; // } }
/** * Serves friendly minify url with minified contents * * This actually does a remote get from Minify's dir with appropriate `?f` * query variable built from persistently stored detected enqueued files. * All minified contents as well as headers should be preserved. * * Serving friendly minify urls like this cause a lot of overheads, but is * safer to use than server rewrite rules. * * @uses wp_remote_get() * @return void */ public function serve($query) { $group_handle = isset($_GET['min_group']) ? $this->_sanitize_request($_GET['min_group']) : ''; $type = isset($_GET['min_type']) && in_array($_GET['min_type'], array('js', 'css')) ? $_GET['min_type'] : ''; $bid = isset($_GET['blog']) ? (int) $_GET['blog'] : 0; if (empty($group_handle) || empty($type) || empty($bid)) { // if missing any important data, do not proceed return; } global $blog_id; if ($bid != $blog_id) { // if not on the correct blog, do not proceed return; } $group = $this->_detector->get_group($group_handle); if (false == $group) { // this should not happen, but just in case it does echo sprintf(__('Minify group %s not found.', $this->_domain), $group_handle); exit; } // load Minify class based on default or custom Minify directory $min_dir = $this->_main->get_min_dir(); if (empty($min_dir) || !file_exists($min_dir . 'config.php')) { // if Minify directory is not valid or Minify library is not found // we can not continue _e('Invalid Minify directory, please check Minify settings.', $this->_domain); exit; } // prepare input for Minify to handle $_GET['f'] = $group['string']; if ($this->_options['enable_debug'] == 'yes') { // add debug flag if needed $_GET['debug'] = 1; } else { // minified contents are often served compressed so it's best to turn off // error reporting to avoid content encoding error, unless debug is // enabled. This is useful when Minify doesn't catch all the notices // (for example when the cache directory is not writable). error_reporting(0); } // load Minify classes define('MINIFY_MIN_DIR', $min_dir); require_once MINIFY_MIN_DIR . '/config.php'; require_once $min_libPath . '/Minify/Loader.php'; Minify_Loader::register(); // set some optional for the Minify application based on current settings Minify::$uploaderHoursBehind = $min_uploaderHoursBehind; // set cache file name (id) and cache path if needed Minify::setCacheId('minify-b' . $blog_id . '-' . $group_handle . '.' . $type); Minify::setCache(isset($min_cachePath) ? $min_cachePath : '', $min_cacheFileLocking); if ($min_documentRoot) { $_SERVER['DOCUMENT_ROOT'] = $min_documentRoot; Minify::$isDocRootSet = true; } // set serve options for each file type if needed $min_serveOptions['minifierOptions']['text/css']['symlinks'] = $min_symlinks; foreach ($min_symlinks as $uri => $target) { $min_serveOptions['minApp']['allowDirs'][] = $target; } if ($min_allowDebugFlag) { // allow debugging Minify application $min_serveOptions['debug'] = Minify_DebugDetector::shouldDebugRequest($_COOKIE, $_GET, $_SERVER['REQUEST_URI']); } if ($min_errorLogger) { // log Minify error if allowed if (true === $min_errorLogger) { $min_errorLogger = FirePHP::getInstance(true); } Minify_Logger::setLogger($min_errorLogger); } // serve minified contents, on the fly or from cache $min_serveController = new Minify_Controller_MinApp(); Minify::serve($min_serveController, $min_serveOptions); // for a proper response headers exit; }
/** * Use PHP Minify to do the minification of passed SRCs. * @param array $srcs asset paths relative to site root * @return string minified & concatenated files. */ public function do_minify($srcs) { if (!class_exists('Minify_Loader')) { require 'PHP-Minify-Lib/Minify/Loader.php'; } if (!class_exists('Minify')) { require 'PHP-Minify-Lib/Minify.php'; } foreach ($srcs as &$src) { $src = $this->site_root . $src; } Minify_Loader::register(); $data = Minify::combine($srcs); return $data; }