1. 에디터 모듈의 추가 설정 부분을 확장하여 업로드 권한/컴포넌트/기본컴포넌트/html사용등의 권한과 에디터 높이/스킨등을 상세히 설정할 수 있도록 기능 추가.

2. 게시판 모듈(board)의 경우 기본 설정 - 추가 설정 - 권한 설정을 여러개의 게시판에 대해서 일괄 적용할 수 있도록 기능 추가


git-svn-id: http://xe-core.googlecode.com/svn/sandbox@3519 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2008-01-14 08:58:27 +00:00
parent 77195b282a
commit 62ff4b1fae
54 changed files with 710 additions and 230 deletions

View file

@ -125,6 +125,43 @@
* @brief 게시판 추가
**/
function procBoardAdminInsertBoard($args = null) {
// module 모듈의 model/controller 객체 생성
$oModuleController = &getController('module');
$oModuleModel = &getModel('module');
// 만약 module_srl이 , 로 연결되어 있다면 일괄 정보 수정으로 처리
if(preg_match('/^([0-9,]+)$/',Context::get('module_srl'))) {
// 대상 모듈들을 구해옴
$modules = $oModuleModel->getModulesInfo(Context::get('module_srl'));
$args = Context::getRequestVars();
for($i=0;$i<count($modules);$i++) {
$obj = $extra_vars = null;
$obj = $modules[$i];
$extra_vars = unserialize($obj->extra_vars);
$obj->module_category_srl = $args->module_category_srl;
$obj->layout_srl = $args->layout_srl;
$obj->skin = $args->skin;
$obj->description = $args->description;
$obj->header_text = $args->header_text;
$obj->footer_text = $args->footer_text;
$obj->admin_id = $args->admin_id;
$extra_vars->use_category = $args->use_category=='Y'?'Y':'N';
$extra_vars->list_count = $args->list_count;
$extra_vars->page_count = $args->page_count;
$obj->extra_vars = serialize($extra_vars);
$output = $oModuleController->updateModule($obj);
if(!$output->toBool()) return $output;
}
return new Object(0,'success_updated');
}
// 일단 입력된 값들을 모두 받아서 db 입력항목과 그외 것으로 분리
if(!$args) {
$args = Context::gets('module_srl','module_category_srl','board_name','layout_srl','skin','browser_title','description','is_default','header_text','footer_text','admin_id');
@ -158,7 +195,6 @@
// module_srl이 넘어오면 원 모듈이 있는지 확인
if($args->module_srl) {
$oModuleModel = &getModel('module');
$module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl);
// 만약 원래 모듈이 없으면 새로 입력하기 위한 처리
@ -168,9 +204,6 @@
// $extra_var를 serialize
$args->extra_vars = serialize($extra_var);
// module 모듈의 controller 객체 생성
$oModuleController = &getController('module');
// is_default=='Y' 이면
if($args->is_default=='Y') $oModuleController->clearDefaultModule();
@ -186,7 +219,7 @@
$admin_group_srl = $admin_group->group_srl;
$module_srl = $output->get('module_srl');
$grants = serialize(array('fileupload'=>array($admin_group_srl), 'comment_fileupload'=>array($admin_group_srl), 'manager'=>array($admin_group_srl)));
$grants = serialize(array('manager'=>array($admin_group_srl)));
$oModuleController->updateModuleGrant($module_srl, $grants);
}

View file

@ -211,15 +211,7 @@
// 에디터 모듈의 getEditor를 호출하여 세팅
$oEditorModel = &getModel('editor');
$option->primary_key_name = 'document_srl';
$option->content_key_name = 'content';
$option->allow_fileupload = $this->grant->fileupload;
$option->enable_autosave = true;
$option->enable_default_component = true;
$option->enable_component = true;
$option->resizable = true;
$option->height = 400;
$editor = $oEditorModel->getEditor($document_srl, $option);
$editor = $oEditorModel->getModuleEditor('document', $this->module_srl, $document_srl, 'document_srl', 'content');
Context::set('editor', $editor);
// 확장변수처리를 위해 xml_js_filter를 직접 header에 적용
@ -390,18 +382,9 @@
function setCommentEditor($comment_srl = 0, $height = 100) {
Context::set('comment_srl', $comment_srl);
// 에디터 모듈의 getEditor를 호출하여 세팅
$oEditorModel = &getModel('editor');
$option->primary_key_name = 'comment_srl';
$option->content_key_name = 'content';
$option->allow_fileupload = $this->grant->comment_fileupload;
$option->enable_autosave = false;
$option->enable_default_component = true;
$option->enable_component = true;
$option->resizable = true;
$option->height = $height;
$comment_editor = $oEditorModel->getEditor($comment_srl, $option);
Context::set('comment_editor', $comment_editor);
$editor = $oEditorModel->getModuleEditor('comment', $this->module_srl, $comment_srl, 'comment_srl', 'content');
Context::set('comment_editor', $editor);
}
/**

View file

@ -25,18 +25,6 @@
<title xml:lang="jp">コメント作成</title>
<title xml:lang="en">write comment</title>
</grant>
<grant name="fileupload" default="guest">
<title xml:lang="ko">파일 첨부</title>
<title xml:lang="zh-CN">附件</title>
<title xml:lang="jp">ファイル添付</title>
<title xml:lang="en">file upload</title>
</grant>
<grant name="comment_fileupload" default="guest">
<title xml:lang="ko">댓글 파일 첨부</title>
<title xml:lang="zh-CN">评论附件</title>
<title xml:lang="jp">コメントファイル添付</title>
<title xml:lang="en">comment file upload</title>
</grant>
<grant name="manager" default="root">
<title xml:lang="ko">관리</title>
<title xml:lang="zh-CN">管理</title>

View file

@ -25,7 +25,7 @@
<!--%import("filter/insert_comment.xml")-->
<div class="boardWrite">
<form action="./" method="post" onsubmit="return procFilter(this, insert_comment)" <!--@if($grant->fileupload)-->enctype="multipart/form-data"<!--@end--> class="boardEditor" id="fo_comment_write" >
<form action="./" method="post" onsubmit="return procFilter(this, insert_comment)" class="boardEditor" id="fo_comment_write" >
<fieldset>
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$oComment->get('document_srl')}" />

View file

@ -147,7 +147,7 @@
<!--%import("filter/insert_comment.xml")-->
<div class="boardWrite">
<form action="./" method="post" onsubmit="return procFilter(this, insert_comment)" <!--@if($grant->fileupload)-->enctype="multipart/form-data"<!--@end--> class="boardEditor" id="fo_comment_write" >
<form action="./" method="post" onsubmit="return procFilter(this, insert_comment)" class="boardEditor" id="fo_comment_write" >
<fieldset>
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />

View file

@ -2,7 +2,7 @@
<!--#include("header.html")-->
<div class="boardWrite bottomBorder">
<form action="./" method="post" onsubmit="return procFilter(this, window.insert)" <!--@if($grant->fileupload)-->enctype="multipart/form-data"<!--@end--> class="boardEditor" id="fo_write">
<form action="./" method="post" onsubmit="return procFilter(this, window.insert)" class="boardEditor" id="fo_write">
<fieldset class="bottomBorder">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="content" value="{$oDocument->getContentText()}" />

View file

@ -24,7 +24,7 @@
<!--%import("filter/insert_comment.xml")-->
<div class="boardWrite">
<form action="./" method="post" onsubmit="return procFilter(this, insert_comment)" <!--@if($grant->fileupload)-->enctype="multipart/form-data"<!--@end--> class="boardEditor" >
<form action="./" method="post" onsubmit="return procFilter(this, insert_comment)" class="boardEditor" >
<fieldset>
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$oComment->get('document_srl')}" />

View file

@ -259,6 +259,7 @@ Jeong, Chan Myeong 070601~070630
/* boardWrite */
.boardWrite { width:100%; position:relative;}
.boardWrite fieldset { border:none; }
.boardWrite .userNameAndPw { margin-bottom:-1px;}
.boardWrite .boardEditor fieldset { width:auto; position:relative;}
.boardWrite div.title { border-bottom:1px solid #eff0ed; border-top:1px solid #eff0ed; padding:.5em 0; white-space:nowrap;}

View file

@ -168,7 +168,7 @@
<!--%import("filter/insert_comment.xml")-->
<div class="boardWrite">
<form action="./" method="post" onsubmit="return procFilter(this, insert_comment)" <!--@if($grant->fileupload)-->enctype="multipart/form-data"<!--@end--> class="boardEditor" >
<form action="./" method="post" onsubmit="return procFilter(this, insert_comment)" class="boardEditor" >
<fieldset>
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />

View file

@ -2,7 +2,7 @@
<!--#include("header.html")-->
<div class="boardWrite">
<form action="./" method="post" onsubmit="return procFilter(this, window.insert)" <!--@if($grant->fileupload)-->enctype="multipart/form-data"<!--@end--> class="boardEditor" id="fo_write">
<form action="./" method="post" onsubmit="return procFilter(this, window.insert)" id="fo_write">
<fieldset>
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="content" value="{$oDocument->getContentText()}" />

View file

@ -4,7 +4,7 @@
<form action="./" method="post" onsubmit="return procFilter(this, insert_board)" enctype="multipart/form-data">
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="module_srl" value="{$module_srl}" />
<input type="hidden" name="module_srl" value="{$module_srl?$module_srl:$module_srls}" />
<!--@if($module_info->is_default=='Y')-->
<input type="hidden" name="is_default" value="Y" />
<!--@end-->
@ -13,21 +13,23 @@
<col width="150" />
<col />
<tr>
<th scope="row">{$lang->mid}</th>
<td>
<input type="text" name="mid" value="{$module_info->mid}" class="inputTypeText w200" />
<p>{$lang->about_mid}</p>
</td>
</tr>
<!--@if($module_info->is_default!='Y')-->
<tr>
<th scope="row">{$lang->is_default}</th>
<td>
<input type="checkbox" name="is_default" value="Y" <!--@if($module_info->is_default=='Y')-->checked="checked"<!--@end--> id="fld_for_default" class="checkbox" />
<label for="fld_for_default">{$lang->about_default}</label>
</td>
</tr>
<!--@if(!$module_srls)-->
<tr>
<th scope="row">{$lang->mid}</th>
<td>
<input type="text" name="mid" value="{$module_info->mid}" class="inputTypeText w200" />
<p>{$lang->about_mid}</p>
</td>
</tr>
<!--@if($module_info->is_default!='Y')-->
<tr>
<th scope="row">{$lang->is_default}</th>
<td>
<input type="checkbox" name="is_default" value="Y" <!--@if($module_info->is_default=='Y')-->checked="checked"<!--@end--> id="fld_for_default" class="checkbox" />
<label for="fld_for_default">{$lang->about_default}</label>
</td>
</tr>
<!--@end-->
<!--@end-->
<tr>
<th scope="row">{$lang->module_category}</th>
@ -42,6 +44,7 @@
</td>
</tr>
<!--@if(!$module_srls)-->
<tr>
<th scope="row">{$lang->browser_title}</th>
<td>
@ -49,6 +52,8 @@
<p>{$lang->about_browser_title}</p>
</td>
</tr>
<!--@end-->
<tr>
<th scope="row">{$lang->layout}</th>
<td>
@ -125,65 +130,68 @@
<tr>
<th scope="row" colspan="2" class="button">
<span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
<span class="button"><input type="button" value="{$lang->cmd_back}" onclick="history.back(); return false;" /></span>
</th>
</table>
<!--@for($i=1;$i<=20;$i++)-->
<div class="gap1"></div>
{@ $extra_vars_name = ''}
{@ $extra_vars_type = ''}
{@ $extra_vars_is_required = ''}
{@ $extra_vars_default_value = ''}
{@ $extra_vars_desc = ''}
{@ $extra_vars_search = ''}
<!--@if($module_info->extra_vars[$i])-->
{@ $extra_vars_name = $module_info->extra_vars[$i]->name}
{@ $extra_vars_type = $module_info->extra_vars[$i]->type}
{@ $extra_vars_is_required = $module_info->extra_vars[$i]->is_required}
{@ $extra_vars_default_value = $module_info->extra_vars[$i]->default}
{@ $extra_vars_desc = $module_info->extra_vars[$i]->desc}
{@ $extra_vars_search = $module_info->extra_vars[$i]->search}
<!--@end-->
<table cellspacing="0" class="adminTable ">
<col width="150" />
<col />
<caption>{$lang->extra_vars} {$i}</caption>
<tr>
<th>{$lang->column_name}</th>
<td><input type="text" name="extra_vars_{$i}_name" value="{$extra_vars_name}" class="inputTypeText w200" /> </td>
</tr>
<tr>
<th>{$lang->column_type}</th>
<td>
<select name="extra_vars_{$i}_type">
<!--@foreach($lang->column_type_list as $key => $val)-->
<!--@if($key != 'kr_zip')-->
<option value="{$key}" <!--@if($extra_vars_type==$key)-->selected="selected"<!--@end-->>{$lang->column_type_list[$key]}</option>
<!--@if(!$module_srls)-->
<!--@for($i=1;$i<=20;$i++)-->
<div class="gap1"></div>
{@ $extra_vars_name = ''}
{@ $extra_vars_type = ''}
{@ $extra_vars_is_required = ''}
{@ $extra_vars_default_value = ''}
{@ $extra_vars_desc = ''}
{@ $extra_vars_search = ''}
<!--@if($module_info->extra_vars[$i])-->
{@ $extra_vars_name = $module_info->extra_vars[$i]->name}
{@ $extra_vars_type = $module_info->extra_vars[$i]->type}
{@ $extra_vars_is_required = $module_info->extra_vars[$i]->is_required}
{@ $extra_vars_default_value = $module_info->extra_vars[$i]->default}
{@ $extra_vars_desc = $module_info->extra_vars[$i]->desc}
{@ $extra_vars_search = $module_info->extra_vars[$i]->search}
<!--@end-->
<table cellspacing="0" class="adminTable ">
<col width="150" />
<col />
<caption>{$lang->extra_vars} {$i}</caption>
<tr>
<th>{$lang->column_name}</th>
<td><input type="text" name="extra_vars_{$i}_name" value="{$extra_vars_name}" class="inputTypeText w200" /> </td>
</tr>
<tr>
<th>{$lang->column_type}</th>
<td>
<select name="extra_vars_{$i}_type">
<!--@foreach($lang->column_type_list as $key => $val)-->
<!--@if($key != 'kr_zip')-->
<option value="{$key}" <!--@if($extra_vars_type==$key)-->selected="selected"<!--@end-->>{$lang->column_type_list[$key]}</option>
<!--@end-->
<!--@end-->
<!--@end-->
</select>
</td>
</tr>
<tr>
<th>{$lang->is_required}</th>
<td><input type="checkbox" name="extra_vars_{$i}_is_required" value="Y" <!--@if($extra_vars_is_required=='Y')-->checked="checked"<!--@end--> /></td>
</tr>
<tr>
<th>{$lang->default_value}</th>
<td><input type="text" name="extra_vars_{$i}_default" value="{$extra_vars_default_value}" class="inputTypeText w400" /><p>{$lang->about_extra_vars_default_value}</p></td>
</tr>
<tr>
<th>{$lang->description}</th>
<td><input type="text" name="extra_vars_{$i}_desc" value="{$extra_vars_desc}" class="inputTypeText w400" /></td>
</tr>
<tr>
<th>{$lang->cmd_search}</th>
<td><input type="checkbox" name="extra_vars_{$i}_search" value="Y" <!--@if($extra_vars_search=='Y')-->checked="checked"<!--@end--> /></td>
</tr>
<tr>
<th scope="row" colspan="2" class="button"><span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span></th>
</tr>
</table>
</select>
</td>
</tr>
<tr>
<th>{$lang->is_required}</th>
<td><input type="checkbox" name="extra_vars_{$i}_is_required" value="Y" <!--@if($extra_vars_is_required=='Y')-->checked="checked"<!--@end--> /></td>
</tr>
<tr>
<th>{$lang->default_value}</th>
<td><input type="text" name="extra_vars_{$i}_default" value="{$extra_vars_default_value}" class="inputTypeText w400" /><p>{$lang->about_extra_vars_default_value}</p></td>
</tr>
<tr>
<th>{$lang->description}</th>
<td><input type="text" name="extra_vars_{$i}_desc" value="{$extra_vars_desc}" class="inputTypeText w400" /></td>
</tr>
<tr>
<th>{$lang->cmd_search}</th>
<td><input type="checkbox" name="extra_vars_{$i}_search" value="Y" <!--@if($extra_vars_search=='Y')-->checked="checked"<!--@end--> /></td>
</tr>
<tr>
<th scope="row" colspan="2" class="button"><span class="button"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span></th>
</tr>
</table>
<!--@end-->
<!--@end-->

View file

@ -1,6 +1,6 @@
<filter name="insert_grant" module="board" act="procBoardAdminInsertGrant" confirm_msg_code="confirm_submit">
<form>
<node target="module_srl" required="true" filter="number" />
<node target="module_srl" required="true" />
</form>
<response callback_func="completeInsertGrant">
<tag name="error" />

View file

@ -3,7 +3,7 @@
<form action="./" method="post" onsubmit="return procFilter(this, insert_grant)">
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="module_srl" value="{$module_srl}" />
<input type="hidden" name="module_srl" value="{$module_srl?$module_srl:$module_srls}" />
<table cellspacing="0" class="adminTable">
<col width="150" />
@ -37,6 +37,7 @@
<tr>
<th scope="row" colspan="4" class="button">
<span class="button"><input type="submit" value="{$lang->cmd_save}" accesskey="s" /></span>
<span class="button"><input type="button" value="{$lang->cmd_back}" onclick="history.back(); return false;" /></span>
</th>
</tr>
</tbody>

View file

@ -6,9 +6,11 @@
</div>
<!-- 목록 -->
<form action="./" method="get" onsubmit="return doChangeCategory(this);" id="fo_list">
<table cellspacing="0" class="adminTable">
<!--@if($lang_type == 'ko')-->
<col width="50" />
<col width="40" />
<col width="130" />
<col />
<col width="65" />
@ -18,6 +20,7 @@
<!--@else if($lang_type == 'en')-->
<col width="50" />
<col width="40" />
<col width="130" />
<col />
<col width="80" />
@ -27,6 +30,7 @@
<!--@else if($lang_type == 'zh-CN')-->
<col width="50" />
<col width="40" />
<col width="130" />
<col />
<col width="65" />
@ -36,6 +40,7 @@
<!--@else if($lang_type == 'jp')-->
<col width="50" />
<col width="40" />
<col width="130" />
<col />
<col width="65" />
@ -45,6 +50,7 @@
<!--@else if($lang_type == 'es')-->
<col width="50" />
<col width="40" />
<col width="130" />
<col />
<col width="80" />
@ -54,6 +60,7 @@
<!--@else if($lang_type == 'ru')-->
<col width="50" />
<col width="40" />
<col width="130" />
<col />
<col width="90" />
@ -64,8 +71,8 @@
<thead>
<tr>
<th scope="col">{$lang->no}</th>
<th scope="col"><input type="checkbox" onclick="checkboxSelectAll(this.form, 'cart'); return false;" /></th>
<th scope="col">
<form action="./" method="get" onsubmit="return doChangeCategory(this);">
<input type="hidden" name="module" value="{$module}" />
<input type="hidden" name="act" value="{$act}" />
<select name="module_category_srl" class="w80">
@ -77,7 +84,6 @@
<option value="-1">{$lang->cmd_management}</option>
</select>
<input type="submit" name="go_button" id="go_button" value="GO" class="buttonTypeGo" />
</form>
</th>
<th scope="col">{$lang->mid} / {$lang->browser_title}</th>
<th scope="col">{$lang->regdate}</th>
@ -90,6 +96,7 @@
<!--@foreach($board_list as $no => $val)-->
<tr>
<td class="tahoma">{$no}</td>
<td><input type="checkbox" name="cart" value="{$val->module_srl}" /></td>
<td>
<!--@if(!$val->module_category_srl)-->
{$lang->not_exists}
@ -109,8 +116,14 @@
<!--@end-->
</tbody>
</table>
</form>
<!-- 버튼 -->
<div class="fl gap1">
<a href="#" onclick="doCartSetup('dispBoardAdminInsertBoard'); return false;" class="button"><span>{$lang->cmd_setup}</span></a>
<a href="#" onclick="doCartSetup('dispBoardAdminBoardAdditionSetup'); return false;" class="button"><span>{$lang->cmd_addition_setup}</span></a>
<a href="#" onclick="doCartSetup('dispBoardAdminGrantInfo'); return false;" class="button"><span>{$lang->cmd_manage_grant}</span></a>
</div>
<div class="fr gap1">
<a href="{getUrl('act','dispBoardAdminInsertBoard','module_srl','')}" class="button"><span>{$lang->cmd_make}</span></a>
</div>

View file

@ -86,8 +86,6 @@ function completeInsertGrant(ret_obj) {
var module_srl = ret_obj['module_srl'];
alert(message);
location.href = location.href;
}
/* 카테고리 이동 */
@ -100,3 +98,20 @@ function doChangeCategory(fo_obj) {
return true;
}
/* 일괄 설정 */
function doCartSetup(act_type) {
var fo_obj = xGetElementById('fo_list');
var module_srl = new Array();
if(typeof(fo_obj.cart.length)=='undefined') {
if(fo_obj.cart.checked) module_srl[module_srl.length] = fo_obj.cart.value;
} else {
for(var i=0;i<fo_obj.cart.length;i++) {
if(fo_obj.cart[i].checked) module_srl[module_srl.length] = fo_obj.cart[i].value;
}
}
if(module_srl.length<1) return;
var url = current_url.setQuery('act',act_type).setQuery('module_srl','').setQuery('module_srls',module_srl.join(','));
location.href = url;
}