그룹내 일부게시판을 제외하고 하나의 최신글형태로 내용을 불러오려면..? > 그누4 질문답변

그누4 질문답변

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

그룹내 일부게시판을 제외하고 하나의 최신글형태로 내용을 불러오려면..? 정보

그룹내 일부게시판을 제외하고 하나의 최신글형태로 내용을 불러오려면..?

본문

질문하기에 앞서 설명을 드리기가 조금 애로사항이 있습니다만,
한번 보시고 이해가 되시면 해결에 대한 리플을 좀 부탁드리겠습니다.


엄밀히 말씀드리면, new.php나 db의 최신글테이블에서 불러오는 '최신글'이 아니라
단지 일반최신글스킨에서 처럼 글을 불러오되 그룹내의 지정된 전체게시판의 제목글을
등록순에 따라 무작위로 한군데로 불러오도록 하려고 합니다.(게시판 최신글스킨..??)



A라는 그룹이 있고, 그 그룹내에 A01, A02, A03, A04 이런식으로 게시판이 있다고 하고요.

여기서 A02 게시판내용을 제외한,
A그룹의 나머지 모든 게시판의 글을 등록순으로 하나의 최신글 형태로 모아서 메인화면에 뿌려주려고 합니다.

기존의 '최신글스킨'의 경우는 게시판별로 각각 해당 게시판의 상위 글들을 갯수만큼 뿌려주지만
제가 구현하고 싶은것은 그룹내의 모든 게시판의 글을 등록순으로 해서 하나로 뿌려주고 싶습니다.


기존의 정보를 검색해보니..그룹별 최신글형태는 있는데
문제는 게시판별로 각각의 내용을 최신글형태로 보여주는 것이라서
제가 생각하는 하나의 리스트에 최신글형태로 전체 게시판의 내용을 일괄적으로 등록순에 따라 보여주는게 없는거 같습니다. (혹, 있는데 제가 못찾은것이라면 좀 알려주시면 고맙겠습니다.)


도메인/gnuboard/bbs/new.php?gr_id=A  .......이런식으로 하면 최근에 등록된 최신글은 보여지는데
- 특정 게시판을 제외할수가 없고
- 가장 큰 문제는....환경설정에서 일정기간이 지나면 자동으로 삭제되기 때문인데,
  new.php를 응용하게 되면 메인화면에서 기존의 '게시판최신글스킨'형태처럼 '상위'의 글들을
  가져와서 등록되는 순대로 밀려나가면서 항상 지정한 갯수만큼 유지되는게 아니라,
  일정기간 글들이 등록되지 아니하면 자동으로 사라지므로 문제가 좀 있는거 같습니다.


그룹내 특정게시판을 제외한 전체게시판의 글들을 '등록순'으로 해서 일괄적으로
지정된 갯수만큼 하나의 형태로 메인화면쪽에다가 보여주고자 합니다.
- 어차피 등록순으로 출력되기 때문에 게시판별 게시물이 뒤섞이는건 상관이 없습니다.

어떻게 구현해야할지 도움글을 꼭 좀 부탁드립니다.

p.s; 모두 즐거운 한가위 보내시기 바랍니다.

댓글 전체

아래 코드는 만도님의 '외로워보이는 그룹최신글' 내용입니다.

그룹내에서 전체 게시판의 최신글을 하나의 '최신글'형태로 뽑아낸다는 원리는 같은데....
'환결설정'에서 최신글 관련 기간이 지나거나 또는 new.php의 최신글을 정리하여 모두 삭제할 경우,
추가글이 없는 이상 모두 사라지게 됩니다. 그리고 특정게시판을 제외하기도 좀 곤란하고요..

그냥 일반 게시판의 최신글처럼...계속 보여지도록 하고싶은데....방법이 정녕..없을런지요..
$g4[board_new_tabel]과는 상관없이 돌리면 될거 같기도 한데..실력이 짧아서 도저히 ...안되는군요.

나중에라도 어느 고수분이 들여다 보시면....꼭 좀 도움글을 부탁드립니다.


[아래팁을 가져온곳] http://www.sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=2320



<?
// 그룹 최신글 추출 {최신글스킨 - 'group폴더'와 연동}

function latest_group($skin_dir="", $gr_id, $rows=10, $subject_len=40)
{

 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 a.*, b.bo_subject, c.gr_subject, c.gr_id
            from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c
            where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.gr_id = '$gr_id'
order by a.bn_id desc limit 0, $rows ";
 

$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
    $tmp_write_table = $g4[write_prefix] . $row[bo_table];

    if ($row[wr_id] == $row[wr_parent]) // 원글
    {
        $comment = "";
        $comment_link = "";
        $row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '$row[wr_id]' ");
        $list[$i] = $row2;

        $name = get_sideview($row2[mb_id], cut_str($row2[wr_name], $config[cf_cut_name]), $row2[wr_email], $row2[wr_homepage]);
        // 당일인 경우 시간으로 표시함
        $datetime = substr($row2[wr_datetime],0,10);
        $datetime2 = $row2[wr_datetime];
        if ($datetime == $g4[time_ymd])
            $datetime2 = substr($datetime2,11,5);
        else
            $datetime2 = substr($datetime2,5,5);

    }
    else // 코멘트
    {
        $comment = "[코] ";
        $comment_link = "#c_{$row[wr_id]}";
        $row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '$row[wr_parent]' ");
        $row3 = sql_fetch(" select mb_id, wr_name, wr_email, wr_homepage, wr_datetime from $tmp_write_table where wr_id = '$row[wr_id]' ");
        $list[$i] = $row2;
        $list[$i][mb_id] = $row3[mb_id];
        $list[$i][wr_name] = $row3[wr_name];
        $list[$i][wr_email] = $row3[wr_email];
        $list[$i][wr_homepage] = $row3[wr_homepage];

        $name = get_sideview($row3[mb_id], cut_str($row3[wr_name], $config[cf_cut_name]), $row3[wr_email], $row3[wr_homepage]);
        // 당일인 경우 시간으로 표시함
        $datetime = substr($row3[wr_datetime],0,10);
        $datetime2 = $row3[wr_datetime];
        if ($datetime == $g4[time_ymd])
            $datetime2 = substr($datetime2,11,5);
        else
            $datetime2 = substr($datetime2,5,5);
    }

    $list[$i][gr_id] = $row[gr_id];
    $list[$i][bo_table] = $row[bo_table];
    $list[$i][name] = $name;
    $list[$i][comment] = $comment;
    $list[$i][href] = "./board.php?bo_table=$row[bo_table]&wr_id=$row2[wr_id]{$comment_link}";
    $list[$i][datetime] = $datetime;
    $list[$i][datetime2] = $datetime2;

    $list[$i][gr_subject] = $row[gr_subject];
    $list[$i][bo_subject] = $row[bo_subject];
    $list[$i][wr_subject] = $row2[wr_subject];
}

 ob_start();
    include "$latest_skin_path/latest.skin.php";
    $content = ob_get_contents();
 ob_end_clean();

    return $content;
}
?>
전체 66,558 |RSS
그누4 질문답변 내용 검색

회원로그인

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