목차

개요

그누보드는 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'이라는 컴럼이 추가된다.

테이블에 컬럼추가

스킨에서 확장필드 추가하기

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'라는 파일을 생성한다.

그리고 다음과 같이 위에서 데이터베이스에 새로 생성한 칼럼을 업데이트 할 수 있는 로직을 코딩한다.

"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 절 이 전에는 콤마(,)를 붙이지 않는 것에 대하여 유의하라.

2. 쓰기 기능 구현하기

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'이 역시 작용하는 것을 알 수 있다.

확장필드쓰기기능스크린샷

3. 읽기 기능 구현하기

view.skin.php파일을 수정하면된다.

다음 코드와 같이 $view다음 배열에 추가한 컬럼을 짖어하면 된다.

            <ul>
                <li> 회사이름 </li>
                <li>  <?php echo $view['firmName']; // 글제목 출력 ?>   </li>
            </ul>

확장필드읽기기능스크린샷

4. 목록 기능 구현하기

목록은 list.skin.php 파일이다.

다음과 같이 $list[$i]다음에 해당 컬럼을 배열으로 주면 된다.

                    <?php echo $list[$i]['firmName'] ?>

확장필드목록기능스크린샷