기간제 인기게시물 날짜 지날시 정보
기간제 인기게시물 날짜 지날시본문
기간제 인기게시물 날짜가 지난 경우에는 아무내용도 출력이 되지 않던데요
지정한 날짜가 지난 경우에는 조회수 많은 되로 출력되게
해주려면 어떻게 해주어어야 하나요..
조언부탁드립니다...
댓글 전체
제가 쓰는 함수를 알려드리겠습니다. 참고하세요
지정한 날짜가 지난 경우에는 조회수 많은 되로 출력됩니다.
결과 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;
}
?>
지정한 날짜가 지난 경우에는 조회수 많은 되로 출력됩니다.
결과 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;
}
?>