mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-08 19:21:40 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/trunk@224 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
f9e9b8d4b2
commit
1a108fae7f
12 changed files with 133 additions and 106 deletions
|
|
@ -5,7 +5,7 @@
|
|||
**/
|
||||
|
||||
// xml handler을 이용하는 user function
|
||||
function exec_xml(module, act, params, callback_func, response_tags, callback_func_arg) {
|
||||
function exec_xml(module, act, params, callback_func, response_tags, callback_func_arg, fo_obj) {
|
||||
var oXml = new xml_handler();
|
||||
oXml.reset();
|
||||
for(var key in params) {
|
||||
|
|
@ -19,11 +19,11 @@ function exec_xml(module, act, params, callback_func, response_tags, callback_fu
|
|||
|
||||
var waiting_obj = document.getElementById('waitingforserverresponse');
|
||||
waiting_obj.style.visibility = 'visible';
|
||||
oXml.request(xml_response_filter, oXml, callback_func, response_tags, callback_func_arg);
|
||||
oXml.request(xml_response_filter, oXml, callback_func, response_tags, callback_func_arg, fo_obj);
|
||||
}
|
||||
|
||||
// 결과 처리 후 callback_func에 넘겨줌
|
||||
function xml_response_filter(oXml, callback_func, response_tags, callback_func_arg) {
|
||||
function xml_response_filter(oXml, callback_func, response_tags, callback_func_arg, fo_obj) {
|
||||
var xmlDoc = oXml.getResponseXml();
|
||||
if(!xmlDoc) return;
|
||||
|
||||
|
|
@ -35,7 +35,7 @@ function xml_response_filter(oXml, callback_func, response_tags, callback_func_a
|
|||
return;
|
||||
}
|
||||
|
||||
callback_func(ret_obj, response_tags, callback_func_arg);
|
||||
callback_func(ret_obj, response_tags, callback_func_arg, fo_obj);
|
||||
}
|
||||
|
||||
// xml handler
|
||||
|
|
@ -70,7 +70,7 @@ function zGetXmlHttp() {
|
|||
return null;
|
||||
}
|
||||
|
||||
function xml_handlerRequest(callBackFunc, xmlObj, callBackFunc2, response_tags, callback_func_arg) {
|
||||
function xml_handlerRequest(callBackFunc, xmlObj, callBackFunc2, response_tags, callback_func_arg, fo_obj) {
|
||||
|
||||
var rd = "";
|
||||
rd += "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n"
|
||||
|
|
@ -88,7 +88,7 @@ function xml_handlerRequest(callBackFunc, xmlObj, callBackFunc2, response_tags,
|
|||
this.obj_xmlHttp.abort();
|
||||
this.obj_xmlHttp = this.getXmlHttp();
|
||||
}
|
||||
this.obj_xmlHttp.onreadystatechange = function () {callBackFunc(xmlObj, callBackFunc2, response_tags, callback_func_arg)};
|
||||
this.obj_xmlHttp.onreadystatechange = function () {callBackFunc(xmlObj, callBackFunc2, response_tags, callback_func_arg, fo_obj)};
|
||||
this.obj_xmlHttp.open('POST', this.xml_path, true);
|
||||
this.obj_xmlHttp.send(rd);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -269,7 +269,7 @@ function XmlJsFilterProc(confirm_msg) {
|
|||
this.user_func(this.fo_obj, params);
|
||||
return true;
|
||||
}
|
||||
exec_xml(this.module, this.act, params, this.user_func, response, params);
|
||||
exec_xml(this.module, this.act, params, this.user_func, response, params, this.fo_obj);
|
||||
}
|
||||
|
||||
// form proc
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
$lang->cmd_login = '로그인';
|
||||
$lang->cmd_logout = '로그아웃';
|
||||
$lang->cmd_signup = '가입';
|
||||
$lang->cmd_modify_member_info = '회원정보 수정';
|
||||
$lang->cmd_leave = '탈퇴';
|
||||
$lang->cmd_move = '이동';
|
||||
$lang->cmd_move_up = '위로';
|
||||
|
|
|
|||
|
|
@ -309,8 +309,10 @@
|
|||
* @brief 회원가입폼
|
||||
**/
|
||||
function dispSignUpForm() {
|
||||
// 이미 로그인되어 있으면 메인 컨텐츠 노출
|
||||
if(Context::get('is_logged')) return $this->dispContent();
|
||||
// 이미 로그인되어 있으면 로그인 한 회원의 정보를 세팅하여 정보 수정을 시킴
|
||||
if(Context::get('is_logged')) {
|
||||
Context::set('member_info', Context::get('logged_info'));
|
||||
}
|
||||
|
||||
// member view 객체 생성후 dispSignUpForm method호출후 템플릿 가로챔
|
||||
$oMemberView = &getView('member');
|
||||
|
|
|
|||
|
|
@ -27,9 +27,15 @@
|
|||
<a href="{getUrl('act','dispRss')}">rss</a>
|
||||
<!--@end-->
|
||||
<!--@if($is_logged)-->
|
||||
<a href="{getUrl('act','dispLogout')}">[{$lang->cmd_logout}]</a>
|
||||
[
|
||||
<a href="{getUrl('act','dispSignUpForm')}">{$lang->cmd_modify_member_info}</a> |
|
||||
<a href="{getUrl('act','dispLogout')}">{$lang->cmd_logout}</a>
|
||||
]
|
||||
<!--@else-->
|
||||
<a href="{getUrl('act','dispLogin')}">[{$lang->cmd_login}]</a>
|
||||
[
|
||||
<a href="{getUrl('act','dispSignUpForm')}">{$lang->cmd_signup}</a> |
|
||||
<a href="{getUrl('act','dispLogin')}">{$lang->cmd_login}</a>
|
||||
]
|
||||
<!--@end-->
|
||||
<!--@if($logged_info->is_admin=='Y')-->
|
||||
<a href="{getUrl('module','admin','mo','board','act','dispAdminBoardInfo','module_srl',$module_srl,'mid','')}" target="_blank">[{$lang->cmd_management}]</a>
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@
|
|||
$lang->msg_exists_nick_name = '이미 존재하는 닉네임입니다. 다른 닉네임을 입력해주세요';
|
||||
|
||||
$lang->about_user_id = '사용자 ID는 3~20자 사이의 영문+숫자로 이루어져야 하며 영문으로 시작되어야 합니다';
|
||||
$lang->about_password = '비밀번호는 6~20자로 되어야 합니다';
|
||||
$lang->about_user_name = '이름은 2~20자 이내여야 합니다';
|
||||
$lang->about_nick_name = '닉네임은 2~20자 이내여야 합니다';
|
||||
$lang->about_allow_mailing = '메일링 가입이 체크되지 않으면 단체메일 발송시 메일을 받지 않습니다';
|
||||
|
|
|
|||
|
|
@ -69,10 +69,11 @@
|
|||
* @brief 사용자 추가 (관리자용)
|
||||
**/
|
||||
function procInsert() {
|
||||
// 일단 입력된 값들을 모두 받아서 db 입력항목과 그외 것으로 분리
|
||||
// 필수 정보들을 미리 추출
|
||||
$args = Context::gets('member_srl','user_id','user_name','nick_name','email_address','password','allow_mailing','denied','is_admin','signature','profile_image','image_nick','image_mark','description','group_srl_list');
|
||||
|
||||
// 넘어온 모든 변수중에서 몇가지 불필요한 것들 삭제
|
||||
$all_args = Context::getRequestVars();
|
||||
unset($all_args->page);
|
||||
unset($all_args->module);
|
||||
unset($all_args->act);
|
||||
|
||||
|
|
@ -103,8 +104,6 @@
|
|||
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->add('member_srl',$output->get('member_srl'));
|
||||
$this->add('page',Context::get('page'));
|
||||
$this->setMessage($msg_code);
|
||||
}
|
||||
|
||||
|
|
@ -321,12 +320,23 @@
|
|||
$output = $oDB->executeQuery('member.insertMember', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 기본 그룹을 입력
|
||||
$default_group = $oMemberModel->getDefaultGroup();
|
||||
// 입력된 그룹 값이 없으면 기본 그룹의 값을 등록
|
||||
if(!$args->group_srl_list) {
|
||||
$default_group = $oMemberModel->getDefaultGroup();
|
||||
|
||||
// 기본 그룹에 추가
|
||||
$output = $this->addMemberToGroup($args->member_srl,$default_group->group_srl);
|
||||
if(!$output->toBool()) return $output;
|
||||
// 기본 그룹에 추가
|
||||
$output = $this->addMemberToGroup($args->member_srl,$default_group->group_srl);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 입력된 그룹 값이 있으면 해당 그룹의 값을 등록
|
||||
} else {
|
||||
$group_srl_list = explode('|@|', $args->group_srl_list);
|
||||
for($i=0;$i<count($group_srl_list);$i++) {
|
||||
$output = $this->addMemberToGroup($args->member_srl,$group_srl_list[$i]);
|
||||
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
}
|
||||
|
||||
$output->add('member_srl', $args->member_srl);
|
||||
return $output;
|
||||
|
|
@ -368,15 +378,19 @@
|
|||
$output = $oDB->executeQuery('member.updateMember', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 그룹에 추가
|
||||
$output = $oDB->executeQuery('member.deleteMemberGroupMember', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$group_srl_list = explode('|@|', $args->group_srl_list);
|
||||
for($i=0;$i<count($group_srl_list);$i++) {
|
||||
$output = $this->addMemberToGroup($args->member_srl,$group_srl_list[$i]);
|
||||
// 그룹 정보가 있으면 그룹 정보를 변경
|
||||
if($args->group_srl_list) {
|
||||
$group_srl_list = explode('|@|', $args->group_srl_list);
|
||||
|
||||
// 일단 해당 회원의 모든 그룹 정보를 삭제
|
||||
$output = $oDB->executeQuery('member.deleteMemberGroupMember', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 하나 하나 루프를 돌면서 입력
|
||||
for($i=0;$i<count($group_srl_list);$i++) {
|
||||
$output = $this->addMemberToGroup($args->member_srl,$group_srl_list[$i]);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
}
|
||||
|
||||
$output->add('member_srl', $args->member_srl);
|
||||
|
|
|
|||
|
|
@ -294,6 +294,37 @@
|
|||
return $this->join_form_list;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 추가 회원가입폼과 특정 회원의 정보를 조합 (회원정보 수정등에 사용)
|
||||
**/
|
||||
function getCombineJoinForm($member_info) {
|
||||
$extend_form_list = $this->getJoinFormlist();
|
||||
if(!$extend_form_list) return;
|
||||
|
||||
foreach($extend_form_list as $srl => $item) {
|
||||
$column_name = $item->column_name;
|
||||
$value = $member_info->{$column_name};
|
||||
|
||||
// 추가 확장폼의 종류에 따라 값을 변경
|
||||
switch($item->column_type) {
|
||||
case 'checkbox' :
|
||||
if($value && !is_array($value)) $value = array($value);
|
||||
break;
|
||||
case 'text' :
|
||||
case 'homepage' :
|
||||
case 'email_address' :
|
||||
case 'tel' :
|
||||
case 'textarea' :
|
||||
case 'select' :
|
||||
case 'kr_zip' :
|
||||
break;
|
||||
}
|
||||
|
||||
$extend_form_list[$srl]->value = $value;
|
||||
}
|
||||
return $extend_form_list;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 한개의 가입항목을 가져옴
|
||||
**/
|
||||
|
|
|
|||
|
|
@ -40,17 +40,18 @@
|
|||
* @brief 회원 가입 폼 출력
|
||||
**/
|
||||
function dispSignUpForm() {
|
||||
// 추가 가입폼 목록을 받음
|
||||
$oMemberModel = &getModel('member');
|
||||
$extend_form_list = $oMemberModel->getJoinFormlist();
|
||||
if($extend_form_list) {
|
||||
foreach($extend_form_list as $srl => $item) {
|
||||
$column_name = $item->column_name;
|
||||
$value = $this->member_info->{$column_name};
|
||||
$extend_form_list[$srl]->value = $this->member_info->{$column_name};
|
||||
}
|
||||
Context::set('extend_form_list', $extend_form_list);
|
||||
|
||||
// 로그인한 회원일 경우 해당 회원의 정보를 받음
|
||||
if($oMemberModel->isLogged()) {
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
Context::set('member_info',$member_info);
|
||||
}
|
||||
|
||||
// 추가 가입폼 목록을 받음
|
||||
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($member_info));
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplatePath($this->module_path.'skins/default');
|
||||
|
|
@ -95,16 +96,8 @@
|
|||
**/
|
||||
function dispMemberInfo() {
|
||||
// 추가 가입폼 목록을 받음
|
||||
$oMemberModel = &getModel('member');
|
||||
$extend_form_list = $oMemberModel->getJoinFormlist();
|
||||
if($extend_form_list) {
|
||||
foreach($extend_form_list as $srl => $item) {
|
||||
$column_name = $item->column_name;
|
||||
$value = $this->member_info->{$column_name};
|
||||
$extend_form_list[$srl]->value = $this->member_info->{$column_name};
|
||||
}
|
||||
Context::set('extend_form_list', $extend_form_list);
|
||||
}
|
||||
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($this->member_info));
|
||||
|
||||
$this->setTemplateFile('member_info');
|
||||
}
|
||||
|
||||
|
|
@ -113,16 +106,7 @@
|
|||
**/
|
||||
function dispMemberInsert() {
|
||||
// 추가 가입폼 목록을 받음
|
||||
$oMemberModel = &getModel('member');
|
||||
$extend_form_list = $oMemberModel->getJoinFormlist();
|
||||
if($extend_form_list) {
|
||||
foreach($extend_form_list as $srl => $item) {
|
||||
$column_name = $item->column_name;
|
||||
$value = $this->member_info->{$column_name};
|
||||
$extend_form_list[$srl]->value = $this->member_info->{$column_name};
|
||||
}
|
||||
Context::set('extend_form_list', $extend_form_list);
|
||||
}
|
||||
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($this->member_info));
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('insert_member');
|
||||
|
|
|
|||
|
|
@ -1,28 +1,23 @@
|
|||
<filter name="insert" module="member" act="procInsert" extend_filter="member.getJoinFormList" confirm_msg_code="confirm_submit">
|
||||
<form>
|
||||
<node target="user_id" required="true" minlength="3" maxlength="20" filter="userid" />
|
||||
<node target="password1" required="true" minlength="6" maxlength="20" />
|
||||
<node target="password2" required="true" minlength="6" maxlength="20" equalto="password1" />
|
||||
<node target="user_name" required="true" minlength="2" maxlength="20" />
|
||||
<node target="nick_name" required="true" minlength="2" maxlength="20" />
|
||||
<node target="email_address" required="true" minlength="1" maxlength="200" filter="email"/>
|
||||
</form>
|
||||
<parameter>
|
||||
<param name="page" target="page" />
|
||||
<param name="member_srl" target="member_srl" />
|
||||
<param name="user_id" target="user_id" />
|
||||
<param name="password" target="password" />
|
||||
<param name="password" target="password1" />
|
||||
<param name="user_name" target="user_name" />
|
||||
<param name="nick_name" target="nick_name" />
|
||||
<param name="email_address" target="email_address" />
|
||||
<param name="allow_mailing" target="allow_mailing" />
|
||||
<param name="denied" target="denied" />
|
||||
<param name="is_admin" target="is_admin" />
|
||||
<param name="description" target="description" />
|
||||
<param name="group_srl_list" target="group_srl_list" />
|
||||
<param name="email_address" target="email_address" />
|
||||
</parameter>
|
||||
<response callback_func="completeInsert">
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
<tag name="member_srl" />
|
||||
<tag name="page" />
|
||||
</response>
|
||||
</filter>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
<!--%import("filter/insert.xml")-->
|
||||
<!--%import("js/member.js")-->
|
||||
|
||||
<div>
|
||||
<!--@if(!$member_srl)-->
|
||||
|
|
@ -9,8 +10,10 @@
|
|||
</div>
|
||||
|
||||
<form id="fo_insert_member" action="./" method="get" onsubmit="return procFilter(this, insert)">
|
||||
<input type="hidden" name="mid" value="{$mid}" />
|
||||
<input type="hidden" name="document_srl" value="{$document_srl}" />
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
<input type="hidden" name="member_srl" value="{$member_srl}" />
|
||||
<input type="hidden" name="member_srl" value="{$member_info->member_srl}" />
|
||||
<!--@if($member_info->member_srl)-->
|
||||
<input type="hidden" name="user_id" value="{$member_info->user_id}" />
|
||||
<!--@end-->
|
||||
|
|
@ -32,11 +35,19 @@
|
|||
<td>{$lang->about_user_id}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{$lang->password}</th>
|
||||
<th rowspan="3">{$lang->password1}</th>
|
||||
<td>
|
||||
<input type="password" name="password" value="" />
|
||||
<input type="password" name="password1" value="" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="password" name="password2" value="" /> {$lang->password2}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{$lang->about_password}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">{$lang->user_name}</th>
|
||||
<td>
|
||||
|
|
@ -68,39 +79,6 @@
|
|||
<tr>
|
||||
<td>{$lang->about_allow_mailing}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">{$lang->denied}</th>
|
||||
<td><input type="checkbox" name="denied" value="Y" <!--@if($member_info->denied=='Y')-->checked="true"<!--@end-->/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{$lang->about_denied}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">{$lang->is_admin}</th>
|
||||
<td><input type="checkbox" name="is_admin" value="Y" <!--@if($member_info->is_admin=='Y')-->checked="true"<!--@end-->/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{$lang->about_is_admin}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">{$lang->description}</th>
|
||||
<td><textarea name="description">{htmlspecialchars($member_info->description)}</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{$lang->about_description}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">{$lang->group}</th>
|
||||
<td>
|
||||
<!--@foreach($group_list as $key=>$val)-->
|
||||
<input type="checkbox" name="group_srl_list" value="{$key}" id="group_{$key}" <!--@if($member_info->group_list[$key])-->checked="true"<!--@end-->/>
|
||||
<label for="group_{$key}">{$val->title}</label>
|
||||
<!--@end-->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{$lang->about_group}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!--@if($extend_form_list)-->
|
||||
|
|
@ -198,11 +176,7 @@
|
|||
<table border="1">
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<!--@if($member_srl)-->
|
||||
<input type="button" value="{$lang->cmd_cancel}" onclick="location.href='{getUrl('act','dispMemberInfo')}';return false;" />
|
||||
<!--@else-->
|
||||
<input type="button" value="{$lang->cmd_cancel}" onclick="location.href='{getUrl('act','dispMemberList')}';return false;" />
|
||||
<!--@end-->
|
||||
<input type="button" value="{$lang->cmd_cancel}" onclick="location.href='{getUrl('act','')}'" />
|
||||
<input type="submit" value="{$lang->cmd_registration}" accesskey="s" />
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
19
modules/member/skins/default/js/member.js
Normal file
19
modules/member/skins/default/js/member.js
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
/* 사용자 추가 */
|
||||
function completeInsert(ret_obj, response_tags, args, fo_obj) {
|
||||
var error = ret_obj['error'];
|
||||
var message = ret_obj['message'];
|
||||
|
||||
alert(message);
|
||||
|
||||
var url = new Array();
|
||||
var mid = fo_obj.mid.value;
|
||||
var document_srl = fo_obj.document_srl.value;
|
||||
var page = fo_obj.page.value;
|
||||
|
||||
if(mid) url[url.length] = "mid="+mid;
|
||||
if(document_srl) url[url.length] = "document_srl="+document_srl;
|
||||
if(page) url[url.length] = "page="+page;
|
||||
|
||||
if(url.length>0) location.href="./?"+url.join("&");
|
||||
else location.href="./";
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue