그룹별 최신글 뽑기(최신글 스킨).. 정보
그누호환 그룹별 최신글 뽑기(최신글 스킨)..관련링크
http://e-pet.org/
234회 연결
http://e-pet.org/
132회 연결
본문
인용소스는 관리자님의 새글보기입니다..
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('','',보여줄글수,제목글자수)?>
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
0
댓글 전체
위의 코멘트 처리 때문에 프로그램을 보던중 게시판의 건수가 많을경우 속도가 많이 떨어지는 문제가 보여서 속도문제를 개선해보았습니다.
다음 링크를 참조하세요.
http://www.sir.co.kr/?doc=bbs/gnuboard.php&bo_table=tiptech&wr_id=4041
다음 링크를 참조하세요.
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 ";
from $tbl
-- where wr_datetime
where wr_comment = 0
order by wr_id desc ";
만도님 팁 정말 잘 쓰고 있습니다. 좋은 팁 고마워요~
한가지 질문 드릴게요. 그룹으로 최신글 뽑아오는건 문제없이 잘 되는데
문제는 코멘트글까지 최신글로 인식해서 뽑아온다는거예요. 이거 어떻게 해결할 수 없나요?
메일 드렸는데 답변이 없으셔서... ^^;
http://www.dicanet.com <== 요기서 확인해보시고 답 주세요. 고맙습니다.
한가지 질문 드릴게요. 그룹으로 최신글 뽑아오는건 문제없이 잘 되는데
문제는 코멘트글까지 최신글로 인식해서 뽑아온다는거예요. 이거 어떻게 해결할 수 없나요?
메일 드렸는데 답변이 없으셔서... ^^;
http://www.dicanet.com <== 요기서 확인해보시고 답 주세요. 고맙습니다.
만도님 굳이네여 진작에 여기 왔으면 좋았을것
전에 그룹 리스트 뽑는 메뉴만 작성하다 말았는데 같이 만도님꺼랑 합치면 굳이겠네요
잘 쓸께요 (만도님은 디자인도 굳 몬하는게 없네염 ^^)
전에 그룹 리스트 뽑는 메뉴만 작성하다 말았는데 같이 만도님꺼랑 합치면 굳이겠네요
잘 쓸께요 (만도님은 디자인도 굳 몬하는게 없네염 ^^)
제가 착각했습니다.
감사히 잘 사용하겠습니다.
감사히 잘 사용하겠습니다.
지니아빠, 가츠,철이 님 감사합니다...
까만양님의 말씀은 무슨 말이니지 이해가잘 안됩니다......감사합니다...
까만양님의 말씀은 무슨 말이니지 이해가잘 안됩니다......감사합니다...
좋은 소스 감사합니다.
소스가 간단해서 마음에 듭니다.
건의사항은 시간에 상관없이 최신글 몇개 뽑을 수 있게 조금만 수정한 버전도 만들어주세요.
소스가 간단해서 마음에 듭니다.
건의사항은 시간에 상관없이 최신글 몇개 뽑을 수 있게 조금만 수정한 버전도 만들어주세요.
멋진 소스입니다.
역시 만도님은 못하는게 업군요..
좋은팁입니다. 수고하십시요..
좋은팁입니다. 수고하십시요..
애 많이 쓰신듯 합니다.^^; 감사합니다.
ㅋㅋ
카자님 ,고아이다님 감사합니다...
카자님 ,고아이다님 감사합니다...
바라던 팁입니다. 난 하구싶어도 못하던...ㅜ.ㅡ ㄳ
만도님의 공이 많이 들어간 좋은팁입니다..^^
아바타가 야시시~~@.@;;
아바타가 야시시~~@.@;;
그래요.. 이거 그룹전체를 불러 올 수 있어 너무좋습니다.
한가지 윗분처럼 코멘트를 새글로 인식하지 않게 할려면 어떻게 해야 하나요?
이것저것 만져 보았는데.. 한계가 있어요.... 고수님들 부탁합니다.
한가지 윗분처럼 코멘트를 새글로 인식하지 않게 할려면 어떻게 해야 하나요?
이것저것 만져 보았는데.. 한계가 있어요.... 고수님들 부탁합니다.