그룹 최신게시물 스킨 izen_group 을 사용하고 있습니다. 도움 부탁드립니다. ㅠㅠ 정보
그룹 최신게시물 스킨 izen_group 을 사용하고 있습니다. 도움 부탁드립니다. ㅠㅠ본문
<? echo izen_group('best10', '테이블명', wr_hit, 5, 42, 100); ?>
위와같은 izen_group 스킨을 사용하고 있는데요. wr_hit 부분에, wr_comment 혹은 wr_good 으로하면
각각 조회순, 댓글순, 추천순 으로 잘 뿌려집니다.
그런데 문제는, 저는 그냥 날짜순으로 뿌리고 싶거든요.
그런데 아무리 해도 날짜순으로 뿌려지지가 않습니다. ㅠㅠ
저 부분을 wr_datetime 같은식으로 날짜와 관련있게 변경해봐도, 추출이 안돼네요.
그래서 소스를 이리저리 보고있는데, 도무지 모르겠어서...
이곳의 고수님들께 조언을 구하게 되었습니다... ㅠㅠ
=======================================================================
/extend/best10.lib.php 파일중에 어디를 손을 봐야할까요? ㅠㅠ;;;;
<?
if (!defined('_GNUBOARD_')) exit;
/*
izen.group.lib.php
제작일 : 2006-12-08
지정 기간제 히트순 최근 게시물 수정본
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/7328
그룹 최신글 관련하여 통합하도록 하였다.
정렬 필드값에 의해서 SQL 문을 추가하도록 하면 된다.
izen_group('스킨', '그룹명', 정렬필드, 출력갯수, 자를 문자열, 최근 몇일간을 출력할 것인가?);
예) echo izen_group('best10', '06', wr_hit, 10, 28, 30);
* (2010/6/25 추가 수정 by raccoone)
그룹명에 ,(콤마)를 써서 그룹 추가 가능.
예) echo izen_group('best10', '06,07,08', wr_hit, 10, 28, 30);
*/
# 인기글
function izen_usort1($a, $b)
{
return $b['wr_hit'] - $a['wr_hit'];
}
# 헤드라인
function izen_usort2($a, $b)
{
return $b['wr_good'] - $a['wr_good'];
}
# 코멘트순
function izen_usort3($a, $b)
{
return $b['wr_comment'] - $a['wr_comment'];
}
# 최신글 추출 wrapper
function izen_group($skin_dir="", $gr_id, $izen_sort, $rows=10, $subject_len=40, $listdate)
{
return izen_group_detail($skin_dir, $gr_id, $izen_sort, $rows, $subject_len, $listdate);
}
# 최신글 추출(상세 버전)
function izen_group_detail($skin_dir="", $gr_id, $izen_sort, $rows=10, $subject_len=40, $listdate, $member="", $ignoreSearchOpt="")
{
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/basic";
}
$list = array();
$gr_id_array = explode(",", $gr_id);
//검색 옵션 사용여부
$searchOpt = "";
$andSearchOpt = "";
if($ignoreSearchOpt =="")
{
$searchOpt = "bo_use_search='1'";
$andSearchOpt = " and ".$searchOpt;
}
//특정 멤버만 검색 여부
$memberOpt = "";
if($member != "")
{
$memberOpt = " and mb_id='$member'";
}
if(count($gr_id_array) > 1)
{
$gr_id_final = "gr_id='".$gr_id_array[0]."' ".$andSearchOpt;
for($i = 1;$i < count($gr_id_array);$i++)
$gr_id_final .= " or gr_id='".$gr_id_array[$i]."' ".$andSearchOpt;
}else{
$gr_id_final = "gr_id='".$gr_id."' ".$andSearchOpt;
}
$sql= " select bo_table, bo_subject from {$g4['board_table']} ";
if( !empty($gr_id)) $sql .= "where ".$gr_id_final." order by bo_order_search ";
else $sql .= "where ".$searchOpt." order by bo_order_search ";
$ress = sql_query($sql);
for($i=0, $ii=0; $board=sql_fetch_array($ress); $ii++)
{
$tmp_write_table = $g4['write_prefix'] . $board['bo_table']; # 게시판 테이블 전체이름
#$sql = "select * from `$tmp_write_table` where wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $sort desc limit 0, $rows ";
# 정렬 필드에 의해서 전체적으로 정렬, 관리한다.
$sql_gr_Q = "wr_is_comment <> '1'";
if($izen_sort=="wr_1")
{
$sql_gr_Q.= " and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd'";
}else
{
$sql_gr_Q.= " and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd'";
}
$sql_gr_Q.= $memberOpt;
if ($izen_sort == 'wr_hit')
{
$sql_gr_Q .= "";
}
elseif ($izen_sort == 'wr_scrap')
{
$sql_gr_Q .= " and wr_scrap <> 0";
}
elseif ($izen_sort == 'wr_datetime') # wr_1 헤드라인
{
$sql_gr_Q .= " and wr_1 = 1";
}
elseif ($izen_sort == 'wr_good') #
{
$sql_gr_Q .= " and wr_good <> '0' ";
}
elseif ($izen_sort == 'wr_comment')
{
$sql_gr_Q .= " and wr_comment <> '0' ";
}
elseif ($izen_sort == 'wr_id')
{
$sql_gr_Q = "wr_is_comment <> '1'"; //덮어씀
}
$sql_gr_Q.= " order by $izen_sort desc limit 0, $rows ";
$sql = " select * from `$tmp_write_table` where $sql_gr_Q ";
$result = sql_query($sql);
#for (; $row=sql_fetch_array($result); $i++) # *오류* 전체 게시물 가운데 날짜에 상관없이 히트순으로 지정한 갯수만큼 출력된다.
for ($i==0; $row=sql_fetch_array($result); $i++)
{
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len, $listdate);
$list[$i]['bo_table'] = $board['bo_table'];
$list[$i]['bo_subject'] = $board['bo_subject'];
}
}
if ($izen_sort == 'wr_hit')
{
usort($list, 'izen_usort1');
}
elseif ($izen_sort == 'wr_good')
{
usort($list, 'izen_usort2');
}
elseif ($izen_sort == 'wr_comment')
{
usort($list, 'izen_usort3');
}
$list= array_slice($list, 0, $rows);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
# 스케쥴 추출
/*
제작일 : 2010-07-09 by raccoone
스케줄을 오늘자부터 시작, 날짜순으로 추출(예정방향으로)
izen_schedule('스킨', '게시판명', 출력갯수, 자를 문자열, 최근 몇일간을 출력할 것인가?, 추출하고자 하는 아이디);
예) echo izen_schedule('schedule_today', 'schedule', 10, 12, 7, $_SESSION['ss_mb_id']);
*/
function izen_schedule($skin_dir="", $scheduleBoard_id, $rows=10, $subject_len=40, $listdate, $member, $onlyNotice="")
{
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/basic";
}
$list = array();
$tmp_write_table = $g4['write_prefix'].$scheduleBoard_id;
$sql_gr_Q = "wr_is_comment <> '1'";
$sql_gr_Q.= " and mb_id='$member' ";
$sql_gr_Q.= " and wr_1>=$nowYmd and wr_1<$startYmd";
$sql_gr_Q.= " order by wr_1 asc limit 0, $rows ";
$sql = " select * from `$tmp_write_table` where $sql_gr_Q ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len, $listdate);
$list[$i]['bo_table'] = $scheduleBoard_id;
$list[$i]['bo_subject'] = $board['bo_subject'];
//날짜 차이를 구한다.
$date = $list[$i]['wr_1'];
$year = substr($date,0,4);
$month = substr($date,4,2);
$day = substr($date,6,2);
$startTS = mktime(0,0,0,$month, $day,$year);
$todayTS = mktime(0,0,0,date("m"), date("d"),date("Y"));
$resultTime = ($startTS- $todayTS) / (60*60*24);
$list[$i]['dayDiff'] = $resultTime;
}
$list= array_slice($list, 0, $rows);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
위와같은 izen_group 스킨을 사용하고 있는데요. wr_hit 부분에, wr_comment 혹은 wr_good 으로하면
각각 조회순, 댓글순, 추천순 으로 잘 뿌려집니다.
그런데 문제는, 저는 그냥 날짜순으로 뿌리고 싶거든요.
그런데 아무리 해도 날짜순으로 뿌려지지가 않습니다. ㅠㅠ
저 부분을 wr_datetime 같은식으로 날짜와 관련있게 변경해봐도, 추출이 안돼네요.
그래서 소스를 이리저리 보고있는데, 도무지 모르겠어서...
이곳의 고수님들께 조언을 구하게 되었습니다... ㅠㅠ
=======================================================================
/extend/best10.lib.php 파일중에 어디를 손을 봐야할까요? ㅠㅠ;;;;
<?
if (!defined('_GNUBOARD_')) exit;
/*
izen.group.lib.php
제작일 : 2006-12-08
지정 기간제 히트순 최근 게시물 수정본
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/7328
그룹 최신글 관련하여 통합하도록 하였다.
정렬 필드값에 의해서 SQL 문을 추가하도록 하면 된다.
izen_group('스킨', '그룹명', 정렬필드, 출력갯수, 자를 문자열, 최근 몇일간을 출력할 것인가?);
예) echo izen_group('best10', '06', wr_hit, 10, 28, 30);
* (2010/6/25 추가 수정 by raccoone)
그룹명에 ,(콤마)를 써서 그룹 추가 가능.
예) echo izen_group('best10', '06,07,08', wr_hit, 10, 28, 30);
*/
# 인기글
function izen_usort1($a, $b)
{
return $b['wr_hit'] - $a['wr_hit'];
}
# 헤드라인
function izen_usort2($a, $b)
{
return $b['wr_good'] - $a['wr_good'];
}
# 코멘트순
function izen_usort3($a, $b)
{
return $b['wr_comment'] - $a['wr_comment'];
}
# 최신글 추출 wrapper
function izen_group($skin_dir="", $gr_id, $izen_sort, $rows=10, $subject_len=40, $listdate)
{
return izen_group_detail($skin_dir, $gr_id, $izen_sort, $rows, $subject_len, $listdate);
}
# 최신글 추출(상세 버전)
function izen_group_detail($skin_dir="", $gr_id, $izen_sort, $rows=10, $subject_len=40, $listdate, $member="", $ignoreSearchOpt="")
{
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/basic";
}
$list = array();
$gr_id_array = explode(",", $gr_id);
//검색 옵션 사용여부
$searchOpt = "";
$andSearchOpt = "";
if($ignoreSearchOpt =="")
{
$searchOpt = "bo_use_search='1'";
$andSearchOpt = " and ".$searchOpt;
}
//특정 멤버만 검색 여부
$memberOpt = "";
if($member != "")
{
$memberOpt = " and mb_id='$member'";
}
if(count($gr_id_array) > 1)
{
$gr_id_final = "gr_id='".$gr_id_array[0]."' ".$andSearchOpt;
for($i = 1;$i < count($gr_id_array);$i++)
$gr_id_final .= " or gr_id='".$gr_id_array[$i]."' ".$andSearchOpt;
}else{
$gr_id_final = "gr_id='".$gr_id."' ".$andSearchOpt;
}
$sql= " select bo_table, bo_subject from {$g4['board_table']} ";
if( !empty($gr_id)) $sql .= "where ".$gr_id_final." order by bo_order_search ";
else $sql .= "where ".$searchOpt." order by bo_order_search ";
$ress = sql_query($sql);
for($i=0, $ii=0; $board=sql_fetch_array($ress); $ii++)
{
$tmp_write_table = $g4['write_prefix'] . $board['bo_table']; # 게시판 테이블 전체이름
#$sql = "select * from `$tmp_write_table` where wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $sort desc limit 0, $rows ";
# 정렬 필드에 의해서 전체적으로 정렬, 관리한다.
$sql_gr_Q = "wr_is_comment <> '1'";
if($izen_sort=="wr_1")
{
$sql_gr_Q.= " and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd'";
}else
{
$sql_gr_Q.= " and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd'";
}
$sql_gr_Q.= $memberOpt;
if ($izen_sort == 'wr_hit')
{
$sql_gr_Q .= "";
}
elseif ($izen_sort == 'wr_scrap')
{
$sql_gr_Q .= " and wr_scrap <> 0";
}
elseif ($izen_sort == 'wr_datetime') # wr_1 헤드라인
{
$sql_gr_Q .= " and wr_1 = 1";
}
elseif ($izen_sort == 'wr_good') #
{
$sql_gr_Q .= " and wr_good <> '0' ";
}
elseif ($izen_sort == 'wr_comment')
{
$sql_gr_Q .= " and wr_comment <> '0' ";
}
elseif ($izen_sort == 'wr_id')
{
$sql_gr_Q = "wr_is_comment <> '1'"; //덮어씀
}
$sql_gr_Q.= " order by $izen_sort desc limit 0, $rows ";
$sql = " select * from `$tmp_write_table` where $sql_gr_Q ";
$result = sql_query($sql);
#for (; $row=sql_fetch_array($result); $i++) # *오류* 전체 게시물 가운데 날짜에 상관없이 히트순으로 지정한 갯수만큼 출력된다.
for ($i==0; $row=sql_fetch_array($result); $i++)
{
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len, $listdate);
$list[$i]['bo_table'] = $board['bo_table'];
$list[$i]['bo_subject'] = $board['bo_subject'];
}
}
if ($izen_sort == 'wr_hit')
{
usort($list, 'izen_usort1');
}
elseif ($izen_sort == 'wr_good')
{
usort($list, 'izen_usort2');
}
elseif ($izen_sort == 'wr_comment')
{
usort($list, 'izen_usort3');
}
$list= array_slice($list, 0, $rows);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
# 스케쥴 추출
/*
제작일 : 2010-07-09 by raccoone
스케줄을 오늘자부터 시작, 날짜순으로 추출(예정방향으로)
izen_schedule('스킨', '게시판명', 출력갯수, 자를 문자열, 최근 몇일간을 출력할 것인가?, 추출하고자 하는 아이디);
예) echo izen_schedule('schedule_today', 'schedule', 10, 12, 7, $_SESSION['ss_mb_id']);
*/
function izen_schedule($skin_dir="", $scheduleBoard_id, $rows=10, $subject_len=40, $listdate, $member, $onlyNotice="")
{
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/basic";
}
$list = array();
$tmp_write_table = $g4['write_prefix'].$scheduleBoard_id;
$sql_gr_Q = "wr_is_comment <> '1'";
$sql_gr_Q.= " and mb_id='$member' ";
$sql_gr_Q.= " and wr_1>=$nowYmd and wr_1<$startYmd";
$sql_gr_Q.= " order by wr_1 asc limit 0, $rows ";
$sql = " select * from `$tmp_write_table` where $sql_gr_Q ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len, $listdate);
$list[$i]['bo_table'] = $scheduleBoard_id;
$list[$i]['bo_subject'] = $board['bo_subject'];
//날짜 차이를 구한다.
$date = $list[$i]['wr_1'];
$year = substr($date,0,4);
$month = substr($date,4,2);
$day = substr($date,6,2);
$startTS = mktime(0,0,0,$month, $day,$year);
$todayTS = mktime(0,0,0,date("m"), date("d"),date("Y"));
$resultTime = ($startTS- $todayTS) / (60*60*24);
$list[$i]['dayDiff'] = $resultTime;
}
$list= array_slice($list, 0, $rows);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
댓글 전체