그누보드4 회원 추가필드 검색 기능 확장 방법
페이지 정보

본문
그누보드4 운영 시 회원 추가필드(mb3, mb4 등)를 활용하여 회원 검색 조건을 확장하고, 페이징 링크에서 검색 파라미터를 유지하는 방법을 살펴봅니다.
그누보드4 회원 추가필드 검색 쿼리 수정 방법
그누보드4(G4) 관리자 회원관리 페이지에서 기본 검색 쿼리문($sql_search)을 수정하여 mb_3(학년), mb_4(반) 같은 회원 추가필드와 sfl2 파라미터를 연동해 검색 조건을 확장할 수 있습니다. 사용 중인 커스텀 회원 테이블 구조에 따라 필드명이 다를 수 있으므로 작업 전 확인이 필요합니다.
1. 검색 쿼리문 수정
회원관리 검색 쿼리($sql_search)에서 switch ($sfl) 조건문 내에 추가필드 조건을 추가합니다.
$sql_search = " where (1) ";
if ($stx) {
$sql_search.= " and ( ";
switch ($sfl) {
case "mb_point":
$sql_search.= " ($sfl >= '$stx') ";
break;
case "mb_level":
$sql_search.= " ($sfl = '$stx') ";
break;
case "mb_3": // 학년
case "mb_4": // 반
$sql_search.= " ($sfl like '%$stx') and (mb_3 = '$sfl2') ";
break;
case "mb_tel":
case "mb_hp":
$sql_search.= " ($sfl like '%$stx') ";
break;
default:
$sql_search.= " ($sfl like '$stx%') ";
break;
}
$sql_search.= " ) ";
}
2. 관리자 검색 폼 셀렉트박스 수정
관리자 회원 목록 검색 폼의 셀렉트박스(sfl)와 추가필드용 셀렉트박스(sfl2)를 아래와 같이 구성하여 학년/반 등의 조건을 입력받을 수 있게 배치합니다.
<td width=50% align=right>
<select name=sfl class=cssfl>
<option value='mb_id'>회원아이디</option>
<option value='mb_1'>회원구분</option>
<option value='mb_4'>학년/반</option>
<option value='mb_name'>이름</option>
<option value='mb_nick'>별명</option>
<option value='mb_level'>권한</option>
<option value='mb_email'>E-MAIL</option>
<option value='mb_tel'>전화번호</option>
<option value='mb_hp'>핸드폰번호</option>
<option value='mb_point'>포인트</option>
<option value='mb_datetime'>가입일시</option>
<option value='mb_ip'>IP</option>
<option value='mb_recommend'>추천인</option>
</select>
<select name=sfl2 class=cssfl>
<option value=''>학년선택</option>
<option value='1'<? if ($sfl2 == "1") {?> selected<? }?>>1학년</option>
<option value='2'<? if ($sfl2 == "2") {?> selected<? }?>>2학년</option>
<option value='3'<? if ($sfl2 == "3") {?> selected<? }?>>3학년</option>
</select>
<input type=text name=stx required itemname='검색어' value='<? echo $stx?>'>
<input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle><br />
회원구분: 일반, 재학생, 졸업생, 학부모, 교직원</td>
3. 페이징 링크 파라미터 유지 수정
검색 결과 페이지 이동 시 추가필터 값(sfl2)이 누락되지 않도록 페이징 함수(get_paging) 호출부를 수정합니다.
$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "?sfl2=$sfl2&$qstr&page=");
관리자 검색 폼 추가필드 셀렉트박스(sfl2) 추가 방법
그누보드4 관리자 회원관리 화면의 검색 폼에서 학년, 반 등의 추가필드를 활용해 검색 조건을 세밀하게 지정할 수 있도록 셀렉트박스를 추가하는 방법입니다.
검색 폼 HTML 수정
관리자 회원 검색 영역의 셀렉트박스(name=sfl) 하단 또는 적절한 위치에 추가필드용 셀렉트박스(name=sfl2)를 삽입합니다. 기존 코드의 예시와 변경 예시는 다음과 같습니다.
수정 전 기본 검색 폼 예시
<td width=50% align=right>
<select name=sfl class=cssfl>
<option value='mb_id'>회원아이디</option>
<option value='mb_name'>이름</option>
<option value='mb_nick'>별명</option>
<option value='mb_level'>권한</option>
<option value='mb_email'>E-MAIL</option>
<option value='mb_tel'>전화번호</option>
<option value='mb_hp'>핸드폰번호</option>
<option value='mb_point'>포인트</option>
<option value='mb_datetime'>가입일시</option>
<option value='mb_ip'>IP</option>
<option value='mb_recommend'>추천인</option>
</select>
<input type=text name=stx required itemname='검색어' value='<? echo $stx?>'>
<input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle></td>
수정 후 추가필드 셀렉트박스 포함 예시
<td width=50% align=right>
<select name=sfl class=cssfl>
<option value='mb_id'>회원아이디</option>
<option value='mb_1'>회원구분</option>
<option value='mb_4'>학년/반</option>
<option value='mb_name'>이름</option>
<option value='mb_nick'>별명</option>
<option value='mb_level'>권한</option>
<option value='mb_email'>E-MAIL</option>
<option value='mb_tel'>전화번호</option>
<option value='mb_hp'>핸드폰번호</option>
<option value='mb_point'>포인트</option>
<option value='mb_datetime'>가입일시</option>
<option value='mb_ip'>IP</option>
<option value='mb_recommend'>추천인</option>
</select>
<select name=sfl2 class=cssfl>
<option value=''>학년선택</option>
<option value='1'<? if ($sfl2 == "1") {?> selected<? }?>>1학년</option>
<option value='2'<? if ($sfl2 == "2") {?> selected<? }?>>2학년</option>
<option value='3'<? if ($sfl2 == "3") {?> selected<? }?>>3학년</option>
</select>
<input type=text name=stx required itemname='검색어' value='<? echo $stx?>'>
<input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle><br /> 회원구분: 일반, 재학생, 졸업생, 학부모, 교직원</td>
주의사항 및 다음 행동
- 운영 중인 커스텀 회원 테이블 구조에 따라 실제 필드명(
mb_3,mb_4등)이 다를 수 있으므로 작업 전 DB 테이블 구조를 확인해야 합니다. - 화면의 셀렉트박스(
sfl2) 추가와 함께 백엔드 검색 쿼리문($sql_search) 수정 및 페이징 함수(get_paging)의 파라미터 유지 처리가 함께 반영되어야 검색 결과가 정상적으로 연동됩니다.
회원 추가필드 검색 시 페이징 링크 파라미터 유지 방법
그누보드4 환경에서 회원 추가필드(예: mb_3, mb_4)를 활용한 검색 기능을 추가한 후, 검색 결과 목록에서 페이지를 이동할 때 추가 검색 조건(예: sfl2)이 유지되도록 하려면 페이징 함수 호출부를 수정해야 합니다.
수정 방법
기본 페이징 함수 호출 코드에서 ?$qstr&page= 형식으로 전달되던 인자를 추가 검색 파라미터가 포함된 형태로 변경합니다.
- 수정 전 코드
$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "?$qstr&page="); - 수정 후 코드
$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "?sfl2=$sfl2&$qstr&page=");
조건 및 주의사항
- 사용 중인 커스텀 회원 테이블 구조나 추가필드 명칭에 따라 필드명이 다를 수 있으므로 운영 중인 환경의 DB 필드명을 확인해야 합니다.
함께 보면 좋은 글
참고자료
기타 참고자료
- 이전글그누보드 클럽 매니저 변경 시 게시판 관리자 자동 연동 방법 26.10.03
- 다음글그누보드 네이버 소셜 로그인 가입 시 닉네임 대신 이메일 아이디가 들어가는 원인과 해결 방법 26.10.02
댓글목록
등록된 댓글이 없습니다.