그룹ID를 가지고 해당 그룹에 속한 게시판 데이터를 가져오는 내장 함수?

그룹ID를 가지고 해당 그룹에 속한 게시판 데이터를 가져오는 내장 함수?

QA

그룹ID를 가지고 해당 그룹에 속한 게시판 데이터를 가져오는 내장 함수?

그누보드5(영카트) 버전

5.6.23

사용 PHP 버전

7.4

본문

예를 들면

get_menu_db 나 get_board_db 와 같이 그누보드 자체 내장 함수로

 

gr_id 를 조회해서 gr_id 에 속한 게시판 데이터를 가져오는 함수가 기본적으로 있는지, 아님 함수를 만들어서 써야하는지 궁금합니다...

 

내장 함수가 있다면 그걸 쓰고 없으면 만들 생각인데 그런 함수가 있나 찾아봤지만 진짜 없는건지 못찾는건지 모르겠어서 질문 남깁니다!

이 질문에 댓글 쓰기 :

답변 3

함수가 없어 보이는데.. 아래의 내용도 한번 참고를..

 

 


function get_group_board_list($gr_id) {
    global $g5;
    
    $sql = "SELECT * FROM {$g5['board_table']} 
            WHERE gr_id = '{$gr_id}' 
            ORDER BY bo_order, bo_table";
    $result = sql_query($sql);
    
    $board_list = array();
    while ($row = sql_fetch_array($result)) {
        $board_list[] = $row;
    }
    
    return $board_list;
}

 

 

 

 

function get_accessible_group_boards($gr_id, $member_level = 1) {
    global $g5, $member;
    
    $mb_level = $member['mb_level'] ?? $member_level;
    
    $sql = "SELECT * FROM {$g5['board_table']} 
            WHERE gr_id = '".sql_real_escape_string($gr_id)."' 
            AND bo_list_level <= {$mb_level}
            ORDER BY bo_order, bo_table";
    
    $result = sql_query($sql);
    
    $board_list = array();
    while ($row = sql_fetch_array($result)) {
        $board_list[] = $row;
    }
    
    return $board_list;
}

 

 

 

확인해보니 놓친 부분이 있을 수 있겠으나.

그룹 아이디 자체로 해당 게시판을 가져오는 함수는 별도로 없습니다.

 

대부분 스킨이나 이런부분에서는 gr_id 형태가 아니라 그냥 g5_board 를 조회 해서 반복문을 돌리다보니,

그런게 없을 수 있겠습니다.

 

비슷한 예로 최근 게시물도 글쓰기 게시판을 다이렉트로 조회하고 있어서요..

마지막으로 g5_menu 에는 그룹 아이디가 별도로 존재하지 않으므로, 필드 추가 해서 

사용하는 방법을 택하셔야 할 것 같습니다.

빠른 답변 감사드립니다! 없는게 맞나보네요!! 제가 찾으려던 그룹은 게시판 그룹이었는데 애매하게 그냥 그룹ID라고만 적어놨네요;;

없을만한 이유까지 상세하게 달아주셔서 감사드립니다!

채택을 모두 드리고 싶지만 먼저 답변 주신 제이앤 님께 드릴게요 죄송해요 ㅠㅠㅠ 채택 시스템이 가끔은 질문자를 난감하게 하는...ㅠㅠㅠ

저는 아래처럼 사용 합니다.


<div class="latest_wr">
<!-- 최신글 시작 { -->
    <?php
    //  최신글
    $sql = " select bo_table from `{$g5['board_table']}` a left join `{$g5['group_table']}` b on (a.gr_id=b.gr_id) where a.bo_device <> 'mobile' ";
    if(!$is_admin)
    $sql .= " and a.bo_use_cert = '' ";
    $sql .= " and a.bo_count_write > 0 ";
//    $sql .= " and b.gr_id not in ('cn','jp', 'en') "; //cn, jp, en 그룹 제외하고
    $sql .= " and b.gr_id = '{$group}' "; //$group 만
    $sql .= " and a.bo_table not in ('notice', 'gallery') "; //공지사항과 갤러리 게시판은 제외
    $sql .= " order by b.gr_order, a.bo_order ";
    $result = sql_query($sql);
    for ($i=0; $row=sql_fetch_array($result); $i++) {
        $lt_style = '';
        if ($i%3 !== 0 ) $lt_style = "margin-left:2%";
    ?>
    <div style="float:left;<?php echo $lt_style ?>" class="lt_wr">
        <?php
        // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
        // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
        // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
        echo latest('theme/basic', $row['bo_table'], 6, 24);
        ?>
    </div>
    <?php
    }
    ?>
    <!-- } 최신글 끝 -->
</div>
답변을 작성하시기 전에 로그인 해주세요.
전체 129,664 | RSS
QA 내용 검색

회원로그인

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