From fb52f9fa494b29137314925883c16a60867c2fbf Mon Sep 17 00:00:00 2001 From: zero Date: Tue, 29 May 2007 02:34:15 +0000 Subject: [PATCH] git-svn-id: http://xe-core.googlecode.com/svn/trunk@1489 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- .htaccess | 1 + addons/blogapi/blogapi.addon.php | 20 ++++++++++++++++++-- classes/context/Context.class.php | 7 ++----- classes/display/DisplayHandler.class.php | 19 ++++++++++++++++++- 4 files changed, 39 insertions(+), 8 deletions(-) diff --git a/.htaccess b/.htaccess index a7dbbfcfc..15eadb290 100644 --- a/.htaccess +++ b/.htaccess @@ -3,5 +3,6 @@ RewriteRule ^rss/([[:alnum:]]+)$ ./index.php?mid=$1&act=dispRss [L] RewriteRule ^trackback/([[:digit:]]+)$ ./index.php?module=trackback&act=procTrackbackReceive&document_srl=$1 [L] RewriteRule ^admin$ ./index.php?module=admin [L] RewriteRule ^([[:digit:]]+)$ ./index.php?document_srl=$1 [L] +RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$2 [L] RewriteRule ^([a-zA-Z0-9_]+)$ ./index.php?mid=$1 [L] RewriteRule ^blogapi/(.*)$ ./index.php?act=blogapi&mid=$1 [L] diff --git a/addons/blogapi/blogapi.addon.php b/addons/blogapi/blogapi.addon.php index 59510b6f6..275f6e700 100644 --- a/addons/blogapi/blogapi.addon.php +++ b/addons/blogapi/blogapi.addon.php @@ -1,5 +1,6 @@ methodcall->params->param; if($params && !is_array($params)) $params = array($params); + // blogger.deletePost일 경우 첫번째 인자 값 삭제 + if($method_name == 'blogger.deletePost') array_shift($params); + // user_id, password를 구해서 로그인 시도 $user_id = trim($params[1]->value->string->body); $password = trim($params[2]->value->string->body); @@ -142,10 +146,9 @@ $oFileController->insertFile($file_info, $this->module_srl, $document_srl, 0, true); } $obj->uploaded_count = $file_count; - $obj->content = str_replace($this->mid.'/{UPLOADED_PATH}',sprintf('./files/attach/images/%s/%s/%s', $this->module_srl, $document_srl, $filename), $obj->content); } } - + $obj->content = str_replace($this->mid.'/{UPLOADED_PATH}',sprintf('./files/attach/images/%s/%s/%s', $this->module_srl, $document_srl, $filename), $obj->content); $oDocumentController = &getController('document'); $output = $oDocumentController->insertDocument($obj); @@ -237,6 +240,19 @@ FileHandler::removeDir($tmp_uploaded_path); } break; + + // 글삭제 + case 'blogger.deletePost' : + $tmp_val = $params[0]->value->string->body; + $tmp_arr = explode('/', $tmp_val); + $document_srl = array_pop($tmp_arr); + + $oDocumentController = &getController('document'); + $output = $oDocumentController->deleteDocument($document_srl); + if(!$output->toBool()) $content = getXmlRpcFailure(1, $output->getMessage()); + else $content = getXmlRpcResponse(true); + + break; } } diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 857aa8865..fe72dc88b 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -487,11 +487,8 @@ $url_list[] = sprintf("%s=%s",$key, $val); } - preg_match("/([a-zA-Z\_]+)\.php/i", $_SERVER['PHP_SELF'], $match); - $filename = $match[0]; - if($filename == 'index.php') $filename = ''; - - return './'.$filename.'?'.htmlspecialchars(implode('&', $url_list)); + $path = str_replace('index.php','',$_SERVER['SCRIPT_NAME']); + return sprintf('%s?%s', $path, htmlspecialchars(implode('&',$url_list))); } /** diff --git a/classes/display/DisplayHandler.class.php b/classes/display/DisplayHandler.class.php index 1ec784ac1..b82e4c75e 100644 --- a/classes/display/DisplayHandler.class.php +++ b/classes/display/DisplayHandler.class.php @@ -56,8 +56,11 @@ // 최종 결과를 common_layout에 넣어버림 Context::set('zbxe_final_content', $zbxe_final_content); $output = $oTemplate->compile('./common/tpl', 'common_layout'); + } else { + $output = $content; + } // 애드온 실행 @@ -70,7 +73,21 @@ $this->_debugOutput(); // 컨텐츠 출력 - print trim($output); + $this->display($output); + } + + /** + * @brief 최종 결과물의 출력 + **/ + function display($content) { + if(Context::getResponseMethod()=="XMLRPC") { + print $content; + return; + } + + $path = str_replace('index.php','',$_SERVER['SCRIPT_NAME']); + + print preg_replace('!(href|src)=("|\'){0,1}\.\/([a-zA-Z0-9\_^\/]+)\/!is', '\\1=\\2'.$path.'$3/', $content); } /**