Example #1
0
 /**
  * Write all packages specified in $configFile to $outputDir.
  * The default $configFile is "$STUDIP_BASE_PATH/config/assets.yml"
  *
  * @param string $configFile  path to the config file
  * @param string $outputDir   path to the output directory
  */
 function packageAll($configFile = NULL, $outputDir = NULL)
 {
     global $STUDIP_BASE_PATH;
     $configFile = $configFile ?: "{$STUDIP_BASE_PATH}/config/assets.yml";
     $configuration = Configuration::load($configFile, $forced = TRUE);
     $packager = new Packager($configuration);
     $packager->cacheAll($outputDir);
     $compressor = new Compressor($configuration);
     if (is_array($configuration['css'])) {
         $compress = $compressor->shouldCompress();
         if ($compress && !$compressor->hasJava()) {
             $compress = false;
             error_log('CSS could not be compressed, since Java is missing.');
         }
         $config_time = filemtime($configFile);
         foreach ($configuration['css'] as $package => $files) {
             foreach (array_keys($files) as $file) {
                 $src = $configuration['assets_root'] . '/stylesheets/' . $file;
                 $dest = $configuration['package_path'] . '/' . $package . '-' . $file;
                 if (!file_exists($dest) || max($config_time, filemtime($src)) > filemtime($dest)) {
                     $contents = file_get_contents($src);
                     if ($compress) {
                         $contents = $compressor->callCompressor($contents, 'css');
                     }
                     file_put_contents($dest, $contents);
                 }
             }
         }
     }
 }
 public function buildGzipPackage($outputFile, $inputFiles, Compressor $compressor = NULL)
 {
     $this->buildPackage($outputFile, $inputFiles);
     if (isset($compressor)) {
         $compressor->compress($outputFile, $outputFile . '_min');
     }
     $this->buildGzip($outputFile, $outputFile . '_min');
 }
Example #3
0
 public function combined($filename, $options)
 {
     if (!isset($this->javascript[$filename])) {
         $this->bye();
     }
     $compressor = new Compressor();
     $compressor->setCompressorType('js')->setPath(CONTRIB_PATH . '/js')->setFiles($this->javascript[$filename])->setFilename($filename);
     $compressor->combine();
 }
Example #4
0
 /**
  * 压缩css
  * @return mixed|void
  */
 public function compress()
 {
     $compressor = Compressor::getInstance('css');
     $compressor->setContents($this->contents);
     $compressor->compress();
     $this->contents = $compressor->contents;
     $endInfo = PHP_EOL . '/** If u are interested in our code and would like to make it robust, just contact us^^ <@音乐前端> **/' . PHP_EOL . '/** Generated by M3D. **/';
     $this->contents .= $endInfo;
 }
Example #5
0
 /**
  * 压缩图片
  * @return mixed|void
  */
 public function compress($isSprite = false)
 {
     // 只有合图图片,才进行压缩,其他小图,可能存在滤镜应用情况,压缩会造成ie6失真
     if (C('IS_COMPRESS_IMAGE') && !$this->isBlackFile() && $isSprite) {
         $compressor = Compressor::getInstance('media');
         $compressor->setContents($this->contents);
         $compressor->compress(array('png8' => true));
         $this->contents = $compressor->contents;
     }
 }
Example #6
0
function compile($compressedFiles, $app, $nameInclude, $compile, $delete)
{
    $compressor = new Compressor();
    $compressor->setCompressorType('js')->setPath(realpath(APP_PATH . '/' . $compressor->getFilesDir($nameInclude, $compressedFiles)))->setFiles($compressedFiles->files[$nameInclude])->setFilename($nameInclude);
    if ($delete == true) {
        echo "Deleted: " . $compressor->getCombinedFilePath() . "<br/>\n";
        unlink($compressor->getCombinedFilePath());
        echo "Deleted: " . $compressor->getCompiledFilePath() . "<br/>\n";
        unlink($compressor->getCompiledFilePath());
    }
    if ($compile == true) {
        $compressor->compile(true);
        echo "Compiled: " . $nameInclude . "<br/>\n";
    }
}
Example #7
0
 /**
  * @param string $rawFile
  * @dataProvider testFiles
  */
 public function testCompress(string $rawFile)
 {
     $raw = file_get_contents($rawFile);
     $compressor = new Compressor();
     $compressedFile = tempnam(sys_get_temp_dir(), 'squeeze-test-' . date('His') . '-compressed');
     $decompressedFile = tempnam(sys_get_temp_dir(), 'squeeze-test-' . date('His') . '-decompressed');
     $this->output('Compressing ' . $rawFile);
     $compressed = $compressor->compress($raw, (new Progress())->listen(function ($percentage) {
         static $lastBand = 0;
         $thisBand = floor($percentage * 10) / 10;
         if ($thisBand > $lastBand) {
             $this->output(round($thisBand * 100) . '%');
         }
         $lastBand = $thisBand;
     }));
     file_put_contents($compressedFile, $compressed);
     $this->assertLessThan(filesize($rawFile), filesize($compressedFile));
     $this->output('Compression ration ' . filesize($compressedFile) . '/' . filesize($rawFile) . ' = ' . round(filesize($compressedFile) / filesize($rawFile), 5) * 100 . '%');
     $this->output('Decompressing');
     $decompressed = $compressor->decompress($compressed);
     file_put_contents($decompressedFile, $decompressed);
     $this->assertEquals($raw, $decompressed);
 }
Example #8
0
 /**
  * Minify a CSS string
  *
  * @param string $css
  *
  * @param array $options available options:
  *
  * 'preserveComments': (default true) multi-line comments that begin
  * with "/*!" will be preserved with newlines before and after to
  * enhance readability.
  *
  * 'removeCharsets': (default true) remove all @charset at-rules
  *
  * 'prependRelativePath': (default null) if given, this string will be
  * prepended to all relative URIs in import/url declarations
  *
  * 'currentDir': (default null) if given, this is assumed to be the
  * directory of the current CSS file. Using this, minify will rewrite
  * all relative URIs in import/url declarations to correctly point to
  * the desired files. For this to work, the files *must* exist and be
  * visible by the PHP process.
  *
  * 'symlinks': (default = array()) If the CSS file is stored in
  * a symlink-ed directory, provide an array of link paths to
  * target paths, where the link paths are within the document root. Because
  * paths need to be normalized for this to work, use "//" to substitute
  * the doc root in the link paths (the array keys). E.g.:
  * <code>
  * array('//symlink' => '/real/target/path') // unix
  * array('//static' => 'D:\\staticStorage')  // Windows
  * </code>
  *
  * 'docRoot': (default = $_SERVER['DOCUMENT_ROOT'])
  * see Minify_CSS_UriRewriter::rewrite
  *
  * @return string
  */
 public static function minify($css, $options = array())
 {
     $options = array_merge(array('compress' => true, 'removeCharsets' => true, 'preserveComments' => false, 'currentDir' => null, 'docRoot' => $_SERVER['DOCUMENT_ROOT'], 'prependRelativePath' => null, 'symlinks' => array()), $options);
     if ($options['removeCharsets']) {
         $css = preg_replace('/@charset[^;]+;\\s*/', '', $css);
     }
     if ($options['compress']) {
         if (!$options['preserveComments']) {
             $css = Compressor::process($css, $options);
         } else {
             $css = Minify_CommentPreserver::process($css, array('Minify_CSS_Compressor', 'process'), array($options));
         }
     }
     if (!$options['currentDir'] && !$options['prependRelativePath']) {
         return $css;
     }
     if ($options['currentDir']) {
         return Minify_CSS_UriRewriter::rewrite($css, $options['currentDir'], $options['docRoot'], $options['symlinks']);
     } else {
         return Minify_CSS_UriRewriter::prepend($css, $options['prependRelativePath']);
     }
 }
Example #9
0
		<?php 
    $cpu = sys_getloadavg();
    ?>
		<li data-toggle="tooltip" title="Загрузка CPU"><i class="fa fa-tachometer"></i> <?php 
    echo round($cpu[0], 2);
    ?>
</li>
	<?php 
}
?>

	<?php 
if (!empty($config['gzip'])) {
    ?>
		<?php 
    $compression = Compressor::result();
    ?>
		<?php 
    if (!empty($compression)) {
        ?>
			<li data-toggle="tooltip" title="Компрессия"><i class="fa fa-compress"></i> <?php 
        echo $compression;
        ?>
%</li>
		<?php 
    }
    ?>
	<?php 
}
?>
Example #10
0
    ?>
g.pie-min.js"></script>
        <script type="text/javascript" src="<?php 
    echo CONTRIB_URL;
    ?>
jquery.tablePagination.0.2.min.js"></script>
        
        <script type="text/javascript" src="js/tofor-chart.js"></script>
        <script type="text/javascript" src="js/tofor.js"></script>
        
        <?php 
} else {
    echo '<script type="text/javascript" src="' . CONTRIB_URL . 'tofor_redeem2.compiled.js"></script>';
    // Include compressed files
    $files2 = array('tofor-chart.js', 'tofor.js');
    $compressor2 = new Compressor();
    $compressor2->setCompressorType('js')->setPath(APP_PATH . '/js')->setFiles($files2)->setFilename('tofor2');
    if (strstr(substr($_SERVER['REQUEST_URI'], 0, 3), '~') || !defined('USE_COMPILED_LIBRARIES') || USE_COMPILED_LIBRARIES !== true) {
        $compressor2->combine();
    } else {
        $compressor2->compile();
    }
}
?>
    
    <script type="text/javascript">
      /////////////////////////////
     /// Configuration strings ///
    /////////////////////////////
    
    // this is the refresh rate aka heart beat
 /**
  * Minify a CSS string
  *
  * @param string $css
  *
  * @param array $options (currently ignored)
  *
  * @return string
  */
 public static function process($css, $options = array())
 {
     $obj = new Compressor($options);
     return $obj->_process($css);
 }
Example #12
0
function load_EditArea_js($type, $http_base, $base, $root, $element, $suffix)
{
    global $cfg;
    global $do_not_load;
    if ($do_not_load) {
        return '';
    }
    // return zip, nada, nothing
    /*
     * Make sure the EditArea language is set up correctly!
     *
     * If we don't do this here, then $cfg['editarea_language'] will not exist and we will croak further down below.
     */
    SetUpLanguageAndLocale($cfg['language'], true);
    $mce_basepath = merge_path_elems($base, get_remainder_upto_slash($element));
    /*MARKER*/
    require_once BASE_PATH . '/lib/includes/js/edit_area/edit_area/edit_area_compressor.php';
    // CONFIG
    $param['cache_duration'] = 3600 * 24 * 10;
    // 10 days util client cache expires
    $param['compress'] = $suffix == '_full' || $suffix == '';
    // Enable the code compression, should be activated but it can be useful to deactivate it for easier error diagnostics (true or false)
    $param['debug'] = $suffix == '_dev';
    // Enable this option if you need debugging info
    $param['use_disk_cache'] = false;
    // If you enable this option gzip files will be cached on disk.
    $param['use_gzip'] = false;
    // Enable gzip compression
    $param['plugins'] = true;
    // Include plugins in the compressed/flattened JS output.
    $param['echo2stdout'] = false;
    // Output generated JS to stdout; alternative is to store it in the object for later retrieval.
    $param['include_langs_and_syntaxes'] = true;
    // Set to FALSE for backwards compatibility: do not include the language files and syntax definitions in the flattened output.
    // END CONFIG
    $compressor = new Compressor($param);
    $my_content = $compressor->get_flattened();
    /*
    WARNING:
    
    because the 'trigger' file 'edit_area_ccms.js' is located in the PARENT directory of the edit_area_loader.js,
    the code in the latter will produce the WRONG this.baseURL value ('http://site.com/lib/includes/js/edit_area/'
    instead of 'http://site.com/lib/includes/js/edit_area/edit_area/').
    
    The culprit is the set_base_url() method, which derives the baseURL from the first JavaScript <script> element
    which contains a filepath which contains 'edit_area': hence it finds our edit_area_ccms.js load.
    
    There are several ways to solve this, but given the code of set_base_url(), we can simply predefine the 'baseURL'
    and it will NOT look at the <script> collection at all. HOWEVER, we cannot programmatically preset 'baseURL'...
    unless, for example, we derive our own editArea instance, hack the constructor around, and replace it, yada yada yada.
    
    Sounds like too much work where a fast hack will do the trick: bluntly replacing the line
    	t.baseURL="";
    in here, while we're producing the (possibly minified) EA code.
    
    We can do it here (and not patch the edit_area_compressor for this) because we won't be serving pre-GZIP-ped
    versions of this baby, EVER. If we GZIP at all, we will be doing it ourselves, AFTER we've gone through here.
    
    So in all scenarios, we're right on time right now to last-minute-patch the bugger.
    */
    $my_content = preg_replace('/t\\.baseURL\\s*=\\s*"";/', 't.baseURL="' . $cfg['rootdir'] . 'lib/includes/js/edit_area/edit_area";', $my_content);
    /*
    And because the lazyloader in edit_area itself, which is used to load any required language and/or syntax
    file, is not working for us on some browsers (Safari 5.0, for example), we circumvent the issue by allowing
    those items to be flattended into the output as well.
    
    Optimally, we'd flatten only the required-at-this-time items in there, but we don't mind about a few extra
    lines of language def's right now; besides, we don't need to touch up the ETag/cache hash code section in
    here when we do it this way.
    */
    return $my_content;
}
Example #13
0
    private $filename;
    private $total = array();
    function __construct($filename)
    {
        if (file_exists($filename)) {
            $this->filename = $filename;
        } else {
            throw new Exception($filename . " does not exist!");
        }
    }
    public function compress()
    {
        $w = fopen($this->filename, "r");
        while (!feof($w)) {
            $this->total[] = gzencode(fgets($w, 4096), 5);
        }
    }
    public function saveFile($filename)
    {
        $s = gzopen($filename, "w");
        foreach ($this->total as $key => $value) {
            gzputs($s, $key, 4096);
        }
    }
}
$m = new Melder(array("pdbc.php", "all.php", "xml.php"));
$m->mergeFiles();
$m->saveFile("newShizzy.shizzle");
$c = new Compressor("newShizzy.shizzle");
$c->compress();
$c->saveFile("dsh");
Example #14
0
 /**
  * Test compressor with path to binary
  */
 public function testGetCommand()
 {
     $gzip = Compressor::create('/usr/local/bin/gzip');
     $this->assertEquals('gz', $gzip->getSuffix());
     $this->assertEquals('gzip', $gzip->getCommand());
 }
Example #15
0
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Minim test</title>

    <!--
    <link rel="stylesheet" href="css/block1.css">
    <link rel="stylesheet" href="css/block2.css">
    -->

    <?php 
require_once 'lib/compressor.php';
$comp = new Compressor('css', 'js', 'prod');
$comp->load_css(array('block1.css', 'block2'));
?>

    <!--
    <script type="text/javascript" src="js/jquery-2.1.4.js"></script>
    <script type="text/javascript" src="js/script1.js"></script>
    <script type="text/javascript" src="js/script2.js"></script>
    -->

    <?php 
$comp->load_js(array('jquery-2.1.4.js', 'script1', 'script2'));
?>



</head>
<body>
Example #16
0
<?php

error_reporting(E_ALL);
Compressor::echoInclude("modulescripts");
Compressor::echoInclude("review_module_scripts");
Example #17
0
 static function echoInclude($nameInclude)
 {
     $compressedFiles = new CompressedFiles();
     if (self::isUsingUncompiledVersion()) {
         if (isset($compressedFiles->files[$nameInclude])) {
             echo '<!-- include files for group : ' . $nameInclude . ' -->' . "\n";
             foreach ($compressedFiles->files[$nameInclude] as $fileName) {
                 echo '<script type="text/javascript" src="' . self::getFilesDir($nameInclude, $compressedFiles) . '/' . $fileName . '"></script>' . "\n";
             }
         } else {
             echo '<!-- include file name is missing in CompressedFiles class : ' . $nameInclude . ' -->' . "\n";
         }
     } else {
         if (defined('FORCE_COMPILE') && FORCE_COMPILE === true) {
             $compressor = new Compressor();
             $compressor->setCompressorType('js')->setPath(realpath(APP_PATH . '/' . self::getFilesDir($nameInclude, $compressedFiles)))->setFiles($compressedFiles->files[$nameInclude])->setFilename($nameInclude);
             $compressor->compile();
         } else {
             echo '<script type="text/javascript" src="' . 'js/' . $nameInclude . '.compiled.js"></script>' . "\n";
         }
     }
 }
