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

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

QA

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

답변 2

본문

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

 

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 게시판에서 다른 게시판의 게시물을 불러와 리스트에 출력할 수 있습니다. 프로젝트 구조와 기존 로직에 맞게 커스터마이징만 하면 바로 적용 가능합니다.

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