크롬80버전 결제 이슈, 영카트5 주요패치 확인!

게시판 카테고리 중복 체크 가능하게 하기 > 그누보드5 팁자료실

컨텐츠몰 10% 할인
그누보드5
영카트5
매뉴얼
Q & A
제작의뢰
컨텐츠몰
부가서비스
소모임
커뮤니티

그누보드5 팁자료실

게시판 카테고리 중복 체크 가능하게 하기 정보

게시판 카테고리 중복 체크 가능하게 하기

본문

기존에 팁에 올라왔던게 있었는데

리스트에서는 어떻게 처리할지 고민하다가 제가 해결한 방법 올립니다.

 

ca_name 방식으로 불러오는것이 아닌 sca로 불러오도록 하였습니다.

 

991938377_1574728917.7518.jpg

 

 

1. 해당 게시판 스킨의 write.skin.php 파일 카테고리 부분을 아래와 같이 변경

<tr>
<th>카테고리</th>
<td>
<?php
    $arr = explode("|",$board['bo_category_list']);
    foreach($arr as $str) { ?>
        <input type="checkbox" name="chk_ca_name[]" value="<?php echo $str; ?>"> <?php echo $str; ?>
    <?php } ?>
      <script>
        var f = document.fwrite;
        var str=",<?php echo $write[ca_name]?>,";
        for (var i=0; i<f.length; i++) {
            if (f.elements[i].name == "chk_ca_name[]") {
                if (str.indexOf(','+f.elements[i].value+',')>=0) {
                    f.elements[i].checked = true;
                }
            }
        }
    </script>
</td>
</tr>

 

 

2. write_update.head.skin.php 파일 생성

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$ca_name='';
foreach($_POST[chk_ca_name] as $var) {
 $ca_name.=",$var";
}
if (strlen($ca_name)) $ca_name=substr($ca_name,1);
?>

 

 

3. bbs/list.php에서 아래부분(11번째줄쯤)을

    if ($sca=='')
        $category_option .= ' id="bo_cate_on"'; 

 

아래와 같이 변경 (&& stx==''추가)

    if ($sca=='' && $stx=='') 
        $category_option .= ' id="bo_cate_on"';

 

 

 

4. bbs/list.php에서 아래부분(17~27번째줄쯤)을

for ($i=0; $i<count($categories); $i++) {
            $category = trim($categories[$i]);
            if ($category=='') continue;
            $category_option .= '<li><a href="'.($category_href."&sca=".urlencode($category)).'"';
            $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 ($bo_table == "게시판아이디") {

        for ($i=0; $i<count($categories); $i++) {
                $category = trim($categories[$i]);
                if ($category=='') continue;
                $category_option .= '<li><a href="'.($category_href."&sfl=ca_name%2C1&&stx=".urlencode($category)).'&sop=or"'; 
                $category_msg = '';
                if ($category==$stx) {
                    $category_option .= ' id="bo_cate_on"';
                    $category_msg = '<span class="sound_only">열린 분류</span>';
                }
                $category_option .= '>'.$category_msg.$category.'</a></li>';
        }
      } else {
          /* original */
          for ($i=0; $i<count($categories); $i++) {
            $category = trim($categories[$i]);
            if ($category=='') continue;
            $category_option .= '<li><a href="'.($category_href."&sca=".urlencode($category)).'"';
            $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>';
        }
           /* original */
      }

 

 

 

5. bbs/write_update.php 에서

if($board['bo_use_category']) { } 위아래를 if ($bo_table !== "게시판아이디") { }로 감싸주세요.

 

if ($bo_table !== "게시판아이디") {  //추가
 
        /* original */
        if($board['bo_use_category']) {
       
            $ca_name = trim($_POST['ca_name']);
            if(!$ca_name) {
                $msg[] = '<strong>분류</strong>를 선택하세요.';
            } else {
                $categories = array_map('trim', explode("|", $board['bo_category_list'].($is_admin ? '|공지' : '')));
                if(!empty($categories) && !in_array($ca_name, $categories))
                    $msg[] = '분류를 올바르게 입력하세요.';
       
                if(empty($categories))
                    $ca_name = '';
            }
       
        } else {
            $ca_name = '';
       
        }
       /* original */
   
}  //추가

 

해당게시판에서만 분류 선택을 안하더라도 경고창 안뜨게 했습니다.

체크박스로 바꾸니 값이 없는것처럼 받아들여서 일단은 해당 스킨에서는 분류가 필수값이 아니도록 설정했는데 일반 회원들이 글을 쓰게 하는 게시판의 경우에는 조금 더 손을 보셔야할것 같습니다.

추천6

댓글 전체

전체 1,656 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT