한개의 게시판으로 다양한 출력형태 구현하기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

한개의 게시판으로 다양한 출력형태 구현하기 정보

한개의 게시판으로 다양한 출력형태 구현하기

본문

1. 게시판 list.skin.php 에 아래 코드 적용
--------------------------------------
 if($board[bo_10]){
    include_once("$board_skin_path/list/$board[bo_10]");

     //웹페이지인경우
     if($board[bo_10] == 'page.skin.php'){
      if($admin_href)
            include_once("$board_skin_path/adm.skin.php");
  }

 }
 else
  include_once("$board_skin_path/list/basic.skin.php");

2. 스킨 디렉토리에 list  폴더 생성
예) g4/skin/board/basic/list

-->  list 폴더에 목록에서 출력할 형태의 소스를 넣는다.

3. 관리자 board_form.php 에 여분필드 10을 아래와 같이 수정
----------------------------------------------------------
<tr class='ht'>
    <td><input type=checkbox name=chk_10 value=1></td>
    <td>여분필드 설정</td>
    <td>

 <?
 if($board[bo_skin] == 'basic'){
         $set_file  = $board[bo_skin]."/list";

   ?>
        <select name=bo_10 required itemname="출력형태">
        <?
        $arr = get_file_dir($set_file);
        for ($i=0; $i<count($arr); $i++) {
            echo "<option value='$arr[$i]'>$arr[$i]</option>\n";
        }
        ?></select>
  <script language="JavaScript">document.fboardform.bo_10.value="<?=$board[bo_10]?>";</script>
   <?}

 else{
 ?><input type=text class=ed style='width:80%;' name='bo_10' value='<?=get_text($board["bo_10"])?>' title='여분필드 10 설정값'><?}
 ?>
 </td>
</tr>
<tr><td colspan=3 class='line2'></td></tr>

 


<? for ($i=1; $i<=9; $i++) { ?>
<tr class='ht'>
    <td><input type=checkbox name=chk_<?=$i?> value=1></td>
    <td><input type=text class=ed name='bo_<?=$i?>_subj' value='<?=get_text($board["bo_{$i}_subj"])?>' title='여분필드 <?=$i?> 제목' style='text-align:right;font-weight:bold;'></td>
    <td><input type=text class=ed style='width:80%;' name='bo_<?=$i?>' value='<?=get_text($board["bo_$i"])?>' title='여분필드 <?=$i?> 설정값'></td>
</tr>
<? } ?>
-----------------------------------------------------------

4. amin.lib.php   에 아래코드 추가
-------------------------------

// 스킨경로를 얻는다
function get_file_dir($skin, $len='')
{
    global $g4;

    $result_array = array();

    $dirname = "$g4[path]/skin/board/$skin/";
    $handle = opendir($dirname);
 $i=0;
    while ($file = readdir($handle))
    {
        if($file == "."||$file == "..") continue;

        if (!(is_dir($dirname.$file))){
           if (!(preg_match("/\.(bak)$/i", $file)))
   $result_array[] = $file;
  }
  $i++;

    }
    closedir($handle);
    sort($result_array);

    return $result_array;
}

----------------------------------------------------

5. 응용하기

기존 공개된 스킨들의 list.skin.php 파일들을  list 폴더에  파일명을 변형하여 세팅합니다.

예) list.skin.php    ---> list/web.skin.php  

**    if (!(preg_match("/\.(bak)$/i", $file)))
==>> 소스중에 이부분을 넣는 이유는 원본파일을 새로작성할 경우 bak 파일이 생성되어 검색이 되기때문에 예외를 시켜주어야 합니다.

추천
6

댓글 9개

전체 81 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT