📑 그누보드

그누보드 게시판 1개 / 스킨 여러개

(。θᗨθ。) 2022. 6. 14. 17:20
레퍼런스 사이트
사용 그누보드 버전 : 5.5.7.2

 

 

 

1. 게시판 기본 설정

분류 사용

2. 게시판 여분필드 사용

여분필드 5번이 리스트에 필요함 / 나머지는 뷰 스킨에서 필요함

 

3. 스킨 설정

4가지 다른 스킨을 적용시킬 것

- write.skin.php / 여분필드 입력칸

<div class="write_div">
    <input type="text" name="wr_6" value="<?php echo $wr_6 ?>" id="wr_6" required class="frm_input full_input required" size="50" maxlength="255" placeholder="Eng">
</div>
<div class="write_div">
    <input type="text" name="wr_1" value="<?php echo $wr_1 ?>" id="wr_1" required class="frm_input full_input required" size="50" maxlength="255" placeholder="Location">
</div>
<div class="write_div">
    <input type="text" name="wr_2" value="<?php echo $wr_2 ?>" id="wr_2" required class="frm_input full_input required" size="50" maxlength="255" placeholder="Type">
</div>
<div class="write_div">
    <input type="text" name="wr_3" value="<?php echo $wr_3 ?>" id="wr_3" required class="frm_input full_input required" size="50" maxlength="255" placeholder="Area">
</div>
<div class="write_div">
    <input type="text" name="wr_4" value="<?php echo $wr_4 ?>" id="wr_4" required class="frm_input full_input required" size="50" maxlength="255" placeholder="Floor">
</div>
<div class="write_div">
    <input type="text" name="wr_5" value="<?php echo $wr_5 ?>" id="wr_5" required class="frm_input full_input required" size="50" maxlength="255" placeholder="Year">
</div>

 

- view.skin.php / 여분필드 출력

<h3><?php echo $view['wr_6'] ?></h3>
//list,view,write 스킨에 다 적용

// 최상단에 추가해서 파라미터 값 가져옴 << href 링크 이동 할 때마다 그 파라미터 값 붙여주기 위해
<?php 
$url = $_SERVER["REQUEST_URI"];
$components = parse_url($url);
parse_str($components['query'], $results);
$viewId = $results['viewId']; 
?> 

//링크되는 곳에 .'&viewId='.$viewId 붙여줌
//ex) list.skin.php
<a href="<?php echo $list[$i]['href'].'&viewId='.$viewId ?>">
//ex) view.skin.php
<a href="<?php echo $list_href.'&viewId='.$viewId ?>"

 

- 파라미터명.list.skin.php / 각 메뉴에 맞게 코드작성하면 됨

 

 

4. 그누보드 기본 common.php 수정

// 리스트 페이지 밑에 삽입하면 됨

if ($viewId) {
    $qstr .= '&viewId='.$viewId;
}

 

 

5. 그누보드 bbs/list.php 수정

//분류 사용 여부에도 &viewID 파라미터 붙여줌

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// 분류 사용 여부
$is_category = false;
$category_option = '';
if ($board['bo_use_category']) {
    $is_category = true;
    $category_href = get_pretty_url($bo_table);

    $category_option .= '<li><a href="'.$category_href.'&viewId='.$viewId.'"';
    if ($sca=='')
        $category_option .= ' id="bo_cate_on"';
    $category_option .= '>전체</a></li>';

    $categories = explode('|', $board['bo_category_list']); // 구분자가 , 로 되어 있음
    for ($i=0; $i<count($categories); $i++) {
        $category = trim($categories[$i]);
        if ($category=='') continue;
        $category_option .= '<li><a href="'.(get_pretty_url($bo_table,'','sca='.urlencode($category))).'&viewId='.$viewId.'"';
        $category_msg = '';
        if ($category==$sca) { // 현재 선택된 카테고리라면
            $category_option .= ' id="bo_cate_on"';
            $category_msg = '<span class="sound_only">열린 분류 </span>';
        }
        $category_option .= '>'.$category_msg.$category.'</a></li>';
    }
}




// 맨 아래
if($viewId){
    include_once($board_skin_path.'/'.$viewId.'.list.skin.php');
} else {
    include_once($board_skin_path.'/list.skin.php');
}

 

 

6. 메뉴 링크 설정

Types에서 마지막 분류는 스타일로 display: none처리 / Years는 여분필드 5번에서 검색한다 / Competition은 분류 불러오는 것

 

728x90