[테마제작기(15記)] 회원정보 수정 페이지 개발 정보
기타 [테마제작기(15記)] 회원정보 수정 페이지 개발
관련링크
본문
원문(출처) : 그누보드 테마 제작 15 - 회원정보 수정 페이지 개발
그누보드 기본 테마의 회원 비밀번호 확인과 회원 정보 수정 페이지
오늘은 회원정보 수정 페이지를 진행할 계획인데요.
웬지 이번 작업은 만만치 않을 것 같네요.
이유는 그누 기본 테마는 상단 메뉴와 우측사이트 영역이 존재하지만,
전 그걸 빼고 만들었었거든요.
회원정보수정 화면은 상단, 좌측 메뉴가 보여지는게 맞을 것 같다고 판단했기때문입니다.
(지난 번 Modal창도 그렇고, 걍 그누의 기본 형식을 따르는게 제일 편할 듯 하네요.)
(그럴듯하게 바꾸는건 나중에 하는게 시간이 절약될 것 같아요.)
개발중인 테마에서는 현재화면부터 확인해볼게요.
상단 메뉴와 좌측 메뉴 외에도
회원가입페이지이 좌측 메뉴도 없애버려야 하네요...
![]()
이미 만들어놓은거 뒤집을 순 없고,
어케든 개발해야겠죠? (우리에겐 IF문이 있으니까요 ^^)
우선 순서대로
"회원 비밀번호 확인" 페이지부터 개발해야겠어요~
(이것도 Modal창으로 하고 싶지만, 꾹 참아봅니다. ^^)
뭐... 이 화면은 금방 끝내겠네요. 심플하네요~
col-lg, col-md, col-sm 클래스를 이용하여 장치별 사이즈를 지정해봅니다.
(첨 해보네요 ㅋ)
Bootstrap이 정말 편하긴 하네요.
![]()
휴대폰에서 보여질 화면
이제 그누의 코드를 개발 중인 테마로 옮깁니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
//add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
?>
<!-- 회원 비밀번호 확인 시작 { -->
<div class="row">
<div class="col-lg-4 col-md-3 col-sm-1"> </div>
<!--begin::Card-->
<div class="card card-custom gutter-b example example-compact col-lg-4 col-md-6 col-sm-10">
<div class="card-header">
<h3 class="card-title">회원 비밀번호 확인</h3>
</div>
<!--begin::Form-->
<form name="fmemberconfirm" action="<?php echo $url ?>" onsubmit="return fmemberconfirm_submit(this);" method="post">
<input type="hidden" name="mb_id" value="<?php echo $member['mb_id'] ?>">
<input type="hidden" name="w" value="u">
<div class="card-body">
<div class="form-group form-group-last">
<div class="alert alert-custom alert-default" role="alert">
<div class="alert-icon">
<span class="svg-icon svg-icon-primary svg-icon-xl">
<!--begin::Svg Icon | path:assets/media/svg/icons/Tools/Compass.svg-->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="24px" viewBox="0 0 24 24" version="1.1">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24" />
<path d="M7.07744993,12.3040451 C7.72444571,13.0716094 8.54044565,13.6920474 9.46808594,14.1079953 L5,23 L4.5,18 L7.07744993,12.3040451 Z M14.5865511,14.2597864 C15.5319561,13.9019016 16.375416,13.3366121 17.0614026,12.6194459 L19.5,18 L19,23 L14.5865511,14.2597864 Z M12,3.55271368e-14 C12.8284271,3.53749572e-14 13.5,0.671572875 13.5,1.5 L13.5,4 L10.5,4 L10.5,1.5 C10.5,0.671572875 11.1715729,3.56793164e-14 12,3.55271368e-14 Z" fill="#000000" opacity="0.3" />
<path d="M12,10 C13.1045695,10 14,9.1045695 14,8 C14,6.8954305 13.1045695,6 12,6 C10.8954305,6 10,6.8954305 10,8 C10,9.1045695 10.8954305,10 12,10 Z M12,13 C9.23857625,13 7,10.7614237 7,8 C7,5.23857625 9.23857625,3 12,3 C14.7614237,3 17,5.23857625 17,8 C17,10.7614237 14.7614237,13 12,13 Z" fill="#000000" fill-rule="nonzero" />
</g>
</svg>
<!--end::Svg Icon-->
</span>
</div>
<div class="alert-text">
<code class="h6">비밀번호를 한번 더 입력해주세요.</code><br/>
<?php if ($url == 'member_leave.php') { ?>
비밀번호를 입력하시면 회원탈퇴가 완료됩니다.
<?php } else { ?>
회원님의 정보를 안전하게 보호하기 위해 비밀번호를 한번 더 확인합니다.
<?php } ?>
</div>
</div>
</div>
<div class="form-group">
<label>회원 아이디</label>
<input type="text" class="form-control form-control-solid" readonly value="<?php echo $member['mb_id'] ?>" />
</div>
<div class="form-group">
<label>비밀번호 (필수)</label>
<input type="password" name="mb_password" id="confirm_mb_password" required class="form-control" size="15" maxLength="20" placeholder="비밀번호">
</div>
</div>
<div class="card-footer">
<button type="submit" id="btn_submit" class="btn btn-primary mr-2">확인</button>
<button type="button" onclick="history.back();" class="btn btn-secondary">취소</button>
</div>
</form>
<!--end::Form-->
</div>
<!--end::Card-->
<div class="col-lg-4 col-md-3 col-sm-1"> </div>
</div>
<script>
function fmemberconfirm_submit(f)
{
document.getElementById("btn_submit").disabled = true;
return true;
}
</script>
<!-- } 회원 비밀번호 확인 끝 -->
짜잔... 완료되었습니다.
(그런데 위에 이상한 넘이 떠 있네요...)
![]()
회원 비밀번호 확인 페이지 완료 화면
저 위에 이상한 넘이 떠 있는거...
계속 신경쓰이네요... 뭘까요?

