ok
Direktori : /home/institutonamaste/www/admin/js/kcfinder/core/class/ |
Current File : /home/institutonamaste/www/admin/js/kcfinder/core/class/minifier.php |
<?php /** This file is part of KCFinder project * * @desc Minify JS & CSS * @package KCFinder * @version 3.12 * @author Pavel Tzonkov <sunhater@sunhater.com> * @copyright 2010-2014 KCFinder Project * @license http://opensource.org/licenses/GPL-3.0 GPLv3 * @license http://opensource.org/licenses/LGPL-3.0 LGPLv3 * @link http://kcfinder.sunhater.com */ namespace kcfinder; class minifier { protected $config; protected $type = "js"; protected $minCmd = ""; protected $mime = array( 'js' => "text/javascript", 'css' => "text/css" ); public function __construct($type=null) { $this->config = require("conf/config.php"); $type = strtolower($type); if (isset($this->mime[$type])) $this->type = $type; if (isset($this->config["_{$this->type}MinCmd"])) $this->minCmd = $this->config["_{$this->type}MinCmd"]; } public function minify($cacheFile=null, $dir=null) { if ($dir === null) $dir = dirname($_SERVER['SCRIPT_FILENAME']); // MODIFICATION TIME FILES $mtFiles = array( __FILE__, $_SERVER['SCRIPT_FILENAME'], "conf/config.php" ); // GET SOURCE CODE FILES $files = dir::content($dir, array( 'types' => "file", 'pattern' => '/^.*\.' . $this->type . '$/' )); // GET NEWEST MODIFICATION TIME $mtime = 0; foreach (array_merge($mtFiles, $files) as $file) { $fmtime = filemtime($file); if ($fmtime > $mtime) $mtime = $fmtime; } $header = "Content-Type: {$this->mime[$this->type]}"; // GET SOURCE CODE FROM CLIENT HTTP CACHE IF EXISTS httpCache::checkMTime($mtime, $header); // OUTPUT SOURCE CODE header($header); // GET SOURCE CODE FROM SERVER-SIDE CACHE if (($cacheFile !== null) && file_exists($cacheFile) && ( (filemtime($cacheFile) >= $mtime) || !is_writable($cacheFile) // if cache file cannot be modified ) // the script will output it always ) { // with its distribution content readfile($cacheFile); die; } // MINIFY AND JOIN SOURCE CODE $source = ""; foreach ($files as $file) { if (strlen($this->minCmd) && (substr($file, 4, 1) != "_")) { $cmd = str_replace("{file}", $file, $this->minCmd); $source .= `$cmd`; } else $source .= file_get_contents($file); } // UPDATE SERVER-SIDE CACHE if (($cacheFile !== null) && ( is_writable($cacheFile) || ( !file_exists($cacheFile) && dir::isWritable(dirname($cacheFile)) ) ) ) { file_put_contents($cacheFile, $source); touch($cacheFile, $mtime); } // OUTPUT SOURCE CODE echo $source; } }