Example #18
0
?>
g.raphael-min.js" charset="utf-8"></script>
    <script type="text/javascript" src="<?php 
echo CONTRIB_URL;
?>
g.pie-min.js" charset="utf-8"></script>
    <script type="text/javascript" src="<?php 
echo CONTRIB_URL;
?>
jquery.tablePagination.0.2.min.js" charset="utf-8"></script>
    <!--<script type="text/javascript" src="js/review.js" charset="utf-8"></script>-->
    <!--<script type="text/javascript" src="js/review-form.js" charset="utf-8"></script>-->
    
    <?php 
$files = array('stage.settings.js', 'livefeed.js', 'tofor.js', 'review.js', 'review-form.js');
$compressor = new Compressor();
$compressor->setCompressorType('js')->setPath(APP_PATH . '/js')->setFiles($files)->setFilename('love_redeem2');
$combinedJs = $compressor->compile();
?>
</head>

<body>
    <div id="wrapper">
        <!-- Include header -->
        <?php 
include "view/love/header.php";
?>
      
        <div id="content" style="clear:both;">
            <!-- Include tabs -->
            <?php 
Example #19
0
<?php

require "compressor.php";
$c = new Compressor();
$c->keep_line_breaks = false;
$c->comment = array("See https://github.com/fbianco/MimingGallery for uncompressed code.");
$c->load(file_get_contents("gallery.ajax.php"));
echo $c->run() . '?>';
Example #20
0
                $banip = DB::run()->querySingle("SELECT `ban_id` FROM `ban` WHERE `ban_ip`=? LIMIT 1;", array($ip));
                if (empty($banip)) {
                    DB::run()->query("INSERT INTO `error` (`error_num`, `error_request`, `error_referer`, `error_username`, `error_ip`, `error_brow`, `error_time`) VALUES (?, ?, ?, ?, ?, ?, ?);", array(666, $request_uri, $http_referer, $username, $ip, $brow, SITETIME));
                    DB::run()->query("INSERT IGNORE INTO ban (`ban_ip`, `ban_time`) VALUES (?, ?);", array($ip, SITETIME));
                    save_ipban();
                }
            }
            unlink(DATADIR . '/antidos/' . $ip . '.dat');
        }
    }
}
############################################################################################
##                            Сжатие и буферизация данныx                                 ##
############################################################################################
if (!empty($config['gzip'])) {
    Compressor::start();
}
############################################################################################
##                               Авторизация по cookies                                   ##
############################################################################################
if (empty($_SESSION['log']) && empty($_SESSION['par'])) {
    if (isset($_COOKIE['cooklog']) && isset($_COOKIE['cookpar'])) {
        $unlog = check($_COOKIE['cooklog']);
        $unpar = check($_COOKIE['cookpar']);
        $checkuser = DB::run()->queryFetch("SELECT * FROM `users` WHERE `users_login`=? LIMIT 1;", array($unlog));
        if (!empty($checkuser)) {
            if ($unlog == $checkuser['users_login'] && $unpar == md5($checkuser['users_pass'] . $config['keypass'])) {
                session_regenerate_id(1);
                $_SESSION['my_ip'] = $ip;
                $_SESSION['log'] = $unlog;
                $_SESSION['par'] = md5($config['keypass'] . $checkuser['users_pass']);
Example #21
0
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>LoveMachine</title>
    
    <link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico">
    
    <link rel="stylesheet" href="css/jquery-ui.css" type="text/css" media="all" />
    <link rel="stylesheet" type="text/css" href="css/smoothness/lm.ui.css"/>

    <link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" />
    <link type="text/css" href="css/tofor.css" rel="Stylesheet" />
    <link type="text/css" href="css/review.css" rel="Stylesheet" />
    <link type="text/css" href="css/periods.css" rel="Stylesheet" />
    <link type="text/css" href="css/checkoutDialog.css" rel="Stylesheet" />
    <?php 
Compressor::echoInclude("love_campaign");
Compressor::echoInclude("campaign");
?>
    <script type="text/javascript">
    //Color for checkboxes
    var checkboxBackground = '<?php 
echo $front->getCompany()->getReview_done_color();
?>
';

    </script>
</head> 

<body style="padding:0px;">
    <div id="wrapper">
        <div id="content" style="width: 100%;">
            <!-- Include tabs -->
Example #22
0
<script type="text/javascript" src="<?php 
echo CONTRIB_URL;
?>
feedback.js"></script>
<script type="text/javascript" src="<?php 
echo CONTRIB_URL;
?>
jquery.blockUI.js"></script>
<script type="text/javascript" src="<?php 
echo CONTRIB_URL;
?>
branding.js"></script>
<!--<script type="text/javascript" src="js/login.js"></script>-->
<?php 
$files = array('login.js');
$compressor = new Compressor();
$compressor->setCompressorType('js')->setPath(APP_PATH . '/js')->setFiles($files)->setFilename('prelogin_privacy');
$combinedJs = $compressor->compile();
?>
<script type="text/javascript">
    var uservoiceOptions = {
      /* required */
      key: 'sendlove',
      host: 'sendlove.uservoice.com', 
      forum: '75971',
      showTab: true,  
      /* optional */
      alignment: 'right',
      background_color:'#f00', 
      text_color: 'white',
      hover_color: '#000',
Example #23
0
<?php

if (file_exists('../../../wp-load.php')) {
    require_once '../../../wp-load.php';
} else {
    require_once '../../../wp-config.php';
}
require_once 'comp.class.php';
$comp = new Compressor(array('files' => $scriptcomp->getScripts(), 'charset' => get_option('blog_charset'), 'gzip' => $scriptcomp->options['gzip'], 'replacePath' => $scriptcomp->options['css_method'] == 'composed', 'cache' => $scriptcomp->options['cache'], 'importCallback' => array($scriptcomp, 'buildUrl')));
$comp->sendHeader();
echo $comp->getContent();
Example #24
0
 /**
  * Tests Compressor::compressFile
  *
  * @expectedException \phpbu\App\Exception
  */
 public function testFailEarlyCompress()
 {
     $path = realpath(__DIR__ . '/../../../_files/bin');
     $gzip = new Compressor('gzip', $path);
     $gzip->run();
 }
Example #25
0
echo $front->getUser()->getProvider();
?>
';
/* ]]> */
    </script>
    
<?php 
if (SMS_ENABLED) {
    ?>
    <script type="text/javascript" src="js/sendlove.js" charset="utf-8"></script><?php 
}
?>
    <!--<script type="text/javascript" src="js/settings.js" charset="utf-8"></script>-->
	<?php 
$files = array('settings.js');
$compressor = new Compressor();
$compressor->setCompressorType('js')->setPath(APP_PATH . '/js')->setFiles($files)->setFilename('settings');
$combinedJs = $compressor->compile();
?>
    <script type="text/javascript">
        var uservoiceOptions = {
          /* required */
          key: 'sendlove',
          host: 'sendlove.uservoice.com', 
          forum: '75971',
          showTab: true,  
          /* optional */
          alignment: 'right',
          background_color:'#f00', 
          text_color: 'white',
          hover_color: '#000',
Example #26
0
?>
/css/jquery.combobox.css" rel="stylesheet" type="text/css">

<?php 
include "dialogs/finish-period.inc";
/* In standalone mode, we include jquery and livevalidation
 * any other script not required to be added in module mode
 * should be loaded here as well.
 */
if (!$load_module) {
    Compressor::echoInclude("review_rewarder1");
    Compressor::echoInclude("rewarder1");
    Compressor::echoInclude("review_rewarder2");
} else {
    if ($loadFirstTime == true) {
        Compressor::echoInclude("rewarder2");
    }
}
if ($loadFirstTime == true) {
    include "module_scripts.php";
}
?>
<script type="text/javascript"  charset="utf-8">
$(function(){
    window.currentTab = <?php 
echo $showTab;
?>
; // 0 for rewarder and 1 for chart
    window.review_url = '<?php 
echo REVIEW_URL;
?>