최신글 그룹으로 뽑아오기 질문합니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

최신글 그룹으로 뽑아오기 질문합니다. 정보

최신글 그룹으로 뽑아오기 질문합니다.

본문

최신글을 그룹으로 뽑아오려고 합니다.

아래파일을 어떻게 수정해야 될까요? ^^;;

아래 파일은, 게시판에서 일정기간 및 여러가지 형식으로 뽑아오는 것입니다.

이렇게 사용되죠.

최신글을 불러올 때에는 아래와 같이 입력

<?=latest("스킨명", "게시판명", 출력갯수, 제목길이, "형식", "기간");?>

형식 - 코멘트순(C), 조회순(H), 랜덤(R), 추천(G), 비추천(N), 기본 최신글(공백이거나 B)
기간 - 최근 몇일간의 입력된 글을 뽑아옴. 100이라 입력하면 최근 100일간의 글을 뽑아옴

ex)
<?=latest("basic", "morssola", 5, 40, "R", "100");?>




latest.skin.php 파일


<?
if (!defined('_GNUBOARD_')) exit;

// 최신글 추출
function latest($skin_dir="", $bo_table, $rows=10, $subject_len="", $brch="", $time="", $options="")
{
    global $config;
    global $g4;

    if ($skin_dir)
        $latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
    else
        $latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";

    $list = array();

    $sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'";
    $board = sql_fetch($sql);

    $tmp_write_table = $g4[write_prefix] . $bo_table; // 게시판 테이블 전체이름

if ($brch == "H")          // 넘어온 값이 "H" 즉 hit 일때
    $brch = "wr_hit";      // hit 순으로 쿼리
elseif ($brch == "C")      // 넘어온 값이 "C" 즉 comment 일때
    $brch ="wr_comment"; // comment 순으로 쿼리
elseif ($brch == "R")        //넘온값이 "R" 즉 random 일때
    $brch = "rand()";            // 랜덤 쿼리
elseif ($brch == "G")        //넘온값이 "G" 즉 추천 일때
    $brch = "wr_good";            // 추천 쿼리
elseif ($brch == "N")        //넘온값이 "N" 즉 비추천 일때
    $brch = "wr_nogood";            // 비추천 쿼리
elseif ($brch == "B")        //넘온값이 "B" 즉 기본 최신글 일때
    $brch = "wr_id";            // 기본 최신글 쿼리
else                                  // 넘어온값이 없거나 그이외 일때
    $brch = "wr_id";        // 걍 최근순으로 쿼리

$sql = "
select * from $tmp_write_table where wr_is_comment = 0
and wr_datetime between date_sub(now(), interval $time day) and now()
order by $brch desc limit 0, $rows ";

    //explain($sql);
    $result = sql_query($sql);
    for ($i=0; $row = sql_fetch_array($result); $i++)
        $list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
   
    ob_start();
    include "$latest_skin_path/latest.skin.php";
    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}
?>

댓글 전체

같은 그룹(G)에 속한 게시판(B1, B2, B3)에서 가져 온다는 것으로 이해한다면

B1, B2, B3를 통합하여 날짜순으로 정렬한 다음
거기에서 최근 것 N개를 가져오면 되는 건가요?
그누는 게시판 별로 테이블이 따로 있기 때문에
같은 그룹에 속한 테이블 모두에서 N개를 select해야 합니다.
그리고 이 것을 같은 배열에 넣고 sort함수 한 번 실행한 다음
처음 N개만 출력해야죠.
문제는,
G그룹에 속한 게시판 B1, B2, B3에서 여러형태로 뽑아와야하죠.
최신, 추천, 비추천, 조회수, 랜덤, 코멘트
또한 일정기간내에서 뽑아와야하죠.

위에 latest.lib.php 파일은
위 조건을 갖춘 체, 그룹이 아닌 하나의 게시판(테이블)에서 뽑아오는 것이죠.

따라서 위에 예를들자면, 이런 형식이죠.
<?=latest("스킨명", "게시판명", 출력갯수, 제목길이, "형식", "기간");?>

<?=latest("스킨명", "그룹명", 출력갯수, 제목길이, "형식", "기간");?>

도움주시면 무척 감사하겠습니다. ^^;;
http://sir.co.kr/bbs/new.php
소스를 보니까
g4_board_new 테이블이 있더군요. 그누가 아직 초보라서......
이 파일 소스를 분석해 보면 답이 나오겠는데요.
전체 136 |RSS
그누4 질문답변 내용 검색

회원로그인

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