From e8ec53438c9374f732521000dced36596c5bb892 Mon Sep 17 00:00:00 2001 From: zero Date: Fri, 16 Jan 2009 04:53:11 +0000 Subject: [PATCH] =?UTF-8?q?=ED=99=94=EB=A9=B4=EC=97=90=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=EB=90=98=EB=8A=94=20=EC=BB=A8=ED=85=90=EC=B8=A0?= =?UTF-8?q?=EC=9D=98=20=EB=82=B4=EC=9A=A9=EC=A4=91=20rewrite=20mod=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=8B=9C=20=EC=83=81=EB=8C=80=EA=B2=BD?= =?UTF-8?q?=EB=A1=9C=EB=A1=9C=20=EC=9D=B8=ED=95=98=EC=97=AC=20=EB=B8=8C?= =?UTF-8?q?=EB=9D=BC=EC=9A=B0=EC=A0=80=20=EC=BA=90=EC=8B=9C=20=EC=97=86?= =?UTF-8?q?=EC=9D=B4=20=EA=B3=84=EC=86=8D=20=EC=9A=94=EC=B2=AD=EB=90=98?= =?UTF-8?q?=EB=8A=94=20=EA=B2=BD=EB=A1=9C=EB=A5=BC=20=EC=A0=9C=EB=8C=80?= =?UTF-8?q?=EB=A1=9C=20=ED=91=9C=EC=8B=9C=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= 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@5375 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- .../member_extra_info/member_extra_info.lib.php | 8 ++++---- classes/context/Context.class.php | 5 +++-- classes/optimizer/Optimizer.class.php | 15 +++++++++++++-- classes/template/TemplateHandler.class.php | 11 +++++------ config/config.inc.php | 4 +--- 5 files changed, 26 insertions(+), 17 deletions(-) diff --git a/addons/member_extra_info/member_extra_info.lib.php b/addons/member_extra_info/member_extra_info.lib.php index df1ab7f40..88ba3cce3 100644 --- a/addons/member_extra_info/member_extra_info.lib.php +++ b/addons/member_extra_info/member_extra_info.lib.php @@ -16,9 +16,9 @@ $GLOBALS['_transImageNameList'][$member_srl]->cached = true; $image_name_file = sprintf('files/member_extra_info/image_name/%s%d.gif', getNumberingPath($member_srl), $member_srl); $image_mark_file = sprintf('files/member_extra_info/image_mark/%s%d.gif', getNumberingPath($member_srl), $member_srl); - if(file_exists($image_name_file)) $GLOBALS['_transImageNameList'][$member_srl]->image_name_file = Context::getRequestUri().$image_name_file; + if(file_exists($image_name_file)) $GLOBALS['_transImageNameList'][$member_srl]->image_name_file = $image_name_file; else $image_name_file = ''; - if(file_exists($image_mark_file)) $GLOBALS['_transImageNameList'][$member_srl]->image_mark_file = Context::getRequestUri().$image_mark_file; + if(file_exists($image_mark_file)) $GLOBALS['_transImageNameList'][$member_srl]->image_mark_file = $image_mark_file; else $image_mark_file = ''; } else { $image_name_file = $GLOBALS['_transImageNameList'][$member_srl]->image_name_file; @@ -28,8 +28,8 @@ // 이미지이름이나 마크가 없으면 원본 정보를 세팅 if(!$image_name_file && !$image_mark_file) return $matches[0]; - if($image_name_file) $nick_name = sprintf('id: %s', $image_name_file, strip_tags($nick_name), strip_tags($nick_name)); - if($image_mark_file) $nick_name = sprintf('id: %s%s', $image_mark_file, strip_tags($nick_name), strip_tags($nick_name), $nick_name); + if($image_name_file) $nick_name = sprintf('id: %s', Context::getRequestUri(),$image_name_file, strip_tags($nick_name), strip_tags($nick_name)); + if($image_mark_file) $nick_name = sprintf('id: %s%s', Context::getRequestUri(),$image_mark_file, strip_tags($nick_name), strip_tags($nick_name), $nick_name); $orig_text = preg_replace('/'.preg_quote($matches[5],'/').'<\/'.$matches[6].'>$/', '', $matches[0]); return $orig_text.$nick_name.''; diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 401f09575..057ee4109 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -1203,8 +1203,9 @@ // 코드 변환 $content = preg_replace('/<(img|br)([^>\/]*)(\/>|>)/i','<$1$2 />', $content); - // 주소/?mid등과 같은 index.php가 명시되지 않은 파일의 target 변경 - //$content = str_replace(Context::getRequestUri().'?',Context::getRequestUri().'index.php?',$content); + // 이미지등의 잘못된 경로를 제거 + $content = str_replace(Context::getRequestUri().Context::get('mid').'/'.Context::get('act'),Context::getRequestUri(),$content); + $content = str_replace(Context::getRequestUri().Context::get('mid'),Context::getRequestUri(),$content); return $content; } diff --git a/classes/optimizer/Optimizer.class.php b/classes/optimizer/Optimizer.class.php index 376279249..ba6d603eb 100644 --- a/classes/optimizer/Optimizer.class.php +++ b/classes/optimizer/Optimizer.class.php @@ -66,7 +66,13 @@ array_unshift($files, array('file' => $path.'/'.$filename, 'media' => 'all')); - return $this->_getOptimizedRemoved($files); + $files = $this->_getOptimizedRemoved($files); + if(!count($files)) return $files; + + foreach($files as $key => $val) { + if(substr($val['file'],0,2)=='./') $files[$key]['file'] = Context::getRequestUri().substr($val['file'],2); + } + return $files; } /** @@ -208,10 +214,15 @@ if(!$cached) { } function _replaceCssPath($matches) { + static $abpath = null; + if(is_null($abpath)) { + $url_info = parse_url(Context::getRequestUri()); + $abpath = $url_info['path']; + } $path = str_replace(array('"',"'"),'',$matches[1]); if(preg_match('/^http|^\//i', $path) || preg_match('/\.htc$/i',$path) ) return $matches[0]; - return 'url("../../../../'.$this->tmp_css_path.$path.'")'; + return 'url("'.$abpath.$this->tmp_css_path.$path.'")'; } } diff --git a/classes/template/TemplateHandler.class.php b/classes/template/TemplateHandler.class.php index dd7f2e1a5..b00d16a0d 100644 --- a/classes/template/TemplateHandler.class.php +++ b/classes/template/TemplateHandler.class.php @@ -47,7 +47,7 @@ // tpl_file이 비어 있거나 해당 파일이 없으면 return if(!$tpl_file || !file_exists(FileHandler::getRealPath($tpl_file))) return; - $this->tpl_path = $tpl_path; + $this->tpl_path = preg_replace('/^\.\//','',$tpl_path); $this->tpl_file = $tpl_file; // compiled된(or 될) 파일이름을 구함 @@ -155,12 +155,11 @@ $str1 = $matches[0]; $str2 = $path = $matches[3]; - if(!preg_match('/^([a-z0-9\_\.])/i',$path)) return $str1; + if(substr($path,0,1)=='/') return $str1; - $path = preg_replace('/^(\.\/|\/)/','',$path); - $path = 'tpl_path?>'.$path; - $output = str_replace($str2, $path, $str1); - return $output; + if(substr($path,0,2)=='./') $path = substr($path,2); + $path = 'tpl_path; ?>'.$path; + return str_replace($str2, $path, $str1); } /** diff --git a/config/config.inc.php b/config/config.inc.php index 9b91606b1..39d6475e1 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -27,8 +27,6 @@ require _XE_PATH_.'config/config.user.inc.php'; } - - /** * @brief 디버깅 메시지 출력 (비트 값) * 0 : 디버그 메시지를 생성/ 출력하지 않음 @@ -113,4 +111,4 @@ require_once(_XE_PATH_.'classes/template/TemplateHandler.class.php'); require_once(_XE_PATH_.'classes/mail/Mail.class.php'); if(__DEBUG__) $GLOBALS['__elapsed_class_load__'] = getMicroTime() - __ClassLoadStartTime__; -?> \ No newline at end of file +?>