From 04827948ea65adfbaf28f489f0924d83b52f8f81 Mon Sep 17 00:00:00 2001 From: zero Date: Wed, 16 Jan 2008 03:22:47 +0000 Subject: [PATCH] =?UTF-8?q?Optimizer=EB=A5=BC=20=EA=B0=9C=EB=9F=89?= =?UTF-8?q?=ED=95=98=EC=97=AC=20IE6=EB=A5=BC=20=EC=A0=9C=EC=99=B8=ED=95=9C?= =?UTF-8?q?=20=EB=B8=8C=EB=9D=BC=EC=9A=B0=EC=A0=80=EB=9D=BC=EB=A9=B4=20gzi?= =?UTF-8?q?p=20=EC=A0=84=EC=86=A1=EC=9D=B4=20=EB=90=98=EB=8F=84=EB=A1=9D?= =?UTF-8?q?=20=ED=95=98=EA=B3=A0=20=EB=B6=88=ED=95=84=EC=9A=94=ED=95=9C=20?= =?UTF-8?q?=EC=A0=95=EA=B7=9C=ED=91=9C=ED=98=84=EC=8B=9D=EC=9D=84=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@3534 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- .htaccess | 1 + classes/context/Context.class.php | 13 ++-------- classes/display/DisplayHandler.class.php | 7 ----- classes/optimizer/Optimizer.class.php | 33 ++++++++++++++++++++---- 4 files changed, 31 insertions(+), 23 deletions(-) diff --git a/.htaccess b/.htaccess index 508242c49..1fa4957a4 100644 --- a/.htaccess +++ b/.htaccess @@ -3,6 +3,7 @@ RewriteEngine On # image... RewriteRule ^([a-zA-Z0-9_]+)/files/attach/images/(.*) ./files/attach/images/$2 [L] RewriteRule ^([a-zA-Z0-9_]+)/files/member_extra_info/(.*) ./files/member_extra_info/$2 [L] +RewriteRule ^([a-zA-Z0-9_]+)/files/cache/(.*) ./files/cache/$2 [L] RewriteRule ^([a-zA-Z0-9_]+)/modules/(.*) ./modules/$2 [L] RewriteRule ^([a-zA-Z0-9_]+)/common/(.*) ./common/$2 [L] RewriteRule ^([a-zA-Z0-9_]+)/widgets/(.*) ./widgets/$2 [L] diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 3958f822f..1833eaa37 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -864,17 +864,8 @@ // body 내의 를 header로 이동 $content = preg_replace_callback('!!is', array($this,'moveStyleToHeader'), $content); - //
코드 변환 - $content = preg_replace('/\/]*)(\/>|>)/i','', $content); - - // 몇가지 대문자 태그를 소문자로 변경 - //$content = preg_replace_callback('!<(\/){0,1}([A-Z]+)([^>]*?)>!s',array($this,'transTagToLowerCase'), $content); - - // 코드를 코드로 변환 - $content = preg_replace('//i','', $content); - - // blogapi tool에서 삽입된 코드 삭제 - //$content = str_replace('atomicselection="true"','',$content); + // 코드 변환 + $content = preg_replace('/<(img|br)([^>\/]*)(\/>|>)/i','<$1$2 />', $content); return $content; } diff --git a/classes/display/DisplayHandler.class.php b/classes/display/DisplayHandler.class.php index 1cba78241..ff14ce5c7 100644 --- a/classes/display/DisplayHandler.class.php +++ b/classes/display/DisplayHandler.class.php @@ -87,16 +87,9 @@ function display($content) { $content .= $this->_debugOutput(); - $path = getScriptPath(); - - // commons/modules/files/widgets/layouts/addons 로 시작되는 src나 href의 값을 절대경로로 변경 - $content = preg_replace('!(href|src)=("|\'){0,1}(commons|modules|widgets|layouts|addons|files)!is', '\\1=\\2'.$path.'\\3', $content); - $content = preg_replace('!(href|src)=("|\'){0,1}\.\/([a-zA-Z0-9\_^\/]+)\/!is', '\\1=\\2'.$path.'\\3/', $content); - // 출력하기 전에 trigger 호출 (after) ModuleHandler::triggerCall('display', 'after', $content); - if($this->gz_enabled) print ob_gzhandler($content, 5); else print $content; } diff --git a/classes/optimizer/Optimizer.class.php b/classes/optimizer/Optimizer.class.php index d2ca362e3..ef73c6757 100644 --- a/classes/optimizer/Optimizer.class.php +++ b/classes/optimizer/Optimizer.class.php @@ -124,6 +124,8 @@ $size = filesize($content_file); $mtime = filemtime($content_file); $class_mtime = filemtime("./classes/optimizer/Optimizer.class.php"); + + // js, css 파일을 php를 통해서 출력하고 이 출력시에 헤더값을 조작하여 캐싱과 압축전송이 되도록 함 (IE6는 CSS파일일 경우 gzip압축하지 않음) $header_buff = ''; FileHandler::writeFile($filename, $header_buff); } @@ -154,11 +174,14 @@ exit(); * @brief css의 경우 import/ background 등의 속성에서 사용되는 url내의 경로를 변경시켜줌 **/ function replaceCssPath($file, $str) { + // css 파일의 위치를 구함 $this->tmp_css_path = Context::getRequestUri().preg_replace("/^\.\//is","",dirname($file))."/"; - $str = preg_replace_callback('!url\(("|\')?([^\)]+)("|\')?\)!is', array($this, '_replaceCssPath'), $str); + // url() 로 되어 있는 css 파일의 경로를 변경 + $str = preg_replace_callback('!url\(("|\')?([^\)]+)("|\')?\)!is', array($this, '_replaceCssPath'), $str); $str = preg_replace('!\/([^\/]*)\/\.\.\/!is','/', $str); + // charset 지정 문구를 제거 $str = preg_replace('!@charset([^;]*?);!is','',$str); return $str;