그룹별로 각 테이블에서 가장높은 조회수를 찾아내어 최신글 출력하는 방법 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

그룹별로 각 테이블에서 가장높은 조회수를 찾아내어 최신글 출력하는 방법 정보

그룹별로 각 테이블에서 가장높은 조회수를 찾아내어 최신글 출력하는 방법

본문

// 그룹최신글 추출
function latest_group($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category="", $orderby="")
{
global $config;
global $g4;

$list = array();
$limitrows = $rows;
if($gr_id){
$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where gr_id = '$gr_id' and bo_use_search=1 order by bo_order_search";
}else{
$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where   bo_use_search=1 order by bo_order_search";
}
$rsgroup = sql_query($sqlgroup);

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

//for ($j=0, $k=0; $rowgroup=sql_fetch_array($rsgroup); $j++) {
while ($row=sql_fetch_array($rsgroup)) {
$bo_table = $row[bo_table];
$sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'";
$board = sql_fetch($sql);

$tmp_write_table = $g4[write_prefix] . $bo_table; // °O½AÆC A×AIºi ½CA|AI¸§

$sql = "select * from $tmp_write_table where wr_is_comment = 0 ";
$sql .= (!$category) ? "" : " and ca_name = '$category' ";
$sql .= (!$orderby) ? "  order by wr_hit desc " : "  order by $orderby desc, wr_id desc ";
$sql .= " limit 0, 1";
$result = sql_query($sql);

for ($i=0; $row2 = sql_fetch_array($result); $i++) {
    $wr_subject = get_text($row2[wr_subject]);

        $key = $row2[wr_datetime] . $row[bo_table] . $row2[wr_id] ;
        $list[$key]->bo_subject = $row[bo_subject];
        $list[$key]->bo_table = $row[bo_table];
        $list[$key]->mb_id = $row2[mb_id];
        $list[$key]->mb_open = $row2[mb_open];
        $list[$key]->wr_id = $row2[wr_id];
        $list[$key]->wr_parent_id = $row2[wr_parent_id];
        $list[$key]->wr_email = $row2[wr_email];
        $list[$key]->wr_homepage = $row2[wr_homepage];
        $list[$key]->wr_name = get_text(cut_str($row2[wr_name],12));
        $list[$key]->wr_subject = get_text(cut_str($row2[wr_subject],$subject_len,'…')); //제목글자수 조정
        $list[$key]->wr_comment = $row2[wr_comment];
        $list[$key]->wr_content = cut_str(strip_tags($row2[wr_content]),$con_len);//글내용 글자수 조정
        $list[$key]->wr_commentcnt = $row2[wr_commentcnt];
        $list[$key]->wr_datetime = substr("$row2[wr_datetime]",0,10);
        $list[$key]->wr_hit = $row2[wr_hit];
        $list[$key]->wr_1 = $row2[wr_1]; //쪽글 때문에 추가
        //파일, 링크
        $list[$key]->link1 = set_http(get_text(cut_str($row2[wr_link1], 255)));
        $link[$key]->link_href1 = "./bbs/board.php?bo_table=$row[bo_table]&wr_id=$row2[wr_id]";
 $link[$key]->link_href11 = "./bbs/board.php&bo_table=$row[bo_table]";
        $list[$key]->link2 = set_http(get_text(cut_str($row2[wr_link2], 255)));
        $link[$key]->link_href2 = "./bbs/gblink.php?bo_table=$row[bo_table]&wr_id=$row2[wr_id]&index=2";
}
}
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
} /// 함수 정의 끝

호출하는방법

<?=latest_group("total_latest_cont", "그룹명", 10, 40); ?>

// 그룹명을 적으면 해당되는 그룹에서 적지않으면 전체 그룹에서 추출합니다.


latest.skin.php하나 만드셔서 다음과 같이 합니다.

<?
if (!defined("_BOARD_")) exit; // 개별 페이지 접근 불가
?>
<table width=100% border=0 cellspacing=0 cellpadding=0>
<?
if (count($list) > 0) {
    $p=-1;
    krsort($list);

     foreach ($list as $key=>$value) {
       $p++;
       if ($p >= $rows) break;
if ($p) { echo "<tr><td colspan=2 height=1 width=7 height=2></td></tr>"; }
echo "
<tr><td width=16 align=center valign=middle><img src=img/ico/dot01.gif width=4 height=4></td><td height=16 valign=middle><a href='{$link[$key]->link_href1}'><font color=B3B3B3>{$value -> wr_subject}</font></a></td><td width=80><font color=B3B3B3>[{$value -> wr_datetime}]</font></td></tr>";
    }
} else {
    echo "<tr><td height=100 align=center colspan=3><font color=#b3b3b3>자료가 없습니다.</font></td></tr>";
}
?>
</table>

추천
4

댓글 11개

$sql .= (!$orderby) ? "  order by wr_hit desc " : "  order by $orderby desc, wr_id desc ";
위의 부분을 바꾸시면 됩니다.  wr_hit 요놈을 추천수필드나 댓글필드로 바꿔주시면 됩니다.

#참고 : 추천수의 경우 wr_good과 wr_nogood 이 있습니다. 응용하시면되고요
          댓글인 경우는 wr_comment로 교체해주면 될겁니다.
전체 3,309 |RSS
그누4 팁자료실 내용 검색

회원로그인

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