From 4d87dc94e83107c69cef291c4997fd0ee851724d Mon Sep 17 00:00:00 2001 From: zero Date: Fri, 23 Feb 2007 05:10:04 +0000 Subject: [PATCH] git-svn-id: http://xe-core.googlecode.com/svn/trunk@169 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- config/config.inc.php | 2 +- modules/admin/admin.view.php | 2 +- modules/admin/tpl/layout.html | 4 +- modules/board/board.controller.php | 64 +++++------ modules/board/board.view.php | 104 +++++++++++------- modules/board/tpl.admin/board_insert.html | 4 +- .../board/tpl.admin/filter/insert_board.xml | 1 - modules/board/tpl.admin/grant_list.html | 10 +- modules/board/tpl.admin/js/admin.js | 4 +- modules/module/module.model.php | 2 +- 10 files changed, 112 insertions(+), 85 deletions(-) diff --git a/config/config.inc.php b/config/config.inc.php index b3e18ff9e..b245bef4b 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -18,7 +18,7 @@ /** * @brief debug mode = true 일때 files/_debug_message.php 에 디버그 내용이 쌓임 **/ - define('__DEBUG__', true); + define('__DEBUG__', false); if(__DEBUG__) { // php5이상이면 error handling을 handleError() 로 set diff --git a/modules/admin/admin.view.php b/modules/admin/admin.view.php index 31888d1c3..f1ecb298b 100644 --- a/modules/admin/admin.view.php +++ b/modules/admin/admin.view.php @@ -54,7 +54,7 @@ // 모듈의 타이틀 값을 구해옴 $oModuleModel = &getModel('module'); $module_info = $oModuleModel->getModuleInfoXml($mo); - Context::set('module_info', $module_info); + Context::set('selected_module_info', $module_info); // 해당 모듈의 template path, file을 가로챔 $this->setTemplatePath($oModule->getTemplatePath()); diff --git a/modules/admin/tpl/layout.html b/modules/admin/tpl/layout.html index 0cfe24ec5..6678c1b6c 100644 --- a/modules/admin/tpl/layout.html +++ b/modules/admin/tpl/layout.html @@ -19,9 +19,9 @@ - +
- {$module_info->title} (ver {$module_info->version}) + {$selected_module_info->title} (ver {$selected_module_info->version})
diff --git a/modules/board/board.controller.php b/modules/board/board.controller.php index 08f19da9f..47ad0e4f7 100644 --- a/modules/board/board.controller.php +++ b/modules/board/board.controller.php @@ -326,8 +326,8 @@ $module_srl = Context::get('module_srl'); // 현 모듈의 권한 목록을 가져옴 - $oBoardView = &getModule('view'); - $grant_list = $oBoardView->grant_list; + $oBoardModel = &getModel('board'); + $grant_list = $oBoardModel->grant_list; if(count($grant_list)) { foreach($grant_list as $grant) { @@ -337,11 +337,11 @@ $grant = serialize($arr_grant); } - $oModule = &getModule('module_manager'); - $oModule->updateModuleGrant($module_srl, $grant); + $oModuleController = &getController('module'); + $oModuleController->updateModuleGrant($module_srl, $grant); - $this->add('mo','board'); - $this->add('act','dispGrantInfo'); + $this->add('module','board'); + $this->add('act','dispAdminGrantInfo'); $this->add('page',Context::get('page')); $this->add('module_srl',Context::get('module_srl')); $this->setMessage('success_registed'); @@ -353,13 +353,12 @@ function procUpdateSkinInfo() { // module_srl에 해당하는 정보들을 가져오기 $module_srl = Context::get('module_srl'); - $oModule = &getModule('module_manager'); - $module_info = $oModule->getModuleInfoByModuleSrl($module_srl); + $oModuleModel = &getModel('module'); + $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl); $skin = $module_info->skin; - // 스킨의 정볼르 구해옴 (extra_vars를 체크하기 위해서) - $oModule = &getModule('module_manager'); - $skin_info = $oModule->loadSkinInfo($this->module_path, $skin); + // 스킨의 정보르 구해옴 (extra_vars를 체크하기 위해서) + $skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin); // 입력받은 변수들을 체크 (mo, act, module_srl, page등 기본적인 변수들 없앰) $obj = Context::getRequestVars(); @@ -424,10 +423,10 @@ // serialize하여 저장 $extra_vars = serialize($obj); - $oModule = &getModule('module_manager'); - $oModule->updateModuleExtraVars($module_srl, $extra_vars); + $oModuleController = &getController('module'); + $oModuleController->updateModuleExtraVars($module_srl, $extra_vars); - $url = sprintf("./admin.php?mo=%s&module_srl=%s&act=dispSkinInfo&page=%s", 'board', $module_srl, Context::get('page')); + $url = sprintf("./?module=admin&mo=board&module_srl=%s&act=dispAdminSkinInfo&page=%s", $module_srl, Context::get('page')); print ""; exit(); } @@ -449,11 +448,11 @@ unset($extra_var->page); // module_srl이 있으면 원본을 구해온다 - $oModule = &getModule('module_manager'); + $oModuleModel = &getModel('model'); // module_srl이 넘어오면 원 모듈이 있는지 확인 if($args->module_srl) { - $module_info = $oModule->getModuleInfoByModuleSrl($args->module_srl); + $module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl); // 만약 원래 모듈이 없으면 새로 입력하기 위한 처리 if($module_info->module_srl != $args->module_srl) unset($args->module_srl); } @@ -475,8 +474,8 @@ if(!$output->toBool()) return $output; - $this->add('mo','board'); - $this->add('act','dispInfo'); + $this->add('module','board'); + $this->add('act','dispAdminBoardInfo'); $this->add('page',Context::get('page')); $this->add('module_srl',$output->get('module_srl')); $this->setMessage($msg_code); @@ -489,12 +488,12 @@ $module_srl = Context::get('module_srl'); // 원본을 구해온다 - $oModule = &getModule('module_manager'); - $output = $oModule->deleteModule($module_srl); + $oModuleModel = &getModel('module'); + $output = $oModuleModel->deleteModule($module_srl); if(!$output->toBool()) return $output; - $this->add('mo','board'); - $this->add('act','dispContent'); + $this->add('module','board'); + $this->add('act','dispAdminContent'); $this->add('page',Context::get('page')); $this->setMessage('success_deleted'); } @@ -508,12 +507,12 @@ $category_title = Context::get('category_title'); // module_srl이 있으면 원본을 구해온다 - $oDocument = &getModule('document'); - $output = $oDocument->insertCategory($module_srl, $category_title); + $oDocumentModel = &getModel('document'); + $output = $oDocumentModel->insertCategory($module_srl, $category_title); if(!$output->toBool()) return $output; - $this->add('mo','board'); - $this->add('act','dispCategoryInfo'); + $this->add('module','board'); + $this->add('act','dispAdminCategoryInfo'); $this->add('page',Context::get('page')); $this->add('module_srl',$module_srl); $this->setMessage('success_registed'); @@ -526,27 +525,28 @@ $category_srl = Context::get('category_srl'); $mode = Context::get('mode'); - $oDocument = &getModule('document'); + $oDocumentModel = &getModel('document'); + $oDocumentController = &getController('document'); switch($mode) { case 'up' : - $output = $oDocument->moveCategoryUp($category_srl); + $output = $oDocumentController->moveCategoryUp($category_srl); $msg_code = 'success_moved'; break; case 'down' : - $output = $oDocument->moveCategoryDown($category_srl); + $output = $oDocumentController->moveCategoryDown($category_srl); $msg_code = 'success_moved'; break; case 'delete' : - $output = $oDocument->deleteCategory($category_srl); + $output = $oDocumentController->deleteCategory($category_srl); $msg_code = 'success_deleted'; break; case 'update' : - $selected_category = $oDocument->getCategory($category_srl); + $selected_category = $oDocumentModel->getCategory($category_srl); $args->category_srl = $selected_category->category_srl; $args->title = Context::get('category_title'); $args->list_order = $selected_category->list_order; - $output = $oDocument->updateCategory($args); + $output = $oDocumentController->updateCategory($args); $msg_code = 'success_updated'; break; } diff --git a/modules/board/board.view.php b/modules/board/board.view.php index 9a7273359..9d5f920da 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -9,31 +9,55 @@ /** * @brief 초기화 + * + * board 모듈은 일반 사용과 관리자용으로 나누어진다.\n + * act값의 앞에 dispAdmin이 있으면 관리자용 action으로 취급해버림 **/ function init() { - // 카테고리를 사용하는지 확인후 사용시 카테고리 목록을 구해와서 Context에 세팅 - if($this->module_info->use_category=='Y') { - $oDocumentModel = &getModel('document'); - $this->category_list = $oDocumentModel->getCategoryList($this->module_srl); - Context::set('category_list', $this->category_list); - } - // 에디터 세팅 - Context::set('editor', $this->editor); - $editor_path = sprintf("./editor/%s/", $this->editor); - Context::set('editor_path', $editor_path); - Context::loadLang($editor_path); - - // act 값에 dispAdmin이 있으면 tpl.admin 으로 템플릿 경로 지정 + // 관리자용 action일때 if(substr($this->act,0,9)=='dispAdmin') { - $template_path = sprintf("%stpl.admin/",$this->module_path); - } else { - $template_path = sprintf("%sskins/%s/",$this->module_path, $this->skin); - } - $this->setTemplatePath($template_path); - // 몇가지 템플릿에서 사용할 변수를 Context::set() - if($this->module_srl) Context::set('module_srl',$this->module_srl); + // 템플릿 경로 지정 (board의 경우 tpl.admin에 관리자용 템플릿 모아놓음) + $template_path = sprintf("%stpl.admin/",$this->module_path); + + // module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅 + $module_srl = Context::get('module_srl'); + + if($module_srl) { + $oModuleModel = &getModel('module'); + $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl); + if(!$module_info) { + Context::set('module_srl',''); + $this->act = 'list'; + } else Context::set('module_info',$module_info); + } + + // 일반 action일 경우 + } else { + + // 카테고리를 사용하는지 확인후 사용시 카테고리 목록을 구해와서 Context에 세팅 + if($this->module_info->use_category=='Y') { + $oDocumentModel = &getModel('document'); + $this->category_list = $oDocumentModel->getCategoryList($this->module_srl); + Context::set('category_list', $this->category_list); + } + + // 에디터 세팅 + Context::set('editor', $this->editor); + $editor_path = sprintf("./editor/%s/", $this->editor); + Context::set('editor_path', $editor_path); + Context::loadLang($editor_path); + + // 스킨 템플릿 경로 구함 + $template_path = sprintf("%sskins/%s/",$this->module_path, $this->skin); + + // 템플릿에서 사용할 변수를 Context::set() + if($this->module_srl) Context::set('module_srl',$this->module_srl); + } + + // 템플릿 경로 지정 + $this->setTemplatePath($template_path); } /** @@ -341,18 +365,6 @@ * @brief 게시판 관리 목록 보여줌 **/ function dispAdminContent() { - // module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅 - $module_srl = Context::get('module_srl'); - - if($module_srl) { - $oModuleModel = &getModel('module'); - $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl); - if(!$module_info) { - Context::set('module_srl',''); - $this->act = 'list'; - } else Context::set('module_info',$module_info); - } - // 등록된 board 모듈을 불러와 세팅 $oDB = &DB::getInstance(); $args->sort_index = "module_srl"; @@ -394,6 +406,11 @@ * @brief 게시판 추가 폼 출력 **/ function dispAdminInsertBoard() { + // 스킨 목록을 구해옴 + $oModuleModel = &getModel('module'); + $skin_list = $oModuleModel->getSkins($this->module_path); + Context::set('skin_list',$skin_list); + // 템플릿 파일 지정 $this->setTemplateFile('board_insert'); } @@ -425,7 +442,10 @@ $skin = $module_info->skin; $oModuleModel = &getModel('module'); - $skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin); + $skin_info = $oModuleModel->loadSkinInfo($this->module, $skin); + print "
";
+            print_r($skin_info);
+            print "
"; // skin_info에 extra_vars 값을 지정 if(count($skin_info->extra_vars)) { @@ -446,6 +466,7 @@ * @brief 카테고리의 정보 출력 **/ function dispAdminCategoryInfo() { + // module_srl을 구함 $module_srl = Context::get('module_srl'); // 카테고리의 목록을 구해옴 @@ -455,13 +476,20 @@ // 수정하려는 카테고리가 있다면해당 카테고리의 정보를 가져옴 $category_srl = Context::get('category_srl'); + if($category_srl) { - $selected_category = $oDocument->getCategory($category_srl); + + $selected_category = $oDocumentModel->getCategory($category_srl); + if(!$selected_category) Context::set('category_srl',''); - else Context::set('selected_category',$selected_category); + else Context::set('selected_category',$selected_category); + $this->setTemplateFile('category_update_form'); + } else { + $this->setTemplateFile('category_list'); + } } @@ -469,11 +497,11 @@ * @brief 권한 목록 출력 **/ function dispAdminGrantInfo() { + // module_srl을 구함 $module_srl = Context::get('module_srl'); - // 현 모듈의 권한 목록을 가져옴 - $oBoardModel = &getModel('board'); - $grant_list = $oBoardModel->grant_list; + // module.xml에서 권한 관련 목록을 구해옴 + $grant_list = $this->xml_info->grant; // 권한 목록 세팅 Context::set('grant_list', $grant_list); diff --git a/modules/board/tpl.admin/board_insert.html b/modules/board/tpl.admin/board_insert.html index 4a3cce2c2..70fce678e 100644 --- a/modules/board/tpl.admin/board_insert.html +++ b/modules/board/tpl.admin/board_insert.html @@ -27,8 +27,8 @@ {$lang->skin} diff --git a/modules/board/tpl.admin/filter/insert_board.xml b/modules/board/tpl.admin/filter/insert_board.xml index 10a083cde..7208cecbc 100644 --- a/modules/board/tpl.admin/filter/insert_board.xml +++ b/modules/board/tpl.admin/filter/insert_board.xml @@ -1,6 +1,5 @@
- diff --git a/modules/board/tpl.admin/grant_list.html b/modules/board/tpl.admin/grant_list.html index 74487e0a5..b67984047 100644 --- a/modules/board/tpl.admin/grant_list.html +++ b/modules/board/tpl.admin/grant_list.html @@ -16,19 +16,19 @@ - {$lang->grant_title[$val]} + {$val->title}
- grant)&&in_array($v->group_srl,$module_info->grant[$val]))-->checked="true"/> - + grant)&&in_array($v->group_srl,$module_info->grant[$key]))-->checked="true"/> +
- - + +
diff --git a/modules/board/tpl.admin/js/admin.js b/modules/board/tpl.admin/js/admin.js index 1f0d47a3a..d8d35ad33 100644 --- a/modules/board/tpl.admin/js/admin.js +++ b/modules/board/tpl.admin/js/admin.js @@ -9,14 +9,14 @@ function completeBoardInsert(ret_obj) { var error = ret_obj['error']; var message = ret_obj['message']; - var mo = ret_obj['mo']; + var module = ret_obj['module']; var act = ret_obj['act']; var page = ret_obj['page']; var module_srl = ret_obj['module_srl']; alert(message); - var url = "./?module=admin&mo="+mo+"&module_srl="+module_srl+"&page="+page+"&act="+act; + var url = "./?module=admin&mo="+module+"&module_srl="+module_srl+"&page="+page+"&act="+act; location.href = url; } diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 7447d1996..f46214638 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -104,7 +104,7 @@ function loadSkinInfo($module, $skin) { // 등록하려는 모듈의 path를 구함 - $module_path = ModuleHandler::getModulePath($args->module); + $module_path = ModuleHandler::getModulePath($module); // 모듈의 스킨의 정보 xml 파일을 읽음 $skin_xml_file = sprintf("%sskins/%s/skin.xml", $module_path, $skin);