aboutsummaryrefslogtreecommitdiffstats
path: root/lib/minimizer.php
diff options
context:
space:
mode:
authorBart Visscher <bartv@thisnet.nl>2012-06-04 23:02:05 +0200
committerBart Visscher <bartv@thisnet.nl>2012-06-04 23:02:05 +0200
commit4a5973662c78eb5769e7b06d7d559572f57e663f (patch)
tree774e2f775b3789f5f40bd2459ddec05df1b73c31 /lib/minimizer.php
parent786325a4bb976d92de54c472c2c3bd8a73cbef22 (diff)
parent3fee3a4633e5d4d65f7eabf2d387e209efedbc70 (diff)
downloadnextcloud-server-4a5973662c78eb5769e7b06d7d559572f57e663f.tar.gz
nextcloud-server-4a5973662c78eb5769e7b06d7d559572f57e663f.zip
Merge branch 'unstable'
Conflicts: apps/files_external/tests/config.php apps/files_versions/ajax/getVersions.php apps/files_versions/appinfo/app.php apps/files_versions/history.php apps/files_versions/js/versions.js apps/files_versions/templates/history.php apps/files_versions/versions.php lib/base.php
Diffstat (limited to 'lib/minimizer.php')
-rw-r--r--lib/minimizer.php40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/minimizer.php b/lib/minimizer.php
new file mode 100644
index 00000000000..9f9ef086c4a
--- /dev/null
+++ b/lib/minimizer.php
@@ -0,0 +1,40 @@
+<?php
+
+abstract class OC_Minimizer
+{
+ protected $files = array();
+
+ protected function appendIfExist($root, $webroot, $file) {
+ if (is_file($root.'/'.$file)) {
+ $this->files[] = array($root, $webroot, $file);
+ return true;
+ }
+ return false;
+ }
+
+ public function getLastModified($files) {
+ $last_modified = 0;
+ foreach($files as $file_info) {
+ $file = $file_info[0] . '/' . $file_info[2];
+ $filemtime = filemtime($file);
+ if ($filemtime > $last_modified) {
+ $last_modified = $filemtime;
+ }
+ }
+ return $last_modified;
+ }
+
+ abstract public function minimizeFiles($files);
+
+ public function output($files) {
+ header('Content-Type: '.$this->contentType);
+ OC_Response::enableCaching();
+ $last_modified = $this->getLastModified($files);
+ OC_Response::setLastModifiedHeader($last_modified);
+
+ $out = $this->minimizeFiles($files);
+ OC_Response::setETagHeader(md5($out));
+ header('Content-Length: '.strlen($out));
+ echo $out;
+ }
+}