그룹별 최신글 뽑기(최신글 스킨).. > 그누3 팁자료실

그누3 팁자료실

그룹별 최신글 뽑기(최신글 스킨).. 정보

그누호환 그룹별 최신글 뽑기(최신글 스킨)..

본문

인용소스는 관리자님의 새글보기입니다..

lib/developer.lip.php에 추가합니다..

/////////////////////////////////////////////////////////////////////////
function groupe($skin_dir='', $gr_id, $rows=10, $len=40)
{

global $latest_skin, $cfg;

$tmp_latest_skin = $latest_skin;

    // 스킨디렉토리값이 넘어왔다면
    if ($skin_dir) {
        $latest_skin = "./$cfg[bbs_dir]/skin/latest/$skin_dir";
    }
 if ($hours < 1 || $hours > 24) {
$hours = 24;
}
$intime = date("Y-m-d H:i:s", time() - (int)(60 * 60 * $hours));
$sql = " select a.bo_subject, a.bo_table, b.gr_subject from $cfg[table_board] a, $cfg[table_group] b where a.gr_id = b.gr_id AND b.gr_id = '$gr_id' 
order by b.gr_id, a.bo_table ";
$result = sql_query($sql);
while ($row = mysql_fetch_array($result)) {
$gr_subject=get_text(cut_str($row[gr_subject],20,'.'));
$tbl = "{$cfg[write_table_prefix]}{$row[bo_table]}";
$sql2 = " select wr_id,
wr_parent_id,
mb_id,
wr_name,
wr_email,
wr_homepage,
wr_num,
wr_subject,
wr_content,
wr_comment,
wr_commentcnt,
wr_datetime
from $tbl
where wr_datetime
order by wr_id desc  ";
$result2 = sql_query($sql2);
for ($i = 0; $row2 = mysql_fetch_array($result2); $i++) {
if ($row2[wr_comment] > 0) {
$sql3 = " select wr_subject
from $tbl
where wr_comment = 0
and wr_parent_id = '$row2[wr_parent_id]' ";
$row3 = sql_fetch($sql3);
$wr_subject = $row3[wr_subject];
$wr_content = $row3[wr_content];
} else {
$wr_subject = $row2[wr_subject];
$wr_content = $row2[wr_content];
}

$wr_content = get_text($wr_content);
$wr_subject = get_text($wr_subject);
$wr_datetime = $row2[wr_datetime];

$key = $row2[wr_datetime] . $row[bo_table] . $row2[wr_id];
$list[$key]->bo_subject = get_text(cut_str($row[bo_subject],8));

$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($wr_subject,$len,'…'));
$list[$key]->wr_content = get_text(cut_str($wr_content,160,'…'));
$list[$key]->wr_comment = $row2[wr_comment];
$list[$key]->wr_commentcnt = $row2[wr_commentcnt];
$list[$key]->wr_datetime = $row2[wr_datetime];
}
mysql_free_result($result2);
}
mysql_free_result($result);
   
    include "$latest_skin/latesgroupe.skin.php";

    $latest_skin = $tmp_latest_skin;
}
//////////////////////////////////////////////////////////////////////////////////////////////

bbs/skin/latest/basig 폴더에 latesgroupe.skin.php를 만들어 넣습니다..

