} $included[$key][$type][] = $tmp_dir . $file; $raw[$key][$type] = array(); } } } } // Combine and minify files foreach ($included as $key => $value) { foreach ($value as $type => $files) { if (empty($files)) { continue; } $filename = $MinifyX->config[$type . 'Filename'] . '_'; $extension = $MinifyX->config[$type . 'Ext']; $files = $MinifyX->prepareFiles(implode(',', $files)); $properties = array('minify' => $MinifyX->config['minify' . ucfirst($type)] ? 'true' : 'false'); $result = $MinifyX->Munee($files, $properties); $file = $MinifyX->saveFile($result, $filename, $extension); if (!empty($file)) { $prepared[$key][$type][] = $cacheFolderUrl . $file; } } } // Combine files by type $final = array('head' => array_merge($excluded['head']['css'], $prepared['head']['css'], $raw['head']['css'], $excluded['head']['js'], $prepared['head']['js'], $raw['head']['js']), 'body' => array_merge($excluded['body']['css'], $prepared['body']['css'], $raw['body']['css'], $excluded['body']['js'], $prepared['body']['js'], $raw['body']['js'])); // Push files to tags foreach ($final as $type => &$value) { foreach ($value as &$file) { if (strpos($file, '<script') === false && strpos($file, '<style') === false) { $file = preg_match('/\\.css$/iu', $file) ? '<link rel="stylesheet" href="' . $file . '" type="text/css" />' : '<script type="text/javascript" src="' . $file . '"></script>';
$MinifyX = new MinifyX($modx, $scriptProperties); if (!$MinifyX->prepareCacheFolder()) { $modx->log(modX::LOG_LEVEL_ERROR, '[MinifyX] Could not create cache dir "' . $MinifyX->config['cacheFolder'] . '"'); return; } $cacheFolderUrl = MODX_BASE_URL . str_replace(MODX_BASE_PATH, '', $MinifyX->config['cacheFolder']); $array = array('js' => trim($modx->getOption('jsSources', $scriptProperties, '', true)), 'css' => trim($modx->getOption('cssSources', $scriptProperties, '', true))); foreach ($array as $type => $value) { if (empty($value)) { continue; } $filename = $MinifyX->config[$type . 'Filename'] . '_'; $extension = $MinifyX->config[$type . 'Ext']; $register = $MinifyX->config['register' . ucfirst($type)]; $placeholder = !empty($MinifyX->config[$type . 'Placeholder']) ? $MinifyX->config[$type . 'Placeholder'] : ''; $files = $MinifyX->prepareFiles($value); $properties = array('minify' => $MinifyX->config['minify' . ucfirst($type)] ? 'true' : 'false'); $result = $MinifyX->Munee($files, $properties); $file = $MinifyX->saveFile($result, $filename, $extension); // Register file on frontend if (!empty($file) && file_exists($MinifyX->config['cacheFolder'] . $file)) { if ($register == 'placeholder' && $placeholder) { $tag = $type == 'css' ? '<link rel="stylesheet" href="' . $cacheFolderUrl . $file . '" type="text/css" />' : '<script type="text/javascript" src="' . $cacheFolderUrl . $file . '"></script>'; $modx->setPlaceholder($placeholder, $tag); } else { if ($type == 'css') { $modx->regClientCSS($cacheFolderUrl . $file); } else { if ($register == 'startup') { $modx->regClientStartupScript($cacheFolderUrl . $file); } else {
<?php require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/config.core.php'; require_once MODX_CORE_PATH . 'config/' . MODX_CONFIG_KEY . '.inc.php'; if (!defined('MODX_API_MODE')) { define('MODX_API_MODE', true); } require_once MODX_BASE_PATH . 'index.php'; if (!$modx->getService('minifyx', 'MinifyX', MODX_CORE_PATH . 'components/minifyx/model/minifyx/')) { return false; } $MinifyX = new MinifyX($modx, array()); if (!empty($_GET['files'])) { $files = $MinifyX->prepareFiles($_GET['files']); $options = array('image' => array('checkReferrer' => $modx->getOption('munee_checkReferrer', null, 'true', true), 'allowedFiltersTimeLimit' => $modx->getOption('munee_allowedFiltersTimeLimit', null, -1, true), 'numberOfAllowedFilters' => $modx->getOption('munee_numberOfAllowedFilters', null, 100, true), 'imageProcessor' => $modx->getOption('munee_imageProcessor', null, 'GD', true), 'placeholders' => $modx->fromJSON($modx->getOption('munee_placeholders', null, '{"*":"http://placehold.it/500x500/&text=MinifyX"}', true))), 'setHeaders' => true, 'maxAge' => 0); echo $MinifyX->Munee($files, $options); }