개인 백업용이기때문에 설명이 난잡 나만 이해할 수 있게 해둠
회원한테 경고를 주고 싶고 해당 회원의 경고를 카운트 하기 위해 만들었다.
회원 설정 > 가입 폼 부분에 사용자 정의 항목 추가버튼을 눌러
위 사진의 형식처럼 사용자 정의 항목을 추가한다고 해보자
그리고 사용에 체크 하고 다른 회원이 눌러서 정보를 보지 않기를 원하니 공개 부분은 체크해준다, 그리고 필수/선택 부분에 대해서
나는 관리자만 해당 경고 횟수가 닉네임 옆에만 표시된걸 보이게 하고싶기때문에 선택 처리를 해주었다.
이렇게 해당 부분을 추가해주고 나면 회원 정보 관리 부분에 해당 사용자 정의 항목을 수정할 수 있는 부분이 생기었다.
이 부분에 설정한 값에 따라 닉네임 옆에 출력 방식을 바꿔볼 생각이다.
일단 회원가입 / 회원정보 수정 / 내 정보 보기 부분에서 출력을 시키고 싶지 않기때문에 아래와 같이 작성해준다.
-skin_name 부분은 자신의 스킨 폴더 이름입니다.
저는 simple_world 스킨 기반으로 설명을 합니다.
modules/member/skins/skin_name/singup_form.html
<block loop="$formTags=>$formTag" cond="$formTag->name != 'image_name' && $formTag->name != 'image_mark' && $formTag->name != 'warning'">
<label for="{$formTag->name}" class="control-label">{trim(str_replace('*','',strip_tags($formTag->title)))}<!--@if(strpos($formTag->title,'<em style="color:red">*</em>') !== false)--><sup style="color:red">*</sup><!--@endif--></label>
<block cond="$formTag->name != 'signature'">
{$formTag->inputTag}
<p class="rx_member-notice" cond="$formTag->name == 'email_address' && $email_confirmation_required == 'Y'">
{$lang->msg_email_confirmation_required}
</p>
</block>
<block cond="$formTag->name == 'signature'">
<input type="hidden" name="signature" value="" />
{$editor|noescape}
</block>
</block>
위 코드를 보면
<block loop="$formTags=>$formTag" cond="이곳">
이곳에 적힌 게
$formTag->name != 'image_name' && $formTag->name != 'image_mark' && $formTag->name != 'warning'
이 부분인데 설명하자면 수정하는 파일은 회원가입 쪽이고 저는 아이템 샵 모듈을 사용하기 때문에
이미지 닉네임 / 이미지 마크 부분은 포인트 구매를 통해 작동해야해서 가입 폼에서 삽입부분을 제거한 코드와
사용자 정의 항목에서 추가한 항목을 제거한 모습입니다.
이미지 닉네임 / 이미지 마크를 가입 폼에서도 이용하시는거면 빨간 부분은 지워주시고 파란부분만 입력하시면 됩니다.
아무튼 저렇게 작성
modules/member/skins/skin_name/modify_info.html
<block loop="$formTags=>$formTag" cond="$formTag->name != 'image_name' && $formTag->name != 'image_mark' && $formTag->name != 'warning'">
<label for="{$formTag->name}" class="control-label">{trim(str_replace('*','',strip_tags($formTag->title)))}<!--@if(strpos($formTag->title,'<em style="color:red">*</em>') !== false)--><sup style="color:red">*</sup><!--@endif--></label>
<block cond="$formTag->name != 'signature'">{$formTag->inputTag}</block>
<block cond="$formTag->name =='signature'">{$editor|noescape}</block>
</block>
위와 동일
modules/member/skins/skin_name/member_info.html
여기는 회원 정보를 보는 칸에서 자신이 추가한 사용자 정의 항목을 보기 싫으면 이렇게 추가 해주면 된다.
<block loop="$displayDatas => $item" cond="$item->title != '경고 횟수'">
<dt>{$item->title}<sup cond="$item->required || $item->mustRequired">*</sup></dt>
<dd cond="$item->value">{$item->value}</dd>
<dd cond="!$item->value">…</dd>
</block>
$item->title != '경고 횟수'
자신이 추가한 입력항목 ID가 아니라 제목으로 입력해야한다.
이렇게만 적으면 대충
내 정보에서도 안보이고
내 정보 수정에서도 안보이고
회원가입 폼에서도 안보인다.
그럼 이제 지정한 값이 있는 회원은 닉네임 옆에 표시를 하게 해줄텐데
나는 스케치북 게시판을 기준으로 설명을 한다.
그리고 게시글 읽는 화면에서만 출력을 해줄 것이다.
<a cond="!$mi->rd_nick" href="#popup_menu_area" class="nick member_{$oDocument->get('member_srl')}" onclick="return false">{$oDocument->getNickName()}</a>
닉네임 출력 부분 위에
{@
$oMemberModel = &getModel('member');
$member_info = $oMemberModel->getMemberInfoByMemberSrl($oDocument->getMemberSrl());
$warning1 = $member_info->warning == '경고 1회';
$warning2 = $member_info->warning == '경고 2회';
$my = $logged_info->member_srl == $oDocument->get('member_srl');
$admin = $logged_info->is_admin == 'Y';
}
이런식으로 적어준다.
그리고 닉네임 출력부분을 이걸로 교체
<!--@if($warning1 && $admin)-->
<a cond="!$mi->rd_nick" href="#popup_menu_area" class="nick member_{$oDocument->get('member_srl')}" onclick="return false">{$oDocument->getNickName()}</a><span class="warn1">경고 1회</span>
<!--@else if($warning2 && $admin)-->
<a cond="!$mi->rd_nick" href="#popup_menu_area" class="nick member_{$oDocument->get('member_srl')}" onclick="return false">{$oDocument->getNickName()}</a><span class="warn2">경고 2회</span>
<!--@else-->
<a cond="!$mi->rd_nick" href="#popup_menu_area" class="nick member_{$oDocument->get('member_srl')}" onclick="return false">{$oDocument->getNickName()}</a>
<!--@end-->
그럼 전체적으로 이렇게 보인다.
{@
$oMemberModel = &getModel('member');
$member_info = $oMemberModel->getMemberInfoByMemberSrl($oDocument->getMemberSrl());
$warning1 = $member_info->warning == '경고 1회';
$warning2 = $member_info->warning == '경고 2회';
$my = $logged_info->member_srl == $oDocument->get('member_srl');
$admin = $logged_info->is_admin == 'Y';
}
<!--@if($warning1 && $admin)-->
<a cond="!$mi->rd_nick" href="#popup_menu_area" class="nick member_{$oDocument->get('member_srl')}" onclick="return false">{$oDocument->getNickName()}</a><span class="warn1">경고 1회</span>
<!--@else if($warning2 && $admin)-->
<a cond="!$mi->rd_nick" href="#popup_menu_area" class="nick member_{$oDocument->get('member_srl')}" onclick="return false">{$oDocument->getNickName()}</a><span class="warn2">경고 2회</span>
<!--@else-->
<a cond="!$mi->rd_nick" href="#popup_menu_area" class="nick member_{$oDocument->get('member_srl')}" onclick="return false">{$oDocument->getNickName()}</a>
<!--@end-->
정리하면 이렇다.
- 회원 설정 > 회원 가입 > 가입 폼 관리 > 사용자 정의 항목 추가 버튼을 통해 자신이 원하는 사용자 정의 항목을 추가함
여기서는 경고 횟수 부분으로 설명
- 회원 가입 / 회원 정보 수정 / 내 정보 보기 부분에서 경고 횟수 작성 및 보이는건 불필요하니 제거
- 회원가입 폼
회원 가입 폼에서 폼을 출력하는 부분 <block loop="$formTags=>$formTag"> 부분에서 cond 값에 자신이 원하지 않는 부분의 값을 넣어준다.
<block loop="$formTags=>$formTag" cond="$formTag->name != 'warning'">
이런 식으로 넣으면 경고 횟수 선택하는 부분이 회원 가입할때 보이지 않는다.
- 회원 정보 수정
회원 가입땐 안떳는데 회원 정보 수정에서 수정해주지 않으면 수정 페이지 부분에서도 보이니 회원가입과 동일하게
<block loop="$formTags=>$formTag" cond="$formTag->name != 'warning'">
이렇게 넣어준다.
- 내 정보 보기
수정할때 가입할때 안보였더라도 가입 폼 관리에서 공개를 체크해제 해놔도 해당 회원 자신한테는 보이기때문에 그것을 가려줄 것이다.
<block loop="$displayDatas => $item"> 부분에서 cond 값에 자신이 원하지 않는 부분의 값을 넣어준다.
여기는 위와 다르게 형식을 다르게 넣어줘야한다.
<block loop="$displayDatas => $item" cond="$item->title != '경고 횟수'">
이렇게만 하면 회원 가입 / 회원 정보 수정 / 내 정보 보기 부분에서 내가 작성한것이 나타나지 않으며 관리자는 회원 수정 페이지에서 값을 수정하면 된다.
그리고 해당 값에 따른 값을 넣고싶으면
{@
$oMemberModel = &getModel('member');
$member_info = $oMemberModel->getMemberInfoByMemberSrl($oDocument->getMemberSrl());
$warning1 = $member_info->warning == '경고 1회';
$warning2 = $member_info->warning == '경고 2회';
$my = $logged_info->member_srl == $oDocument->get('member_srl');
$admin = $logged_info->is_admin == 'Y';
}
<!--@if($warning1 && $admin)-->
위 조건에 따른 값
<!--@else if($warning2 && $admin)-->
위 조건에 따른 값
<!--@else-->
그외
<!--@end-->
조건문 종료
이거만 기억하자