기간제 인기게시물 날짜 지날시
기간제 인기게시물 날짜가 지난 경우에는 아무내용도 출력이 되지 않던데요
지정한 날짜가 지난 경우에는 조회수 많은 되로 출력되게
해주려면 어떻게 해주어어야 하나요..
조언부탁드립니다...
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 1개
지정한 날짜가 지난 경우에는 조회수 많은 되로 출력됩니다.
결과 list배열의 값을 알아보고, 없다면 다시 기간을 묻지않고 물어보는겁니다.
그냥 이대로 쓰셔도 될겁니다.
// hitest("스킨명", "", 1, 50, "1"); //오늘 하루 최고 인기게시물
// hitest.lib.php
<?
if (!defined('_GNUBOARD_')) exit;
function cmp($a, $b)
{
return $b['wr_hit'] - $a['wr_hit'];
}
// 최신글 추출
function hitest($skin_dir="", $gr_id, $rows=10, $subject_len=40, $listdate)
{
global $g4;
$nowYmd = date(Ymd); # 시작시간을 구합니다.
$time = time();
$startYmd = date("Ymd",strtotime("-".$listdate." day", $time));
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";
$list = array();
//그룹값 있으면 해당그룹, 없으면 전체그룹
if (!empty($gr_id))
$Bsql = " select * from $g4[board_table] where bo_use_search = '1' and gr_id = '$gr_id' ";
else
$Bsql = " select * from $g4[board_table] where bo_use_search = '1' ";
$Bresult = sql_query($Bsql);
while ($board = mysql_fetch_array($Bresult)) {
$tmp_write_table = $g4['write_prefix'] . $board[bo_table]; // 게시판 테이블 전체이름
if ($listdate)
$sql_common = " and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' ";//특정날짜
$sql_order = " order by wr_hit desc,wr_last desc ";//히트순
$sql = " select * from $tmp_write_table where wr_is_comment = 0
$sql_common
$sql_order
limit 0, $rows ";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
}
//기간내 게시물이 없다면
if(count($list) == 0){
$Bresult = sql_query($Bsql);
while ($board = mysql_fetch_array($Bresult)) {
$tmp_write_table = $g4['write_prefix'] . $board[bo_table]; // 게시판 테이블 전체이름
$sql_order = " order by wr_hit desc,wr_last desc ";//히트순
$sql = " select * from $tmp_write_table where wr_is_comment = 0
$sql_order
limit 0, $rows ";
//echo $sql."<br>";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
}
}
usort( $list, 'cmp');
$list= array_slice($list, 0, $rows);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>