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

This commit is contained in:
zero 2007-04-02 06:42:57 +00:00
parent 9e573df09a
commit cf8e6380e9
11 changed files with 258 additions and 39 deletions

View file

@ -104,6 +104,7 @@
$lang->date = '날짜';
$lang->regdate = '등록일';
$lang->last_update = '최근수정일';
$lang->signup_date = '가입일';
$lang->last_login = '최근로그인';
$lang->first_page = '첫페이지';
$lang->last_page = '끝페이지';

View file

@ -4,6 +4,7 @@
<action name="dispMemberInfo" type="view" standalone="true" />
<action name="dispMemberSignUpForm" type="view" standalone="true" />
<action name="dispMemberModifyInfo" type="view" standalone="true" />
<action name="dispMemberModifyPassword" type="view" standalone="true" />
<action name="dispMemberLoginForm" type="view" standalone="true" />
<action name="dispMemberLogout" type="view" standalone="true" />
@ -23,6 +24,8 @@
<action name="procMemberLogin" type="controller" standalone="true" />
<action name="procMemberLogout" type="controller" standalone="true" />
<action name="procMemberInsert" type="controller" standalone="true" />
<action name="procMemberModifyInfo" type="controller" standalone="true" />
<action name="procMemberModifyPassword" type="controller" standalone="true" />
<action name="procMemberInsertImageName" type="controller" standalone="true" />
<action name="procMemberInsertImageMark" type="controller" standalone="true" />
<action name="procMemberDeleteImageName" type="controller" standalone="true" />

View file

@ -16,6 +16,7 @@
$oModuleController->insertActionForward('member', 'view', 'dispMemberInfo');
$oModuleController->insertActionForward('member', 'view', 'dispMemberSignUpForm');
$oModuleController->insertActionForward('member', 'view', 'dispMemberModifyInfo');
$oModuleController->insertActionForward('member', 'view', 'dispMemberModifyPassword');
$oModuleController->insertActionForward('member', 'view', 'dispMemberLoginForm');
$oModuleController->insertActionForward('member', 'view', 'dispMemberLogout');
$oModuleController->insertActionForward('member', 'view', 'dispMemberAdminList');
@ -31,6 +32,8 @@
$oModuleController->insertActionForward('member', 'controller', 'procMemberLogin');
$oModuleController->insertActionForward('member', 'controller', 'procMemberLogout');
$oModuleController->insertActionForward('member', 'controller', 'procMemberInsert');
$oModuleController->insertActionForward('member', 'controller', 'procMemberModifyInfo');
$oModuleController->insertActionForward('member', 'controller', 'procMemberModifyPassword');
$oModuleController->insertActionForward('member', 'controller', 'procMemberInsertImageName');
$oModuleController->insertActionForward('member', 'controller', 'procMemberInsertImageMark');
$oModuleController->insertActionForward('member', 'controller', 'procMemberDeleteImageName');

View file

