안녕하세요 그누 초보 질문 드립니다

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
안녕하세요 그누 초보 질문 드립니다

QA

안녕하세요 그누 초보 질문 드립니다

본문

안녕하세요 그누 초보 질문드립니다.

 

test 게시판에서 다른 게시판의 글들을 불러오고 싶은데 힌트 좀 얻을 수 있을까요?

 

예를 들어 test게시판 에서 test1,test2게시판의 게시물들을 불러와 리스트에 출력되도록 싶습니다


test게시판에서 test,test1,test2 게시물을 한번에 볼수 있도록 말이죠.

이 질문에 댓글 쓰기 :

답변 2

여러게시판의 글을 그룹화하여 불러오거나 특정 게시판만 가져오는걸

'최신글' 이라는 기능으로 가져올 수 있습니다.

 

https://sir.kr/g5_skin?sca=%EC%B5%9C%EC%8B%A0%EA%B8%80&sfl=wr_subject&stx=%EA%B7%B8%EB%A3%B9

아래 스킨자료실의 내용을 채크해보세요.

test 게시판에서 test1, test2 게시판의 게시물을 한 화면에서 출력하려면,

그누보드의 latest.lib.php를 활용하여 각 게시판의 데이터를 통합한 후,

list.skin.php에 커스터마이징된 로직을 추가해 구현할 수 있습니다.

- 필요 시 /lib/latest.lib.php를 확장하여 추가 기능을 구현할 수도 있음.

 

※ 구현 방안 ※

1. latest.lib.php를 활용한 데이터 호출:

test 게시판의 list.skin.php에서 latest() 함수를 사용하여

test1, test2 게시판의 게시물을 가져옴

<?php
// test1, test2 게시판에서 최신 글 각각 5개씩 가져오기
echo latest("basic", "test1", 5);
echo latest("basic", "test2", 5);
?>

2. list.skin.php의 수정:

/bbs/skin/board/basic/list.skin.php 파일에서

데이터 출력 로직을 수정하여 여러 게시판의 글을 통합 출력하도록 구현.

3. 파일 경로 및 수정:

*/lib/latest.lib.php: 최신글 호출 함수의 핵심 파일.

  커스터마이징이 필요하다면 이 파일을 확인하고 수정할 수 있음.

*/bbs/skin/board/basic/list.skin.php: 게시판 출력 디자인을 담당하는 파일로,

  이곳에서 여러 게시판 데이터를 출력하는 로직을 추가.

※ 예시 코드 적용 구조

/lib/latest.lib.php
/bbs/skin/board/basic/list.skin.php
/bbs/board.php

 

= = = = = = = = =

"""test게시판에서 test,test1,test2 게시물을 한번에 볼수 있도록 말이죠."""

님의 질문에 더 접근하여 보자면 ~

여러 게시판(test, test1, test2)의 글을 test 게시판에서 조회하도록 구현.

 

1. /lib/latest.lib.php 활용하여

여러 게시판의 글을 병합하여 가져오는 SQL 쿼리를 작성

// 여러 게시판의 데이터를 병합하여 최신 글을 가져오는 함수
function latest_multi_board($skin_dir, $board_list, $rows = 10) {
    global $g5;
    $sql_union = [];
    foreach ($board_list as $board) {
        $sql_union[] = "SELECT '{$board}' AS bo_table, wr_id, wr_subject, wr_datetime FROM {$g5['write_prefix']}{$board}";
    }
    $sql = "
        SELECT bo_table, wr_id, wr_subject, wr_datetime
        FROM (" . implode(" UNION ALL ", $sql_union) . ") as multi_boards
        ORDER BY wr_datetime DESC
        LIMIT {$rows}
    ";
    return sql_query($sql);
}

 

2. /skin/board/basic/list.skin.php 수정

<?php
$board_list = ['test', 'test1', 'test2'];
$result = latest_multi_board('basic', $board_list, 10);
while ($row = sql_fetch_array($result)) {
    echo "<li>[{$row['bo_table']}] <a href='/bbs/board.php?bo_table={$row['bo_table']}&wr_id={$row['wr_id']}'>{$row['wr_subject']}</a> ({$row['wr_datetime']})</li>";
}
?>

test 게시판에서 다른 게시판(test1, test2)의 글을 조회하여 출력하도록 로직 추가

 

3. 적용 구성

/lib/latest.lib.php

/bbs/board.php

/skin/board/basic/list.skin.php

이 구성을 통해 test 게시판에서 다른 게시판의 게시물을 불러와 리스트에 출력할 수 있습니다. 프로젝트 구조와 기존 로직에 맞게 커스터마이징만 하면 바로 적용 가능합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색

회원로그인

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