여분필드를 활용한 게시판 스킨 제작 - 여분 필드 10개 이상 사용하기
그누보드 여분 필드는 이전 강좌에서 살펴본 것과 같이 wr_1 부터 wr_10 까지 총 10개만 제공하고 있습니다.
10개도 적당해 보이긴 하지만 스킨 제작하면서 부족할 경우 참고해서 추가하면 됩니다.
방법은 어렵지 않습니다.
원하는 게시판 테이블에 wr_11, wr_12.... 등과 같이 필드를 생성하고 update 쿼리에서 추가하면 됩니다.
wr_10번 까지는 별도로 수정하지 않아도 이 과정들이 모두 기본으로 적용되어 있어서 그냥 가져다 쓰면 되지만 10번 이후부터는 저런 부분들을 수정해야 사용할 수 있습니다.
어떻게 생성하고 추가해야 하는지 좀 더 자세하게 살펴보겠습니다.
1. 필드 생성
phpMyAdmin 을 이용해서 원하는 개수만큼 필드를 생성합니다.
- 좌측에서 필드를 추가하고 싶은 게시판 테이블 선택
(게시판 테이블 이름은 g5_write_notice 형식으로 되어 있습니다. 뒤에 notice 부분이 게시판id 입니다)
- 상단 탭 메뉴에서 구조 클릭
- Add [10] field(s) 입력란에 원하는 개수 추가 (예를 들어 10개를 추가해보겠습니다)
- 위치는 wr_10 다음에 (wr_10 필드가 마지막에 있으므로 테이블의 마지막으로 선택해도 됩니다)
- 실행
기존에 있던 wr_10 번까지의 여분 필드와 동일한 형식으로 입력합니다.
모두 입력 후 저장 클릭!
정상적으로 추가되었는지 확인하세요.
기존 여분 필드와 필드 속성들이 동일한지 체크
2. 스킨 파일 수정
스킨 폴더 안에 write_update.skin.php 파일을 새로 생성하고 내용은 이렇게 하세요.
기본 스킨에는 이 파일이 없을 겁니다.
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$sql = " update $write_table
set wr_11 = '$wr_11',
wr_12 = '$wr_12',
wr_13 = '$wr_13',
wr_14 = '$wr_14',
wr_15 = '$wr_15',
wr_16 = '$wr_16',
wr_17 = '$wr_17',
wr_18 = '$wr_18',
wr_19 = '$wr_19',
wr_20 = '$wr_20'
where wr_id = '$wr_id' ";
sql_query($sql);
?>
* 유의 사항
마지막 이 부분 끝에는 쉼표가 절대 들어가면 안 됩니다. 나머지 변수는 쉼표를 꼭 넣어야 하고요.
wr_20 = '$wr_20'
여기서 실수하시는 분들이 꽤 많습니다.
추가된 개수에 상관없이 항상 마지막에는 쉼표를 제거하세요.
* 새로 추가한 필드에 정상적으로 값이 저장 및 수정되는지 확인
write.skin.php 파일에 추가해서 테스트
<input type="text" name="wr_11" value="<?php echo $write['wr_11'] ?>" id="wr_11" class="frm_input" size="20">
....
....
처음엔 기존 여분 필드와 똑같은 형식으로 추가해보면서 완벽하게 이해를 하신 상태에서
이후에는 필요에 따라 필드명을 원하는 이름으로 생성해도 되고 필드 타입도 변경해서 사용해도 됩니다.
wr_11 이런 필드명은 용도를 한눈에 파악하기 어려운 면도 있죠.
* 유의사항
11번 이후부터는 입력 페이지에서 value 값을 넣을 때 반드시 <?php echo $write['wr_11'] ?> 이렇게 해야 합니다.
간혹 <?php echo $wr_11 ?> 이렇게만 하시는 분들이 계시던데 수정 모드일 때 저장된 값을 불러오지 못합니다.
이유는 bbs/write.php 파일에서 $wr_ 가변 변수가 10번까지만 설정되어 있기 때문입니다.
여기서 수정해도 되긴 하지만 위 방법처럼 스킨에서 처리하는게 나중에 보안패치할 때 좋겠죠.
// 가변 변수로 $wr_1 .. $wr_10 까지 만든다.
for ($i=1; $i<=10; $i++) {
$vvar = "wr_".$i;
$$vvar = $write['wr_'.$i];
}
- 여분필드를 활용한 게시판 스킨 제작 - 기본적인 사용 방법
- 여분필드를 활용한 게시판 스킨 제작 - 기초 예제1-1 (글쓰기 페이지)
- 여분필드를 활용한 게시판 스킨 제작 - 기초 예제1-2 (목록 페이지)
- 여분필드를 활용한 게시판 스킨 제작 - 기초 예제1-3 (글읽기 페이지)
- 여분필드에 스마트 에디터 사용하기
- 게시판 설정에 있는 여분 필드란 무엇인가?
- 여분필드를 활용한 게시판 스킨 제작 - 여분 필드 10개 이상 사용하기
- 10개 이상의 여분필드를 사용할 때 게시판 생성 단계에서부터 추가하기
- 여분필드를 활용한 게시판 스킨 제작 - 댓글 쓰기 페이지에 적용하는 방법
- 게시판 설정에 있는 여분 필드 사용 예제
- 여분필드 사용 시 배열을 사용해서 체크박스 항목 만드는 방법
- 여분필드를 체크박스로 사용할 때 배열로 처리하는 방법
댓글목록 +8
댓글목록
서치마이잡님의 댓글
서치마이잡 작성일정말 감사합니다. 엄청난 도움이 되엇습니다.^^
관리자님의 댓글
관리자 작성일
phpmyadmin 사용이 곤란하다면 아래 플러그인을 사용하세요.
https://sir.kr/g5_plugin/867
토리님의 댓글
토리 작성일저도 많은 도움이 되었으면 합니다. 감사합니다~
킹맥스님의 댓글
킹맥스 작성일감사합니다
BlueSky님의 댓글
BlueSky 작성일게시판에 11~21번까지 추가 생성하여 적용했습니다. 1~10번까지 저장되고..11~21번은 에디터에서 수정하고 저장을 누르면 저장이 안됩니다...어떤 부분을 수정해야 하나요?...ㅠㅠ
관리자님의 댓글의 댓글
관리자 작성일
여분 필드에 에디터를 사용하려면 추가 수정을 더 해야 합니다.
http://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=14
BlueSky님의 댓글의 댓글
BlueSky 작성일에디터 적용을 하지 않고서는 저장을 할수 없나요?...1~10번은 저장이 됩니다....11번 부터..그 이후는 저자이 안되는 이유가 뭘까요?..write_update.php 에서...추가된 여분 필드 적용하면 저장이 됩니다.. 근데 다른 게시판에서는 저장이 안되는 현상이 발생됩니다....ㅠㅠ
관리자님의 댓글의 댓글
관리자 작성일
이해를 잘못하고 계시는 것 같습니다. 처음 질문을 잘 못 하신 것 같은데..
에디터에서 수정하고 저장했다고 하셔서 에디터는 추가 수정을 더 해야 한다고 답변을 드렸습니다.
강좌 내용과 똑같이 직접 해봤지만 잘 됩니다. 꼼꼼히 체크를 해보세요.