@ -286,7 +286,8 @@
**/
function procMemberInsert() {
// 필수 정보들을 미리 추출
$args = Context::gets('member_srl','user_id','user_name','nick_name','email_address','password','allow_mailing','signature');
$args = Context::gets('user_id','user_name','nick_name','email_address','password','allow_mailing','signature');
$args->member_srl = getNextSequence();
// 넘어온 모든 변수중에서 몇가지 불필요한 것들 삭제
$all_args = Context::getRequestVars();
@ -300,31 +301,51 @@
$extra_vars = delObjectVars($all_args, $args);
$args->extra_vars = serialize($extra_vars);
// member_srl이 넘어오면 원 회원이 있는지 확인
if($args->member_srl) {
// 멤버 모델 객체 생성
$oMemberModel = &getModel('member');
// 회원 정보 구하기
$member_info = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl);
// 만약 원래 회원이 없으면 새로 입력하기 위한 처리
if($member_info->member_srl != $args->member_srl) unset($args->member_srl);
}
// member_srl의 값에 따라 insert/update
if(!$args->member_srl) {
$output = $this->insertMember($args);
$msg_code = 'success_registed';
} else {
$output = $this->updateMember($args);
$msg_code = 'success_updated';
}
$output = $this->insertMember($args);
if(!$output->toBool()) return $output;
$this->add('member_srl', $args->member_srl);
$this->setMessage($msg_code);
$this->setMessage('success_registed');
}
/**
* @brief 회원 가입 or 정보 수정
**/
function procMemberModifyInfo() {
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
// 필수 정보들을 미리 추출
$args = Context::gets('nick_name','email_address','allow_mailing','signature');
// 로그인 정보
$logged_info = Context::get('logged_info');
$args->member_srl = $logged_info->member_srl;
// 넘어온 모든 변수중에서 몇가지 불필요한 것들 삭제
$all_args = Context::getRequestVars();
unset($all_args->module);
unset($all_args->act);
unset($all_args->is_admin);
unset($all_args->description);
unset($all_args->group_srl_list);
// 모든 request argument에서 필수 정보만 제외 한 후 추가 데이터로 입력
$extra_vars = delObjectVars($all_args, $args);
$args->extra_vars = serialize($extra_vars);
// 멤버 모델 객체 생성
$oMemberModel = &getModel('member');
// 회원 정보 구하기
$member_info = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl);
// member_srl의 값에 따라 insert/update
$output = $this->updateMember($args);
if(!$output->toBool()) return $output;
$this->add('member_srl', $args->member_srl);
$this->setMessage('success_updated');
}
@ -517,6 +538,7 @@
if(!$args->is_admin) unset($args->is_admin);
list($args->email_id, $args->email_host) = explode('@', $args->email_address);
// 아이디, 닉네임, email address 의 중복 체크
$member_srl = $oMemberModel->getMemberSrlByUserID($args->user_id);
if($member_srl&&$args->member_srl!=$member_srl) return new Object(-1,'msg_exists_user_id');
@ -530,6 +552,7 @@
// DB에 update
if($args->password) $args->password = md5($args->password);
else $args->password = $member_info->password;
if(!$args->user_name) $args->user_name = $member_info->user_name;
$output = executeQuery('member.updateMember', $args);
if(!$output->toBool()) return $output;

View file

@ -121,6 +121,7 @@
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
Context::set('member_info',$member_info);

View file

@ -0,0 +1,16 @@
<filter name="modify_info" module="member" act="procMemberModifyInfo" extend_filter="member.getJoinFormList" confirm_msg_code="confirm_submit">
<form>
<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="accept_agreement" target="accept_agreement" />
<param name="nick_name" target="nick_name" />
<param name="allow_mailing" target="allow_mailing" />
<param name="email_address" target="email_address" />
</parameter>
<response callback_func="completeModify">
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -8,6 +8,16 @@ function completeInsert(ret_obj, response_tags, args, fo_obj) {
location.href = location.href.setQuery('act','');
}
/* 정보 수정 */
function completeModify(ret_obj, response_tags, args, fo_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
alert(message);
location.href = location.href.setQuery('act','dispMemberInfo');
}
/* 로그인 후 */
function completeLogin(ret_obj) {
var url = location.href.setQuery('act','');

View file

@ -2,7 +2,12 @@
<table>
<tr>
<th>{$lang->user_id}</th>
<td>{$member_info->user_id}</td>
<td>
{$member_info->user_id}
<!--@if($member_info->is_denied == 'Y')-->
({$lang->denied})
<!--@end-->
</td>
</tr>
<tr>
<th>{$lang->user_name}</th>
@ -51,12 +56,23 @@
</tr>
<!--@end-->
<!--@end-->
<tr>
<th>{$lang->signup_date}</th>
<td>{zdate($member_info->regdate,"Y-m-d H:i")}</td>
</tr>
<!--@if($member_info->member_srl == $logged_info->member_srl || $logged_info->is_admin == 'Y' )-->
<tr>
<th>{$lang->last_login}</th>
<td>{zdate($member_info->last_login,"Y-m-d H:i")}</td>
</tr>
<!--@end-->
<tr>
<td colspan="2">
<!--@if($member_info->member_srl == $logged_info->member_srl)-->
<input type="button" value="{$lang->cmd_modify_member_info}" onclick="location.href='{getUrl('act','dispMemberModifyInfo')}';return false;" />
<input type="button" value="{$lang->cmd_modify_member_password}" />
<input type="button" value="{$lang->cmd_modify_member_password}" onclick="location.href='{getUrl('act','dispMemberModifyPassword')}'; return false;"/>
<!--@end-->
<input type="button" value="{$lang->cmd_list}" onclick="location.href='{getUrl('act','')}';return false;" />
</td>

View file

@ -0,0 +1,157 @@
<!--%import("filter/modify_info.xml")-->
<!--%import("js/member.js")-->
<div>
<!--@if(!$is_logged)-->
{$lang->msg_new_member}
<!--@else-->
{$lang->msg_update_member}
<!--@end-->
</div>
<form id="fo_insert_member" action="./" method="get" onsubmit="return procFilter(this, modify_info)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="page" value="{$page}" />
<div>
{$lang->member_default_info}
</div>
<table border="1">
<tr>
<th>{$lang->user_id}</th>
<td>
{$member_info->user_id}
</td>
</tr>
<tr>
<th>{$lang->user_name}</th>
<td>
{$member_info->user_name}
</td>
</tr>
<tr>
<th rowspan="2">{$lang->nick_name}</th>
<td>
<input type="text" name="nick_name" value="{$member_info->nick_name}" />
</td>
</tr>
<tr>
<td>{$lang->about_nick_name}</td>
</tr>
<tr>
<th>{$lang->email_address}</th>
<td>
<input type="text" name="email_address" value="{$member_info->email_address}" />
</td>
</tr>
<tr>
<th rowspan="2">{$lang->allow_mailing}</th>
<td><input type="checkbox" name="allow_mailing" value="Y" <!--@if($member_info->allow_mailing!='N')-->checked="true"<!--@end-->/></td>
</tr>
<tr>
<td>{$lang->about_allow_mailing}</td>
</tr>
</table>
<!--@if($extend_form_list)-->
<div>
{$lang->member_extend_info}
</div>
<table border="1">
<!--@foreach($extend_form_list as $key => $val)-->
<!--@if($val->is_active=='Y')-->
<tr>
<th rowspan="2">
<!--@if($val->required=='Y')-->
*
<!--@end-->
{$val->column_title}
</th>
<td>
<!-- 일반 text -->
<!--@if($val->column_type == 'text')-->
<input type="text" name="{$val->column_name}" value="{$val->value}" />
<!-- 홈페이지 주소 -->
<!--@elseif($val->column_type == 'homepage')-->
<input type="text" name="{$val->column_name}" value="{$val->value}" />
<!-- Email 주소 -->
<!--@elseif($val->column_type == 'email_address')-->
<input type="text" name="{$val->column_name}" value="{$val->value}" />
<!-- 전화번호 -->
<!--@elseif($val->column_type == 'tel')-->
<input type="text" name="{$val->column_name}" value="{$val->value[0]}" size="4" />-
<input type="text" name="{$val->column_name}" value="{$val->value[1]}" size="4" />-
<input type="text" name="{$val->column_name}" value="{$val->value[2]}" size="4" />
<!-- textarea -->
<!--@elseif($val->column_type == 'textarea')-->
<textarea name="{$val->column_name}">{$val->value}</textarea>
<!-- 다중 선택 -->
<!--@elseif($val->column_type == 'checkbox')-->
<!--@if($val->default_value)-->
<!--@foreach($val->default_value as $v)-->
<input type="checkbox" name="{$val->column_name}" value="{$v}" <!--@if(is_array($val->value)&&in_array($v, $val->value))-->checked="true"<!--@end-->/>{$v}
<!--@end-->
<!--@end-->
<!-- 단일 선택 -->
<!--@elseif($val->column_type == 'select')-->
<select name="{$val->column_name}">
<!--@if($val->default_value)-->
<!--@foreach($val->default_value as $v)-->
<option value="{$v}" <!--@if($v == $val->value)-->selected="true"<!--@end-->>{$v}</option>
<!--@end-->
<!--@end-->
</select>
<!-- 한국 주소 검색 -->
<!--@elseif($val->column_type == 'kr_zip')-->
<div id="zone_address_1_{$val->column_name}" style="display:<!--@if($val->value[0])-->inline<!--@else-->none<!--@end-->;">
<input type="text" name="{$val->column_name}" value="{$val->value[0]}" />
<input type="button" value="{$lang->cmd_cancel}" onclick="doHideKrZipList('{$val->column_name}'); return false;" />
</div>
<div id="zone_address_list_{$val->column_name}" style="display:none">
<select name="_tmp_address_list_{$val->column_name}" style="width:240px;"></select>
<input type="button" value="{$lang->cmd_select}" onclick="doSelectKrZip('{$val->column_name}'); return false;" />
<input type="button" value="{$lang->cmd_cancel}" onclick="doHideKrZipList('{$val->column_name}'); return false;" />
</div>
<div id="zone_address_search_{$val->column_name}" style="display:<!--@if($val->value[0])-->none<!--@else-->inline<!--@end-->;">
<input type="text" name="_tmp_address_search_{$val->column_name}" value="" />
<input type="button" value="{$lang->cmd_search}" onclick="doSearchKrZip('{$val->column_name}'); return false;" />
</div>
<div>
<input type="text" name="{$val->column_name}" value="{$val->value[1]}" />
</div>
<!-- 일본 주소 검색 -->
<!--@elseif($val->column_type == 'jp_zip')-->
<input type="text" name="{$val->column_name}" value="{$val->value}" />
<!--@end-->
</td>
</tr>
<tr>
<td>{$val->description}</td>
</tr>
<!--@end-->
<!--@end-->
</table>
<!--@end-->
<table border="1">
<tr>
<td colspan="2">
<input type="button" value="{$lang->cmd_cancel}" onclick="location.href='{getUrl('act','dispMemberInfo')}'" />
<input type="submit" value="{$lang->cmd_registration}" accesskey="s" />
</td>
</tr>
</table>
</form>

View file

@ -2,21 +2,13 @@
<!--%import("js/member.js")-->
<div>
<!--@if(!$is_logged)-->
{$lang->msg_new_member}
<!--@else-->
{$lang->msg_update_member}
<!--@end-->
{$lang->msg_new_member}
</div>
<form id="fo_insert_member" action="./" method="get" onsubmit="return procFilter(this, signup)">
<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_info->member_srl}" />
<!--@if($member_info->member_srl)-->
<input type="hidden" name="user_id" value="{$member_info->user_id}" />
<!--@end-->
<!--@if(!$is_logged && $member_config->agreement)-->
<div>
@ -41,11 +33,7 @@
<tr>
<th rowspan="2">{$lang->user_id}</th>
<td>
<!--@if($member_info->member_srl)-->
{$member_info->user_id}
<!--@else-->
<input type="text" name="user_id" value="" />
<!--@end-->
</td>
</tr>
<tr>
@ -91,7 +79,7 @@
</tr>
<tr>
<th rowspan="2">{$lang->allow_mailing}</th>
<td><input type="checkbox" name="allow_mailing" value="Y" <!--@if($member_info->allow_mailing!='N')-->checked="true"<!--@end-->/></td>
<td><input type="checkbox" name="allow_mailing" value="Y" checked="true" /></td>
</tr>
<tr>
<td>{$lang->about_allow_mailing}</td>

View file

@ -22,7 +22,7 @@
<div class="info_box">
<!-- 정보 수정 링크 -->
<div class="modify_info">
<a href="#">{$lang->cmd_modify_member_info}</a>
<a href="#" onclick="location.href='{getUrl('act','dispMemberInfo')}';return false;">{$lang->cmd_view_member_info}</a>
</div>
<!-- 최종 록그인 시간 -->
@ -56,6 +56,7 @@
<div class="button_area">
<input type="submit" value="{$lang->cmd_login}" />
<a href="#" onclick="location.href='{getUrl('act','dispMemberSignUpForm')}';return false;">{$lang->cmd_signup}</a>
</div>
</form>