이상한 넘의 정체
아마...
그누 기본 테마에서는 보이지 않게 처리된 놈인데,
여기선 그누의 CSS를 사용안하니 보여지는 놈이 아닌가 생각해봅니다.
(사실 이유를 찾기 귀찮아서 위와 같이 생각해버린게 아니랍니다~ ^^)
저 코드를 찾아서 display를 none으로 해버려야겠어요.
body 밑에 있는걸로 봐서는 head.sub.php에 있겠네요.
![]()
이상한 넘을 안보이게 처리해버림.
이제부턴 안보이겠네요 ^^
![]()
로그인 중이라는 텍스트를 안보이게 처리해버림.
이제 진짜 작업이네요.
회원 정보 수정 페이지의 개발에 들어갑니다.
먼저 좌측 정보 영역을 없애야겠어요.
![]()
좌측영역이 안보여져야 한다. 또는 없애거나...
좌측 정보 영역이
회원가입일때는 보여지고,
아닐때는 안보여야 함으로...
$_SERVER['HTTP_REFERER'] 를 이용하면 되겠네~~~
일단 로그를 찍어보자!
REFERER가 member_confirm.php인지를 비교하여
해당 영역의 노출 여부를 코딩합니다.
![]()
HTTP_REFERER 값을 이용하여 좌측 영역의 노출 여부를 결정하는 코딩
이제 좌측메뉴와 상단 탑, 푸터등이 나타나게 해야 하는군요.
이건 head.php를 include하게 하면 됩니다.
(아쉬운건 어쩔 수 없이 또 /bbs/register_form.php를 건드려야 한다는거네요.)
테마 제작시에는 가능한 테마 폴더 안에서 해결해야 하는데,
이런 경우는 이럴 수 밖에 없는거죠?
다른 방법이 있다면 누가 좀 알려주시면 감사하겠습니다.
이렇게 해서 완료가 된 줄 알았는데...
부자연스러운 부분들이 있네요.
"회원가입"이라는 문구는 "회원정보 수정"으로 바뀌어야 하고
일부 input 태그들은 readonly 또는 disable로 바뀌어야 합니다.
![]()
좌측메뉴, 상단, 푸터가 나타났으나 일부 부자연스러운 버그들이 발견됨.
일단 쉬워보이는 문구 수정부터 진행합니다.
찾아보니 $w 값도 있고, $g5["title"] 값으로 위의 작업들을 처리해도 되었겠네요.
(그러나 이미 만들었으니 바꾸지 않습니다. ㅎㅎ)
회원 가입이라는 문구는 $g5["title"]를 echo해서 해결합니다.
이제 required와 readonly 부분이 처리가 되어야 하는데요...
아.. 되어 있군요. 그런데 색상이 똑같아서 구분이 안됩니다.
어제 작업에서 보았던, form-control-solid 클래스를 이용하면 되겠네요. ㅎㅎㅎ
아... 하나 더 남았네요.
하단의 버튼이 바뀌어야 합니다.
현재는 회원가입때의 버튼이네요.
이번에도 $w를 이용하여 작업을 합니다.
이렇게 회원정보 수정 페이지의 작업이 완료되었습니다.
$w 변수가 있는걸 확인 못하고
$_SERVER["REFERER"]을 사용한게 조금 아쉽지만,
오늘은 별 막힘 없이 순조롭게 진행이 된 듯 하여 좀 뿌듯하네요.
아래는 완료된 화면입니다.
이번 글이 너무 길어, 모두 저장이 안되더라구요.
그래서 중간 중간 몇몇 이야기는 삭제해버렸어요.
본 글의 모든 이야기는 아래 링크에 있습니다.
오늘도 즐거운 밤 보내세요~
원문(출처) : 그누보드 테마 제작 15 - 회원정보 수정 페이지 개발
!-->
1
댓글 9개




걍 링크로 대체... 졸려요 ㅠㅠ
우님도 좋은 밤 되세요~


테마를 만들때는 기본은 그누기본테마와 같게 한 다음에
나중에 변형을 시도하는게 맞는 순서인것 같아요~
