해피아이님의 최근 글, 코멘트 수정 버젼... > 그누3 팁자료실

그누3 팁자료실

해피아이님의 최근 글, 코멘트 수정 버젼... 정보

그누호환 해피아이님의 최근 글, 코멘트 수정 버젼...

첨부파일

all_latest.php (6.1K) 84회 다운로드 2004-10-04 18:03:54

본문

해피아이님의 최신글 및 코멘트 수정 버젼입니다.
파일 하나로 최신글, 최신코멘트, 최신글과 코멘트 다 볼 수 있도록 했습니다.


<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
define("_DOCTYPE_", "DESIGN");
$html_title = "※ 전체 공지사항";

// 보기를 원하는 곳에서..인클루드 시킴...

$grid = ""; // 보기를 원하는 그룹,, 공백이면 전체 그룹
$rows = 15; // 보여질 최근 게시물의 갯수
$len  = 68; // 내용을 몇자까지 나타낼것인가...잘라서 보여줌...
?>

<table width=98% cellpadding=1 cellspacing=0 border=0 align=center>
<tr><td colspan=3 height=2 style="border-style:none;"></td></tr>
<tr><td colspan=3>

<table width=100% cellpadding=0 cellspacing=0 border=0>
<tr>
<td valign=bottom height=28 colspan=3 style="cursor:hand;" onclick=location.href='<?="./$cfg[index]?doc=all_latest.php"?>' style='padding:0 0 6 0; border-width:0 0 1 0;border-color:888888; border-style:solid;'><span class=subject><b>&nbsp;※ 가장 최근에 쓴글과 코멘트</b></span></td>
<td bgcolor=f3f3f3 onclick=location.href='<?="./$cfg[index]?doc=all_latest.php&wh=nw"?>' onmouseover="this.style.backgroundColor='CCCC66'" onmouseout="this.style.backgroundColor=''" style='padding:0 0 0 0; border-width:1 1 0 1;border-color:888888; border-style:solid;' width=80 style=cursor:hand; align=center>최근글</td>
<td bgcolor=f3f3f3 onclick=location.href='<?="./$cfg[index]?doc=all_latest.php&wh=nc"?>' onmouseover="this.style.backgroundColor='CCCC66'" onmouseout="this.style.backgroundColor=''" style='padding:0 0 0 0; border-width: 1 1 0 0;border-color:888888; border-style:solid;' width=80 style=cursor:hand; align=center>최근코멘트</td>
</tr>
</table>

</td></tr>
<tr><td colspan=3 height=8 style="border-style:none;"></td></tr>

<?
if($grid) { // 그룹별로 하는 검색이면...그 그룹에서만...
$sql_1 = " select * from $cfg[table_board] where bo_use_search = '1' and gr_id = '$grid' order by bo_order_search ";
}
else { // 그렇지 않으면 전체 그룹에서 검색~~
$sql_1 = " select * from $cfg[table_board] where bo_use_search = '1' order by bo_order_search ";
}

$result = sql_query($sql_1);

$i = 0;
$k = 0;

while ($row = mysql_fetch_array($result)) {
$bo_scount += $row["bo_total_count"];
$i++;
// 해당 게시판의 최근글 $rows 개...
$tbl = "{$cfg[write_table_prefix]}{$row[bo_table]}";

// 테이블중에서.. 가장 최근글 $rows 개를 불러온다...코멘트 제외 원글만..
if ($wh == "nw") {
$sql2 = " select wr_id, wr_comment, wr_datetime from $tbl where wr_comment = '0' order by wr_datetime desc limit 0, $rows";  // 원글만
} else if ($wh == "nc") {
$sql2 = " select wr_id, wr_comment, wr_datetime from $tbl where wr_comment <> 0 order by wr_datetime desc limit 0, $rows";  // 코멘트만
} else { $sql2 = " select wr_id, wr_comment, wr_datetime from $tbl order by wr_datetime desc limit 0, $rows"; } // 원글,코멘트 모두

// 만일 코멘트만 나타내려면 where wr_comment <> '0' 로 바꾸어 준다..
// 코멘트와 원글을 나타내려면 where wr_comment = '0' 부분을 삭제
// 원글만 나타내려면 where wr_comment = '0' 부분을 추가

$result2 = sql_query($sql2); // 쿼리 실행
$j = 0;
for($j=0; $brow = mysql_fetch_array($result2); $j++) {
$wr_year = substr($brow["wr_datetime"],0,4); // 년도
$wr_month = substr($brow["wr_datetime"],5,2); // 월
$wr_day = substr($brow["wr_datetime"],8,2); // 일
$wr_hour = substr($brow["wr_datetime"],11,2); // 시
$wr_min = substr($brow["wr_datetime"],14,2); // 분
$wr_sec = substr($brow["wr_datetime"],17,2); // 초

$s_str = ""; // 초기화...
// 날짜는 유닉스 시간으로 변환한다..이유? 소트를 위해서..
$s_str = mktime($wr_hour,$wr_min,$wr_sec,$wr_month,$wr_day,$wr_year).'|'.$brow[wr_id].'|'.$row[bo_table].'|'.$row[gr_id];
$tmp_array[$k] = $s_str; // 이제 배열에 저장하고...
$k++;
} // end for()
} // end while()

