그룹 최신게시물 스킨 izen_group 을 사용하고 있습니다. 도움 부탁드립니다. ㅠㅠ > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

그룹 최신게시물 스킨 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;
}
?>

댓글 전체

전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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