여분필드를 활용한 게시판 스킨 제작 - 기본적인 사용 방법
스킨 제작할 때 가장 많이 활용되는 여분 필드 사용 방법을 살펴보겠습니다.
여분 필드란..
게시판을 사용할 때 작성자, 이메일 주소, 홈페이지 주소, 제목, 내용 등 기본적으로 정해진 항목만 입력받을 수 있는데 기본 입력 항목 외에 추가로 입력받고 싶은 값들이 있을 때 주로 활용되는 필드입니다
그누보드는 각 게시판별로 여분 필드를 1번부터 10번까지 총 10개를 기본 제공합니다
기본 여분 필드명은 다음과 같습니다. 1번부터 10번까지 있습니다
번호는 순서대로 사용할 필요는 없고 원하는 곳에 남는 필드를 가져다 쓰면 됩니다
wr_1
wr_2
wr_3
wr_4
wr_5
wr_6
wr_7
wr_8
wr_9
wr_10
각 항목에 required 를 사용하면 해당 입력 항목을 필수 입력으로 설정할 수 있습니다.
필수가 아닌 선택 입력으로 하고 싶으면 required 부분만 지우면 됩니다.
1. text 입력 방식으로 사용할 때
<input type="text" name="wr_1" value="<?php echo $write['wr_1'] ?>" id="wr_1" required class="frm_input" size="20">
2. textarea 입력 방식으로 사용할 때
<textarea name="wr_2" id="wr_2" required rows="5"><?php echo $write['wr_2'] ?></textarea>
3. select box로 사용할 때
<select name="wr_3" id="wr_3" required>
<option value="">선택하세요.</option>
<option value="남자"<?php echo ($write['wr_3'] == "남자") ? " selected" : "";?>>남자</option>
<option value="여자"<?php echo ($write['wr_3'] == "여자") ? " selected" : "";?>>여자</option>
</select>
4. radio button으로 사용할 때
<input type="radio" name="wr_4" value="봄"<?php echo ($write['wr_4'] == "봄") ? " checked" : "";?> required> 봄
<input type="radio" name="wr_4" value="여름"<?php echo ($write['wr_4'] == "여름") ? " checked" : "";?> required> 여름
<input type="radio" name="wr_4" value="가을"<?php echo ($write['wr_4'] == "가을") ? " checked" : "";?> required> 가을
<input type="radio" name="wr_4" value="겨울"<?php echo ($write['wr_4'] == "겨울") ? " checked" : "";?> required> 겨울
5. checkbox로 사용할 때 (단일 선택)
<input type="checkbox" name="wr_5" value="예약신청"<?php echo ($write['wr_5'] == "예약신청") ? " checked" : "";?>> 예약신청
5-1. checkbox 다중 선택
다중 선택할 땐 각각 다른 여분필드를 여러 개 추가해서 사용하는 방법이 있고
<input type="checkbox" name="wr_5" ..........
<input type="checkbox" name="wr_6" ..........
<input type="checkbox" name="wr_7 ..........
아니면 여분 필드 하나를 여러 개로 쪼개서 사용하는 방법이 있습니다.
아래 내용은 그렇게 좋은 방법은 아니며 아주 기초적인 내용이므로 참고만 하세요.
예를 들어 여분필드 8번을 사용한다고 했을 때 write.skin.php 파일에서 이렇게 원하는 개수만큼 추가합니다.
[0], [1], [2]....... 이 부분 숫자를 차례대로 늘려서 사용하면 됩니다.
<?php
$wr8 = explode("|", $write['wr_8']);
?>
<input type="checkbox" name="wr8[0]" value="사과" <?php echo ($wr8[0] == "사과") ? "checked" : "";?>> 사과
<input type="checkbox" name="wr8[1]" value="수박" <?php echo ($wr8[1] == "수박") ? "checked" : "";?>> 수박
<input type="checkbox" name="wr8[2]" value="딸기" <?php echo ($wr8[2] == "딸기") ? "checked" : "";?>> 딸기
<input type="checkbox" name="wr8[3]" value="포도" <?php echo ($wr8[3] == "포도") ? "checked" : "";?>> 포도
<input type="checkbox" name="wr8[4]" value="참외" <?php echo ($wr8[4] == "참외") ? "checked" : "";?>> 참외
동일한 스킨 폴더 안에 write_update.skin.php 파일을 새로 만들어 줍니다.
basic 스킨에서는 이 파일은 기본적으로 없을 겁니다.
파일을 새로 생성한 다음 아래 내용 그대로 복사해서 넣습니다.
위에서 쪼개 놓은 필드를 다시 합쳐서 DB 에 넣는 내용입니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$wr_8 = "$wr8[0]|$wr8[1]|$wr8[2]|$wr8[3]|$wr8[4]";
sql_query(" update $write_table set wr_8 = '$wr_8' where wr_id = '$wr_id' ");
?>
여분필드를 저렇게 쪼개서 저장하고 view.skin.php 파일에서 일반적인 출력 방법인
<?php echo $view['wr_8'] ?> 이렇게 하면 중간 빈자리까지 구분 기호 '|' 가 있어서 뭔가 어색해 보일 겁니다.
그럴 땐 개별적으로 다시 분리를 해서 출력하는 방법도 있습니다.비효율적인 방법이지만 이미지로 디자인하거나 페이지 중간에 개별적으로 끼워 넣을 때는 더 편할 때도 있을 겁니다.
직접 해보시고 차이점을 비교해보세요.
<?php
$wr8 = explode("|", $view['wr_8']);
?>
<?php if($wr8[0]) { ?> 사과 <?php } ?>
<?php if($wr8[1]) { ?> 수박 <?php } ?>
<?php if($wr8[2]) { ?> 딸기 <?php } ?>
<?php if($wr8[3]) { ?> 포도 <?php } ?>
<?php if($wr8[4]) { ?> 참외 <?php } ?>
필드 하나를 배열로 쪼개서 사용하는 방법은 체크박스뿐만 아니라
일반적인 입력 필드에도 동일한 방법으로 사용 가능합니다.
배열을 이용한 체크박스 활용 방법 (좀 더 간편한 방식)
http://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=177
- 여분필드를 활용한 게시판 스킨 제작 - 기본적인 사용 방법
- 여분필드를 활용한 게시판 스킨 제작 - 기초 예제1-1 (글쓰기 페이지)
- 여분필드를 활용한 게시판 스킨 제작 - 기초 예제1-2 (목록 페이지)
- 여분필드를 활용한 게시판 스킨 제작 - 기초 예제1-3 (글읽기 페이지)
- 여분필드에 스마트 에디터 사용하기
- 게시판 설정에 있는 여분 필드란 무엇인가?
- 여분필드를 활용한 게시판 스킨 제작 - 여분 필드 10개 이상 사용하기
- 10개 이상의 여분필드를 사용할 때 게시판 생성 단계에서부터 추가하기
- 여분필드를 활용한 게시판 스킨 제작 - 댓글 쓰기 페이지에 적용하는 방법
- 게시판 설정에 있는 여분 필드 사용 예제
- 여분필드 사용 시 배열을 사용해서 체크박스 항목 만드는 방법
- 여분필드를 체크박스로 사용할 때 배열로 처리하는 방법
댓글목록 +7
댓글목록
김철용님의 댓글
김철용 작성일여분필드가 뭐하는 것인가 궁금했었는데, 이제 알겠네요^^
서치마이잡님의 댓글
서치마이잡 작성일감사합니다.
토리님의 댓글
토리 작성일설명이 형식적인게 아니고 디테일합니다. 감사합니다.
킹맥스님의 댓글
킹맥스 작성일Thanks
태봉님의 댓글
태봉 작성일감사합니다.
강용님의 댓글
강용 작성일체크박스를 필수 입력으로 하려면 어디에 required 를 추가해야 하는지요?
관리자님의 댓글의 댓글
관리자 작성일
단일이면 다른 방법과 마찬가지로 이렇게 required 를 추가하면 되는데
<input type="checkbox" name="wr_5" value="예약신청"<?php echo ($write['wr_5'] == "예약신청") ? " checked" : "";?> required>
다중 선택일 때는 스크립트를 사용해야 합니다. 구글에서 검색하면 방법은 많이 나올 겁니다.