<table width=100% cellpadding=2 cellspacing=0 align=center valign=top>
<tr><td colspan=3 align=center height=22 style='border:1px solid #A3A6A9;' background='./<?=$cfg[bbs_dir]?>/imgs/b_titlebg.gif'>
<a href='./?doc=<?=$gr_id?>.php'><?=$gr_subject?></a></td></tr>//그룹이름 보이기
//그룹아이디와 일치하는 이름.php로 링크됨
<?
if (count($list) > 0) {
krsort($list);
$j=-1;
foreach ($list as $key=>$value) {
$k++;
$j++;
if($j+1>$rows) break;
$comment = "";
$atag_comment = "";
if ($value->wr_comment > 0) {
$comment = "<span style='font-size:8pt;'>[c]</span> ";
$atag_comment = "#c{$value->wr_id}";
}

$commentcnt = "";
if ($value->wr_commentcnt > 0) {
$commentcnt = "<font size=-2>({$value->wr_commentcnt})</font>";
}
$name = gblayer($value->mb_id, cut_str($value->wr_name,12), $value->wr_email, $value->wr_homepage);
$value->bo_subject = cut_str($value->bo_subject, 20);
//게시판제목 글자수 자르기
$icon_new = "";
    if ($value->wr_datetime >= $intime) {
        $icon_new = "<img src='./$cfg[bbs_dir]/imgs/icon_new.gif' border=0 align='absmiddle'>";
    }
//새글 아이콘보이기
?>
<tr class=list<?=($j%2)?> height=22>
<td>
  <table width=98% cellpadding=0 cellspacing=0 align=center>
  <tr>   
    <td width=17% nowrap><?=$icon_news?> [<a href='./?doc=<?=$cfg[bbs_dir]?>/gnuboard.php&bo_table=<?="$value->bo_table"?>'><?="$value->bo_subject"?></a>]</td>
    <td width='' style='padding-left:3px'><a href='./?doc=<?=$cfg[bbs_dir]?>/gnuboard.php&bo_table=<?="$value->bo_table"?>&wr_id=<?="$value->wr_parent_id"?><?=$atag_comment?>' title='<?=$value->wr_content?>'><?=$value->wr_subject?> <?=$commentcnt?><?=$icon_new?></a>
    </td>
    </tr>
    <? if( $k==1){?>// 첫째글(가장최신)이라면 내용이 보여져라..
 <tr>
  <td colspan=2 style='padding-left:10px;padding-right:5px;padding-bottom:3px;padding-top:3px;text-align:justify;'><a href='./?doc=<?=$cfg[bbs_dir]?>/gnuboard.php&bo_table=<?="$value->bo_table"?>&wr_id= <?="$value->wr_parent_id"?><?=$atag_comment?>' title='<?=$value->wr_content?>'><?=$value->wr_content?></a>
    </td>
</tr>
<?    }    ?>
</table></td></tr>
<?
}
}
else  echo "<tr><td colspan=3 align=center height=50>자료가 없습니다.</td></tr>"; 
?>
</table>
/////////////////////////////////////////////////////////////////////////////////////////

보여질 곳에
<? groupe('','',보여줄글수,제목글자수)?>
추천
0
  • 복사

댓글 전체

위의 코멘트 처리 때문에 프로그램을 보던중 게시판의 건수가 많을경우 속도가 많이 떨어지는 문제가 보여서 속도문제를 개선해보았습니다.
다음 링크를 참조하세요.
http://www.sir.co.kr/?doc=bbs/gnuboard.php&bo_table=tiptech&wr_id=4041
코멘트 제거 하고싶다면  where wr_datetime 부분을 where wr_comment = 0 으로 변경하세요.
from $tbl
-- where wr_datetime
where wr_comment = 0
order by wr_id desc ";
만도님 팁 정말 잘 쓰고 있습니다. 좋은 팁 고마워요~
한가지 질문 드릴게요. 그룹으로 최신글 뽑아오는건 문제없이 잘 되는데
문제는 코멘트글까지 최신글로 인식해서 뽑아온다는거예요. 이거 어떻게 해결할 수 없나요?
메일 드렸는데 답변이 없으셔서... ^^;
http://www.dicanet.com <== 요기서 확인해보시고 답 주세요. 고맙습니다.
만도님 굳이네여  진작에 여기 왔으면 좋았을것 
전에 그룹 리스트 뽑는 메뉴만 작성하다 말았는데 같이 만도님꺼랑 합치면 굳이겠네요
잘 쓸께요  (만도님은 디자인도 굳  몬하는게 없네염 ^^)
좋은 소스 감사합니다.
소스가 간단해서 마음에 듭니다.
건의사항은 시간에 상관없이 최신글 몇개 뽑을 수 있게 조금만 수정한 버전도 만들어주세요.
그래요.. 이거 그룹전체를 불러 올 수 있어 너무좋습니다.
한가지 윗분처럼 코멘트를 새글로 인식하지 않게 할려면 어떻게 해야 하나요?
이것저것 만져 보았는데.. 한계가 있어요.... 고수님들 부탁합니다.
© SIRSOFT
현재 페이지 제일 처음으로