카테고리 목록 select값으로 불러오기

카테고리 목록 select값으로 불러오기

QA

카테고리 목록 select값으로 불러오기

답변 2

본문

그누보드 커스텀을 진행하다가 헤매고 있습니다..

글 목록페이지에서 ca_name 값으로 등록된 값으로 분류를 하고 싶습니다.

완전 초보이다보니 함수실행구문을 해석해가면서 해야 하는 상황인데요..ㅠ

 

[ 제가 하고 싶은 것! ▼]

2949014235_1543939933.9979.png

 

외부 URL에서 ca_name값을 form의 post값으로 넘겨

게시글 자체에 분류값(유입경로)을 만드는 것 까지는 성공 했습니다.

(실제로는 게시판을 생성할 때 bo_category_list 에 넣어야 할 값들..)


그러나..

게시글 목록 페이지에서 select의 option(카테고리 자동으로 불러오기) 값으로 나열해서 보고 싶으나 bo_category_list에는 값이 들어가지 않아 분류 리스트를 불러오지 못하고 있습니다.

 

그래서 한참 헤매던 중 위티코드님이 올려주신 분류생성함수를 발견하였는데,

 

lib/common.lib.php 파일에도 넣어보고 list.php 파일에도 넣어보고
list.skin.php 파일에도 넣어보고 board_list.php 파일에도 넣어보고...
write_update.skin.php 파일에도 다 넣어보았으나 동작을 하지 않습니다..

 

ㅠ.ㅠ혹시 도움을 주실 수 있을까요?

아래는 위티코드(https://sir.kr/g5_tip/7530)님의 글을 발췌하여 해석해보았습니다..

 

이 방법 말고 ca_name 목록 자체를 불러올 수 있는 방법이 있다면 도움을 부탁드립니다.

 

 


    //카테고리를 추가하는 함수를 실행한다 (비교 대상인 a와 b가 인자로 전달된다)
    function CategoryAdd($ca_name, $bo_table){
            //ca_name 은
            if($ca_name){
                //row = mysql에서 정보를 가져온다 ( 지정한테이블게시판에 있는 카테고리 리스트 값 )
                $row = sql_fetch(" select bo_category_list from g5_board where bo_table = '".$bo_table."' ");
                //cut = 게시판카테고리리스트의 값 | 기준으로 문자열을 분할한다
                $cut = explode("|", $row['bo_category_list']);
                //만약 분할한 값이 0이라면
                if(count($cut) == 0)
                //add_category 는 ca_name값과 같다
          $add_category = $ca_name;
                //또는 (0이 아니라면)
                else
          // add_category 는 테이블게시판에 있는 카테고리 리스트값 + | + ca_name값
          $add_category = $row['bo_category_list']."|".$ca_name;
               
                //만약 ca_name값과 게시판카테고리리스트의 값 | 기준으로 문자열을 분할한 값을 비교했을 때 값이 없으면
                if(!in_array($ca_name, $cut)){
                    // 쿼리를 실행한다 g5_board의 bo_category_list 에 카테고리 값(ca_name)을 추가한다 - 선택한 테이블값에
                    sql_query(" update g5_board set bo_category_list = '".$add_category."' where bo_table = '".$bo_table."' ");
                }
            }
    }
 

 

 

 

이 질문에 댓글 쓰기 :

답변 2

write_update.skin.php 파일에

올리신 함수와 함께

<?php CategoryAdd($ca_name$bo_table);?>

구문 추가 하시면 될 것 같은데요

혹시 저와 같은 어려움을 가지신 분이 있을까 하여 수정한 파일을 첨부합니다!

도움주신 볼피드님 정말정말 감사합니다!

코드를 작성해주신 위티코드님께도 감사말씀드립니다.

 

write_update.skin.php


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if ($w != 'u') {
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>신청되었습니다.</title>
    <link rel="stylesheet" href="">
</head>
<body>
    <!--[S] 관련스크립트 삽입-->
    <script>
    </script>
    <!--[E] 관련스크립트 삽입-->
    <script>
        alert('신청되었습니다.');
        location.href = '<?php echo $url; ?>';
    </script>
</body>
</html>
<?php CategoryAdd($ca_name, $bo_table);
    //카테고리를 추가하는 함수를 실행한다 (비교 대상인 a와 b가 인자로 전달된다)
    function CategoryAdd($ca_name, $bo_table){
            //ca_name 은
            if($ca_name){
                //row = mysql에서 정보를 가져온다 ( 지정한테이블게시판에 있는 카테고리 리스트 값 )
                $row = sql_fetch(" select bo_category_list from g5_board where bo_table = '".$bo_table."' ");
                //cut = 게시판카테고리리스트의 값 | 기준으로 문자열을 분할한다
                $cut = explode("|", $row['bo_category_list']);
                //만약 분할한 값이 0이라면
                if(count($cut) == 0)
                //add_category 는 ca_name값과 같다
          $add_category = $ca_name;
                //또는 (0이 아니라면)
                else
          // add_category 는 테이블게시판에 있는 카테고리 리스트값 + | + ca_name값
          $add_category = $row['bo_category_list']."|".$ca_name;
                //만약 ca_name값과 게시판카테고리리스트의 값 | 기준으로 문자열을 분할한 값을 비교했을 때 값이 없으면
                if(!in_array($ca_name, $cut)){
                    // 쿼리를 실행한다 g5_board의 bo_category_list 에 카테고리 값(ca_name)을 추가한다 - 선택한 테이블값에
                    sql_query(" update g5_board set bo_category_list = '".$add_category."' where bo_table = '".$bo_table."' ");
                }
            }
    }
?>
<?php
    exit;
} else {
    // 최고관리자,게시판관리자(level 8이상)만 상담내용 업데이트
    if (isset($wr_11) && ( ($is_admin && $is_admin != "board") || ($is_admin == "board" && $member['mb_level'] >= 8 && $member['mb_id'] == $board['bo_admin']) ) ) {
        $sql = " update {$write_table} set wr_11='$wr_11' where wr_id = '$wr_id' ";
        sql_query($sql);
    }
    goto_url(G5_BBS_URL.'/board.php?bo_table='.$bo_table.$qstr);
}
?>
 
 

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 4
© SIRSOFT
현재 페이지 제일 처음으로