===== 개요 =====
그누보드는 10개의 여분필드를 제공한다. 게시판을 생성하면 wr_1부터 wr_10까지의 필드가 기본적으로 추가적으로 만들어진다.
하지만 필드 제목이 wr_1~wr_10으로써, 필드 제목이 직관적이지 않으며, 10개로 제한되어 있어 10개 이상의 필드를 만들려면 곤란해진다.
하지만 그누보드는 로직부분(bbs 폴더 안에 있는 파일들)을 건드리지 않고도 커스텀한 필드를 쉽게 만들 수 있게 설계되어 있다.
이에 대하여 알아 보자
===== 필드 추가 =====
게시판을 생성하면 (당연하겠지만) mysql에 테이블이 만들어진다.
phpMyAdmin이든 각자의 sql 매니저든을 통하여 들어가보자. 그러면 g5_write_라는 접두어로 테이블이 하나 만들어진다.
만약 lawfirmReview라는 게시판을 생성하였다면 g5_write_lawfirmReview라는 테이블이 만들어졌을 것이다.
이 테이블에 [구조]라는 탭으로 들어간 후 컬럼을 추가한다. 나는 'firmName'으로 컴럼을 만들었다.
그러면 다음과 wr_10이라는 컴럼(필드) 아래에 'firmName'이라는 컴럼이 추가된다.
{{:그누보드:테이블에컬럼추가.png?600|테이블에 컬럼추가}}
===== 스킨에서 확장필드 추가하기 =====
==== 1. 내 스킨에서 확장필드 관련 로직 추가하기 ====
내가 만든 스킨 디렉토리에 파일을 추가해야 한다.
그누보드는 스킨 디렉토리에 대하여 테마폴더와 그냥 스킨폴더가 존재한다. 테마를 따로 선택하지 않았다면 그누보드의 스킨디렉토리는
PC버전의 경우 [skin]폴더 아래에 있고, 모바일 버전의 경우 [mobile] -> [skin] 폴더에 있다.
따라서 테마를 적용하지 않은 경우, PC버전의 스킨은 [root]->[skin]폴더에 있다.
만약 내가 만든 스킨의 이름이 'lawfirm'이라면 [root]->[skin]->[lawfirm]이다.
일단 [skin]폴더내에 [basic]으로 명명된 기본 게시판 스킨을 복사하여 [lawfirm] 이라고 붙여넣기 하자.
그럼 이 폴더 내에는, 다음과 같은 파일들이 있을 것이다.
list.skin.php
view_skin.php
view_comment.skin.php
wrtie.skin.php
write.update.skin.php
이름 그대로, 목록, 보기, 쓰기에 필요한 스킨들이다.
이 폴더에 'write_update.skin.php'라는 파일을 생성한다.
그리고 다음과 같이 위에서 데이터베이스에 새로 생성한 칼럼을 업데이트 할 수 있는 로직을 코딩한다.
WHERE 절 이 전에는 콤마(,)를 붙이지 않는 것에 대하여 유의하라.
==== 2. 쓰기 기능 구현하기 ====
write.skin.php 파일을 다음과 같이 고친다.
다음 코드와 같이 $write다음 배열에 추가한 컬럼을 적으면 된다.
여분 필드인 wr_1이 이미 지정된 것에 반하여, 커스텀하게 만든 컬럼인 'firmName'이 역시 작용하는 것을 알 수 있다.
{{:그누보드:확장필드쓰기기능스크린샷.png?600|확장필드쓰기기능스크린샷}}
==== 3. 읽기 기능 구현하기 ====
view.skin.php파일을 수정하면된다.
다음 코드와 같이 $view다음 배열에 추가한 컬럼을 짖어하면 된다.
회사이름
{{:그누보드:확장필드읽기기능스크린샷.png?600|확장필드읽기기능스크린샷}}
==== 4. 목록 기능 구현하기 ====
목록은 list.skin.php 파일이다.
다음과 같이 $list[$i]다음에 해당 컬럼을 배열으로 주면 된다.
{{:그누보드:확장필드목록기능스크린샷.png?600|확장필드목록기능스크린샷}}