최근게시물을 가져와서 그 중 답변이나 댓글이 있을경우 제외시키는 방법을 알려주세요~
관련링크
본문
최근게시물을 가져와서 그 중 답변이나 댓글이 있을경우 제외시키는 방법을 알려주세요~
Jos87님의 scroll 최근게시물 스킨을 사용중인데 해당 최근게시글 중에서 답변글이나 댓글이 달려있는 게시물은 제외를 시키는 방법을 알려주시면 감사하겠습니다.
<?
// 변수 설정
$out_bo_table = array("notice","photo","refer"); // 제외하고 싶은 게시판 이름을 적어주세요
$cur_subject = 18; // 제목 글자수
$latest_sql = sql_query("select bo_table, wr_id, wr_parent from $g4[board_new_table] where bn_datetime like '{$g4[time_ymd]}%' order by bn_id desc limit 20");
// 공지를 제외하는 구문
$notice_sql= sql_query("select bo_table, bo_notice from ". $g4['board_table']);
while($row = sql_fetch_array($notice_sql)) {
$tnotice[$row['bo_table']] = trim($row['bo_notice']) != "" ? explode("\n" ,$row['bo_notice']) : '';
}
unset($row);
$temp1 = array();
// 댓글을 제외하고 뽑아온다.
while($row = sql_fetch_array($latest_sql)) {
$flag = $row['wr_id'] == $row['wr_parent'] ? true : false;
foreach($out_bo_table as $temp) {
if($row['bo_table'] == $temp) $flag = false;
}
unset($temp);
if($flag) {
// 공지사항을 제외하는 구문
if(is_array($tnotice[$row['bo_table']])) {
$flag2 = true;
foreach($tnotice[$row['bo_table']] as $temp) if(trim($row['wr_id']) == trim($temp)) $flag2 = false;
if($flag2) $temp1[] = $row;
} else $temp1[] = $row;
}
}
// 습관이라서 쓰고나고 필요없는 변수를 제거......
unset($tnotice);
unset($flag);
unset($flag2);
unset($temp);
unset($row);
$right_rolling = "";
if(is_array($temp1)) {
foreach($temp1 as $temp) {
$array_new = sql_fetch("select wr_subject, wr_datetime, wr_name from ". $g4['write_prefix'].$temp['bo_table']. " where wr_id = '".$temp['wr_id']."'");
$bo_name = sql_fetch("select bo_subject from ".$g4['board_table']." where bo_table = '". $temp['bo_table']. "'");
$diff = time() - strtotime($array_new['wr_datetime']);
if($diff < 60) $nr_datetime = $diff . "초전";
else if( $diff < 3600 && $diff > 59) $nr_datetime = round($diff/60). "분전";
else if( 86400 > $diff && $diff > 3599 ) $nr_datetime = round($diff/3600). "시간전</span>";
else $nr_datetime = substr($list['wr_datetime'],5,5);
$right_rolling .= "<li><div class=\"letiker\"><span class=\"subject_new\">ㆍ<a href=\"".$g4['path']."/bbs/board.php?bo_table=$temp[bo_table]&wr_id=$temp[wr_id]\"><b>". cut_str($array_new['wr_subject'], $cur_subject) . "</b></a></span><span class=\"tikinfo\">Q&A"."<span class=\"tikbar\"> | </span>" .$array_new['wr_name']. "</span></div><div class=\"ritiker\"><span class=\"timer\"></span>".$nr_datetime."</div></li>";
}
} else $right_rolling = "자료가 없습니다.";
unset($array_new);
unset($bo_name);
unset($temp1);
?>
위 코드중에서 수정추가해야할 부분에 대해서 자세히 알려주시면 감사하겠습니다.
답변 2
위의 소스 중에 39~46번째 줄의 내용을 다음과 같이 수정해보세요.
$array_new = sql_fetch("select wr_subject, wr_datetime, wr_name from ". $g4['write_prefix'].$temp['bo_table']. " where wr_id = '".$temp['wr_id']."'"); //이 부분부터 아래와 같이 수정
$array_new = sql_fetch("select wr_subject, wr_datetime, wr_name from ". $g4['write_prefix'].$temp['bo_table']. " where wr_reply = '' and wr_is_comment = 0 and wr_id = '".$temp['wr_id']."'");
if ($array_new) {
$bo_name = sql_fetch("select bo_subject from ".$g4['board_table']." where bo_table = '". $temp['bo_table']. "'");
$diff = time() - strtotime($array_new['wr_datetime']);
if($diff < 60) $nr_datetime = $diff . "초전";
else if( $diff < 3600 && $diff > 59) $nr_datetime = round($diff/60). "분전";
else if( 86400 > $diff && $diff > 3599 ) $nr_datetime = round($diff/3600). "시간전</span>";
else $nr_datetime = substr($list['wr_datetime'],5,5);
$right_rolling .= "<li><div class=\"letiker\"><span class=\"subject_new\">ㆍ<a href=\"".$g4['path']."/bbs/board.php?bo_table=$temp[bo_table]&wr_id=$temp[wr_id]\"><b>". cut_str($array_new['wr_subject'], $cur_subject) . "</b></a></span><span class=\"tikinfo\">Q&A"."<span class=\"tikbar\"> | </span>" .$array_new['wr_name']. "</span></div><div class=\"ritiker\"><span class=\"timer\"></span>".$nr_datetime."</div></li>";
}
다시 정리하자면
38번째 줄의 foreach($temp1 as $temp) { 부터
47번째 줄의 } 부분 안에 있는 내용을 위와 같이 수정하는 것입니다.
!-->감사합니다~
잘 수정해서 적용했습니다.
다만 수정사항 03번줄에 조건절에서 wr_is_comment = 0 이부분에서 wr_comment = 0으로 수정했더니 코멘트 1개만 달려도 안나오더라구요.
그 차이점을 찾고 있습니다. 매번 사용은 하지만 잊어버리네요.