diff --git a/modules/blog/blog.controller.php b/modules/blog/blog.controller.php index 1a5c3934a..71ec518aa 100644 --- a/modules/blog/blog.controller.php +++ b/modules/blog/blog.controller.php @@ -325,11 +325,13 @@ // 기본 값외의 것들을 정리 $extra_var = delObjectVars(Context::getRequestVars(), $args); - unset($extra_var->mo); unset($extra_var->act); unset($extra_var->page); unset($extra_var->blog_name); + $oDB = &DB::getInstance(); + $oDB->begin(); + // module_srl이 넘어오면 원 모듈이 있는지 확인 if($args->module_srl) { $oModuleModel = &getModel('module'); @@ -350,8 +352,12 @@ // module_srl의 값에 따라 insert/update if(!$args->module_srl) { + // 블로그 등록 $output = $oModuleController->insertModule($args); - $msg_code = 'success_registed'; + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } // 글작성, 파일첨부, 댓글 파일첨부, 관리에 대한 권한 지정 if($output->toBool()) { @@ -362,14 +368,52 @@ $module_srl = $output->get('module_srl'); $grants = serialize(array('write_document'=>array($admin_group_srl), 'fileupload'=>array($admin_group_srl), 'comment_fileupload'=>array($admin_group_srl), 'manager'=>array($admin_group_srl))); - $oModuleController->updateModuleGrant($module_srl, $grants); + $output = $oModuleController->updateModuleGrant($module_srl, $grants); + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } } + + // 레이아웃 등록 + $layout_args->layout_srl = $layout_args->module_srl = $module_srl; + $layout_args->layout = 'blog'; + $layout_args->title = sprintf('%s (%s)',$args->browser_title, $args->mid); + $layout_args->layout_path = sprintf('./modules/blog/skin/%s/layout.html', $args->skin); + + $oLayoutController = &getController('layout'); + $output = $oLayoutController->insertLayout($layout_args); + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } + + $msg_code = 'success_registed'; } else { + // 블로그 데이터 수정 $output = $oModuleController->updateModule($args); + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } + + // 레이아웃 수정 + $layout_args->layout_srl = $layout_args->module_srl = $module_srl; + $layout_args->title = $args->browser_title; + $layout_args->extra_vars = $args->extra_vars; + $layout_args->layout_path = sprintf('./modules/blog/skin/%s/layout.html', $args->skin); + + $oLayoutController = &getController('layout'); + $output = $oLayoutController->updateLayout($layout_args); + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } + $msg_code = 'success_updated'; } - if(!$output->toBool()) return $output; + $oDB->commit(); $this->add('page',Context::get('page')); $this->add('module_srl',$output->get('module_srl')); @@ -382,10 +426,28 @@ function procBlogAdminDeleteBlog() { $module_srl = Context::get('module_srl'); + $oDB = &DB::getInstance(); + $oDB->begin(); + // 원본을 구해온다 $oModuleController = &getController('module'); $output = $oModuleController->deleteModule($module_srl); - if(!$output->toBool()) return $output; + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } + + // 레이아웃 삭제 + $layout_args->layout_srl = $layout_args->module_srl = $module_srl; + + $oLayoutController = &getController('layout'); + $output = $oLayoutController->deleteLayout($layout_args); + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } + + $oDB->commit(); $this->add('module','blog'); $this->add('page',Context::get('page')); diff --git a/modules/layout/layout.controller.php b/modules/layout/layout.controller.php index c6a06f05a..ddc712483 100644 --- a/modules/layout/layout.controller.php +++ b/modules/layout/layout.controller.php @@ -22,12 +22,17 @@ $args->layout = Context::get('layout'); $args->title = Context::get('title'); - $output = executeQuery("layout.insertLayout", $args); + $output = $this->insertLayout($args); if(!$output->toBool()) return $output; $this->add('layout_srl', $args->layout_srl); } + function insertLayout($args) { + $output = executeQuery("layout.insertLayout", $args); + return $output; + } + /** * @brief 레이아웃 정보 변경 * 생성된 레이아웃의 제목과 확장변수(extra_vars)를 적용한다 @@ -70,13 +75,17 @@ // DB에 입력하기 위한 변수 설정 $args->extra_vars = serialize($extra_vars); - - $output = executeQuery('layout.updateLayout', $args); + $output = $this->updateLayout($args); if(!$output->toBool()) return $output; $this->setMessage('success_updated'); } + function updateLayout($args) { + $output = executeQuery('layout.updateLayout', $args); + return $output; + } + /** * @brief 레이아웃 삭제 * 삭제시 메뉴 xml 캐시 파일도 삭제 @@ -95,11 +104,16 @@ // 레이아웃 삭제 $args->layout_srl = $layout_srl; - $output = executeQuery("layout.deleteLayout", $args); + + $output = $this->deleteLayout($args); if(!$output->toBool()) return $output; $this->setMessage('success_deleted'); } + function deleteLayout($args) { + $output = executeQuery("layout.deleteLayout", $args); + return $output; + } } ?> diff --git a/modules/layout/queries/insertLayout.xml b/modules/layout/queries/insertLayout.xml index a4a175b60..a191a1923 100644 --- a/modules/layout/queries/insertLayout.xml +++ b/modules/layout/queries/insertLayout.xml @@ -6,6 +6,8 @@ + + diff --git a/modules/layout/queries/updateLayout.xml b/modules/layout/queries/updateLayout.xml index 722801b69..8af542eba 100644 --- a/modules/layout/queries/updateLayout.xml +++ b/modules/layout/queries/updateLayout.xml @@ -5,6 +5,7 @@ + diff --git a/modules/layout/schemas/layouts.xml b/modules/layout/schemas/layouts.xml index ab8d89b2b..c28425343 100644 --- a/modules/layout/schemas/layouts.xml +++ b/modules/layout/schemas/layouts.xml @@ -3,5 +3,7 @@ + + diff --git a/modules/layout/tpl/index.html b/modules/layout/tpl/index.html index 5dcc2be58..9db90ab93 100644 --- a/modules/layout/tpl/index.html +++ b/modules/layout/tpl/index.html @@ -25,10 +25,25 @@ {$no+1} - {$val->layout} - {htmlspecialchars($val->title)} + + {$val->layout} + + (module) + + + + + {htmlspecialchars($val->title)} + + {htmlspecialchars($val->title)} + + {zdate($val->regdate,"Y-m-d")} - {$lang->cmd_delete} + + + {$lang->cmd_delete} + + diff --git a/modules/module/queries/insertModule.xml b/modules/module/queries/insertModule.xml index 6f5414689..d25c69c38 100644 --- a/modules/module/queries/insertModule.xml +++ b/modules/module/queries/insertModule.xml @@ -8,7 +8,7 @@ - + diff --git a/modules/module/queries/updateModule.xml b/modules/module/queries/updateModule.xml index 0e295f2d7..e77655ee0 100644 --- a/modules/module/queries/updateModule.xml +++ b/modules/module/queries/updateModule.xml @@ -7,7 +7,7 @@ - +