그누보드는 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'이라는 컴럼이 추가된다.
내가 만든 스킨 디렉토리에 파일을 추가해야 한다.
그누보드는 스킨 디렉토리에 대하여 테마폴더와 그냥 스킨폴더가 존재한다. 테마를 따로 선택하지 않았다면 그누보드의 스킨디렉토리는
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'라는 파일을 생성한다.
그리고 다음과 같이 위에서 데이터베이스에 새로 생성한 칼럼을 업데이트 할 수 있는 로직을 코딩한다.
<?php if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 $sql = " update $write_table set firmName = '$firmName' where wr_id = '$wr_id' "; sql_query($sql); ?>
WHERE 절 이 전에는 콤마(,)를 붙이지 않는 것에 대하여 유의하라.
write.skin.php 파일을 다음과 같이 고친다.
다음 코드와 같이 $write다음 배열에 추가한 컬럼을 적으면 된다.
<input type="text" name="wr_1" value="<?php echo $write['wr_1'] ?>" id="wr_1" required class="frm_input full_input required" size="50" maxlength="255" placeholder=""> <input type="text" name="firmName" value="<?php echo $write['firmName'] ?>" id="firmName" required class="frm_input full_input required" size="50" maxlength="255" placeholder="">
여분 필드인 wr_1이 이미 지정된 것에 반하여, 커스텀하게 만든 컬럼인 'firmName'이 역시 작용하는 것을 알 수 있다.
view.skin.php파일을 수정하면된다.
다음 코드와 같이 $view다음 배열에 추가한 컬럼을 짖어하면 된다.
<ul> <li> 회사이름 </li> <li> <?php echo $view['firmName']; // 글제목 출력 ?> </li> </ul>