From 3aee6d57f18ae1d43d5f6b141fc9e5a22bea4f39 Mon Sep 17 00:00:00 2001 From: Christian Schneider Date: Thu, 18 Oct 2007 12:42:31 +0000 Subject: Also support css files through ITools Joining Service(TM) --- itjs.php | 40 ++++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) (limited to 'itjs.php') diff --git a/itjs.php b/itjs.php index 818f9b8..1332ead 100644 --- a/itjs.php +++ b/itjs.php @@ -2,15 +2,21 @@ /* ** $Id$ ** -** itjs.php - Delivers /itjs/ files through AliasMatch in httpd.conf +** Copyright (C) 1995-2007 by the ITools Authors. +** This file is part of ITools - the Internet Tools Library ** -** ITools - the Internet Tools Library +** ITools is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 3 of the License, or +** (at your option) any later version. ** -** Copyright (C) 1995-2003 by the ITools Authors. -** This program is free software; you can redistribute it and/or -** modify it under the terms of either the GNU General Public License -** or the GNU Lesser General Public License, as published by the Free -** Software Foundation. See http://www.gnu.org/licenses/ for details. +** ITools is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with this program. If not, see . */ require "itools/itools.lib"; @@ -22,13 +28,27 @@ $data = ""; $files = itjs::filenames(basename($_SERVER['PHP_SELF'])); foreach ($files as $file) - $data .= ereg('\.php|\.html$', $file) ? @include($file) : @file_get_contents($file); +{ + ob_start(); # Needs to capture inside loop to guarantee file order + $data .= it::replace(array('^1$' => ""), @include($file)); + $data .= ob_get_clean(); +} $checksum = strlen($data) . itjs::checksum($files); -if (ereg('\.gif$', $file)) +if (it::match('\.gif$', $file)) +{ header("Content-Type: image/gif"); -else if (!ereg('\.html$', $file)) +} +else if (it::match('\.css', $_SERVER['PHP_SELF'])) +{ + header("Content-Type: text/css"); + ob_start('ob_gzhandler'); + $data .= "\n#it_boot_dom { display:none }\n"; # Append magic style for it_boot + if (!it::match('^devel', $GLOBALS['ULTRASERVERTYPE'])) + $data = it::replace(array('[ \t]*([{};])[ \t]*' => '$1', '/\*.*?\*/'=> ""), $data); +} +else if (!it::match('\.html$', $file)) { if ($_REQUEST['boot'] && !$_REQUEST['retry']) ob_start('ob_gzhandler'); -- cgit v1.2.3