git-svn-id: http://xe-core.googlecode.com/svn/trunk@169 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-02-23 05:10:04 +00:00
parent f2906e4e0d
commit 4d87dc94e8
10 changed files with 112 additions and 85 deletions

View file

@ -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

View file

@ -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());

View file

@ -19,9 +19,9 @@
<!--@end-->
</div>
<!--@if($mo && $module_info)-->
<!--@if($selected_module_info)-->
<div id="admin_module_info">
<a href="#" onclick="location.href='{getUrl('mo', $mo, 'act', $module_info->admin_index_act)}'">{$module_info->title}</a> (ver {$module_info->version})
<a href="#" onclick="location.href='{getUrl('mo', $mo, 'act', $module_info->admin_index_act)}'">{$selected_module_info->title}</a> (ver {$selected_module_info->version})
</div>
<!--@end-->

View file

@ -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 "<script type=\"text/javascript\">location.href=\"".$url."\";</script>";
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;
}

View file

@ -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 "<pre>";
print_r($skin_info);
print "</pre>";
// 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);

View file

@ -27,8 +27,8 @@
<th rowspan="2">{$lang->skin}</th>
<td>
<select name="skin">
<!--@foreach($skins as $key=>$val)-->
<option value="{$val}">{$val}</option>
<!--@foreach($skin_list as $key=>$val)-->
<option value="{$val}" <!--@if($module_info->skin==$val)-->selected="true"<!--@end-->>{$val}</option>
<!--@end-->
</select>
</td>

View file

@ -1,6 +1,5 @@
<filter name="insert_board" module="board" act="procInsertboard" confirm_msg_code="confirm_submit">
<form>
<node target="act" required="true" />
<node target="mid" required="true" filter="alpha_number" />
<node target="browser_title" required="true" maxlength="250" />
</form>

View file

@ -16,19 +16,19 @@
</tr>
<!--@foreach($grant_list as $key => $val)-->
<tr>
<td>{$lang->grant_title[$val]}</td>
<td>{$val->title}</td>
<td>
<div>
<!--@foreach($group_list as $k => $v)-->
<span>
<input type="checkbox" name="{$val}" value="{$v->group_srl}" id="grant_{$val}_{$v->group_srl}" <!--@if(is_array($module_info->grant)&&in_array($v->group_srl,$module_info->grant[$val]))-->checked="true"<!--@end-->/>
<label for="grant_{$val}_{$v->group_srl}">{$v->title}</label>
<input type="checkbox" name="{$key}" value="{$v->group_srl}" id="grant_{$key}_{$v->group_srl}" <!--@if(is_array($module_info->grant)&&in_array($v->group_srl,$module_info->grant[$key]))-->checked="true"<!--@end-->/>
<label for="grant_{$key}_{$v->group_srl}">{$v->title}</label>
</span>
<!--@end-->
</div>
<div>
<input type="button" value="{$lang->cmd_select_all}" onclick="doSelectAll(this, '{$val}')"/>
<input type="button" value="{$lang->cmd_unselect_all}" onclick="doUnSelectAll(this, '{$val}')"/>
<input type="button" value="{$lang->cmd_select_all}" onclick="doSelectAll(this, '{$key}')"/>
<input type="button" value="{$lang->cmd_unselect_all}" onclick="doUnSelectAll(this, '{$key}')"/>
</div>
</td>
</tr>

View file

@ -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;
}

View file

@ -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);