--- app/modules/AppKit/config/module.xml.in
+++ app/modules/AppKit/config/module.xml.in
@@ -29,6 +29,8 @@
%core.cache_dir%/Squished
@flag_caching@
+ false
+ 2
--- app/modules/AppKit/validate/Widgets/SquishLoader.xml
+++ app/modules/AppKit/validate/Widgets/SquishLoader.xml
@@ -5,12 +5,18 @@
parent="%core.module_dir%/AppKit/config/validators.xml"
>
-
IF_NONE_MATCH
-
+
+
+ ACCEPT_ENCODING
+
+
+ Could not validate HTTP_REFERER
+
+
--- app/modules/AppKit/views/Widgets/SquishLoaderSuccessView.class.php
+++ app/modules/AppKit/views/Widgets/SquishLoaderSuccessView.class.php
@@ -45,8 +45,31 @@ class AppKit_Widgets_SquishLoaderSuccessView extends AppKitBaseView {
return "";
}
- ob_start("ob_gzhandler");
-
+ $options = AgaviConfig::get('modules.appkit.squishloader', array());
+ $gz_level = isset($options['gzcompress_level']) ?
+ (integer)$options['gzcompress_level'] : 3;
+ $gz_use = isset($options['use_gzcompress']) ?
+ (boolean)$options['use_gzcompress'] : false;
+
+ if ($gz_use === true) {
+
+ $encoding = $rd->getHeader('ACCEPT_ENCODING', false);
+
+ if (strpos($encoding, 'gzip') !== false) {
+ $encoding = 'gzip';
+ } elseif(strpos($encoding, 'x-gzip') !== false) {
+ $encoding = 'x-gzip';
+ }
+
+ if ($encoding !== false) {
+ header('Content-Encoding: '. $encoding);
+ $l = strlen($content);
+ $content = gzcompress($content, 4);
+ $content = substr($content, 0, $l);
+ return "\x1f\x8b\x08\x00\x00\x00\x00\x00". $content;
+ }
+ }
+
return $content;
}
}