diff --git a/modules/blog/blog.controller.php b/modules/blog/blog.controller.php index 65eca81e0..1a5c3934a 100644 --- a/modules/blog/blog.controller.php +++ b/modules/blog/blog.controller.php @@ -403,6 +403,9 @@ $args->group_srls = str_replace('|@|',',',$args->group_srls); $args->parent_srl = (int)$args->parent_srl; + $oDB = &DB::getInstance(); + $oDB->begin(); + // 이미 존재하는지를 확인 $oBlogModel = &getModel('blog'); $category_info = $oBlogModel->getCategoryInfo($args->category_srl); @@ -410,18 +413,42 @@ // 존재하게 되면 update를 해준다 if($category_info->category_srl == $args->category_srl) { $output = executeQuery('blog.updateCategory', $args); - if(!$output->toBool()) return $output; + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } + + $oDocumentController = &getController('document'); + $document_args->category_srl = $args->category_srl; + $document_args->title = $args->name ; + $output = $oDocumentController->updateCategory($document_args); + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } // 존재하지 않으면 insert를 해준다 } else { $args->listorder = -1*$args->category_srl; $output = executeQuery('blog.insertCategory', $args); - if(!$output->toBool()) return $output; + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } + + $oDocumentController = &getController('document'); + $output = $oDocumentController->insertCategory($args->module_srl, $args->name, $args->category_srl); + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } } // XML 파일을 갱신하고 위치을 넘겨 받음 $xml_file = $this->makeXmlFile($args->module_srl); + $oDB->commit(); + $this->add('xml_file', $xml_file); $this->add('module_srl', $args->module_srl); $this->add('category_srl', $args->category_srl); @@ -435,6 +462,9 @@ // 변수 정리 $args = Context::gets('module_srl','category_srl'); + $oDB = &DB::getInstance(); + $oDB->begin(); + $oBlogModel = &getModel('blog'); // 원정보를 가져옴 @@ -443,16 +473,35 @@ // 자식 노드가 있는지 체크하여 있으면 삭제 못한다는 에러 출력 $output = executeQuery('blog.getChildCategoryCount', $args); - if(!$output->toBool()) return $output; - if($output->data->count>0) return new Object(-1, 'msg_cannot_delete_for_child'); + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } + + if($output->data->count>0) { + $oDB->rollback(); + return new Object(-1, 'msg_cannot_delete_for_child'); + } // DB에서 삭제 $output = executeQuery("blog.deleteCategory", $args); - if(!$output->toBool()) return $output; + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } + + $oDocumentController = &getController('document'); + $output = $oDocumentController->deleteCategory($args->category_srl); + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } // XML 파일을 갱신하고 위치을 넘겨 받음 $xml_file = $this->makeXmlFile($args->module_srl); + $oDB->commit(); + $this->add('xml_file', $xml_file); $this->add('category_srl', $parent_srl); $this->setMessage('success_deleted'); diff --git a/modules/blog/blog.view.php b/modules/blog/blog.view.php index 8ee035470..b08612a05 100644 --- a/modules/blog/blog.view.php +++ b/modules/blog/blog.view.php @@ -88,14 +88,9 @@ if($this->grant->list) Context::set('rss_url', getUrl('','mid',$this->mid,'act','dispBlogRss')); // 카테고리 목록을 가져오고 선택된 카테고리의 값을 설정 - $oBlogModel = &getModel('blog'); - $category_list = $oBlogModel->getCategoryList($this->module_info->module_srl); - if(count($category_list)) { - foreach($category_list as $key => $val) { - $this->category_list[$val->category_srl] = $val; - } - Context::set('category_list', $this->category_list); - } + $oDocumentModel = &getModel('document'); + $this->category_list = $oDocumentModel->getCategoryList($this->module_srl); + Context::set('category_list', $this->category_list); $category_srl = Context::get('category'); if($this->category_list[$category_srl]) { diff --git a/modules/blog/skins/default/write_form.html b/modules/blog/skins/default/write_form.html index 9270f88ba..b5118a6bb 100644 --- a/modules/blog/skins/default/write_form.html +++ b/modules/blog/skins/default/write_form.html @@ -17,7 +17,7 @@ diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index b666f47b8..9e1523366 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -495,8 +495,9 @@ /** * @brief 카테고리 추가 **/ - function insertCategory($module_srl, $title) { - $args->list_order = $args->category_srl = getNextSequence(); + function insertCategory($module_srl, $title, $category_srl = 0) { + if(!$category_srl) $args->list_order = $args->category_srl = getNextSequence(); + else $args->list_order = $args->category_srl = $category_srl; $args->module_srl = $module_srl; $args->title = $title; $args->document_count = 0;