array_multisort($tmp_array,SORT_DESC,SORT_STRING); // 배열에 저장된 자료를 소트한다..

for($l=0; $l<$rows; $l++) { // 소트된 자료를 나타낼 자료수 만큼만...
$s_str = "";
$s_str = explode("|", $tmp_array[$l]);
$w_date = strftime ("%Y-%m-%d",$s_str[0]); // 시간을 원래대로 환원, 년월일만...

// 해당 게시판의 최근글 $rows 개...
$b_name = "{$cfg[write_table_prefix]}{$s_str[2]}";
// 가장 최근글 순서대로 테이블마다 접속해서 글을 불러온다...
$sql3 = " select wr_id, wr_name, wr_content, wr_comment, wr_num from $b_name where wr_id = $s_str[1]";
$result3 = sql_query($sql3); // 쿼리 실행
$drow = mysql_fetch_array($result3);

// 내용을 원하는 크기로 자른다..
$drow["wr_content"] = cut_str($drow["wr_content"],$len);
if($drow["wr_comment"] != "0") {
// 코멘트 글이면...원글을 찾아야 한다..
// 코멘트글은 직접 이동할 수가 없다.. 그누보드 특성상...
$sql_comment = " select wr_id from $b_name where wr_num = $drow[wr_num] and wr_comment = '0' and wr_num = $drow[wr_num]";
// wr_num 이 같고 원글이면서.. wr_parent_id 가 같은 글을 찾음..
$result4 = sql_query($sql_comment); // 쿼리 실행
$crow = mysql_fetch_array($result4);
$comment = '[코멘트]'; // 코멘트 임을 표시하기 위하여...
$drow["wr_id"] = $crow["wr_id"]; // wr_id 값 변경...
}
else { // 원글이다...
$comment = '';
}

?>
<tr height=25 onmouseover="this.style.backgroundColor='FFF8ED'" onmouseout="this.style.backgroundColor=''" style='padding:0 0 0 0;border-width:0 0 1 0; border-color:F0F0F0; border-style:solid;' style=cursor:hand; onclick=location.href='<?="./?doc=$cfg[bbs_dir]/gnuboard.php&bo_table=$s_str[2]&wr_id=$drow[wr_id]"?>'>
<td width=100 align=center style='border-style:none;' class='b'><?=$drow[wr_name]?></td><td style="border-style:none;"><?=$drow[wr_content]?><font color=C5C32A><?=$comment?></font></td><td width=70 style='border-style:none;'><?=$w_date?></td></tr>

<?
} // end for()

echo "<tr><td colspan=3 height=5 style='border-style:none;'></td></tr>";

mysql_free_result($result); // sql 해제...

// 총 글의 갯수를 구하는 부분임...
if ($bo_scount) {
  echo "<tr><td style='padding:2 0 0 0; border-width:0 0 1 0;border-color:888888; border-style:solid;' colspan=3 align=right height=30 style='background-color:f3f3f3'>[ 총 <b>$i</b> 개의 게시판에서 <b>$bo_scount</b> 개의 원글(코멘트 미포함) ]&nbsp;</td></tr>";
} else {
  echo "<tr><td height=100 align=center colspan=3>등록된 글이 없습니다.</td></tr>";
}
?>

</table>
추천
0

댓글 전체

http://www.zerosum.or.kr/gnu3/index.php?doc=all_latest.php&wh=nc
함 클릭 해 보실래요ㅣ...
이상해요...
뭐가 잘못이죠...?
최근 코멘트만 나오고, 최근글은 안나오네요...분명 오늘 글 올렸는데...
$rows = 25; // 보여질 최근 게시물의 갯수 에서
25->2개 까지도 낮춰 봤는데...안나오는데요...
혹시 원본 글이나 코멘트가 지정한 row 열수보다 적은지 체크해 보세요..
만약 row 를 20 했는데 코멘트 수가 20보다 작으면 에러가 뜹니다.
select wr_id, wr_name, wr_content, wr_comment, wr_num from gb_write_ where wr_id =
1064 : 'SQL 구문에 오류가 있습니다.' 에러 같읍니다. ('' 명령어 라인 1)

?doc로 직접부르니..저런오류가..
all_latest.php 를 그냥 불러 오시면 최근 글,코멘트 다 보이며
all_latest.php&wh=nw 로 불러오시면 최근 글만
all_latest.php&wh=nc 로 불러오시면 최근코멘트만 보입니다.
참고로.. 보여질수보다 글이나 코멘트가 작으면 에러가 뜹니다.
전체 1,026
그누3 팁자료실 내용 검색

회원로그인

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