최근글 스킨 해당필드의 기간이 지나면 미출력 > 그누4 질문답변

그누4 질문답변

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

최근글 스킨 해당필드의 기간이 지나면 미출력 정보

최근글 스킨 해당필드의 기간이 지나면 미출력

본문

안녕하세요.....
최근글추출하는 게시판은 "Offline" 이구요.
wr_link1에 시작일 wr_6에 시작시간
wr_link2에 종료일 wr_7에 종료시간을 각각 받고있습니다.
시작일은 상관없으나 위 종료일과 종료시간이 지나면
출력에서 제외를 시키고 싶습니다.

아래는 카테고리별 최근글 추출하는 스킨 한폴더에 있는 두파일의 내용입니다.

---------------------------------------------------------------------여기서부터 inc.lib.php
<?
if (!defined('_GNUBOARD_')) exit;

function latest_cate($skin_dir="", $bo_table, $rows=10, $subject_len=40, $ca_name="")
{
    global $g4;

    if ($skin_dir)
        $latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
    else
        $latest_skin_path = "$g4[path]/skin/latest/basic";

    $list = array();

    $sql = " select * from $g4[board_table] where bo_table = '$bo_table'";
    $board = sql_fetch($sql);

    $tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름

    if ($ca_name)
    $sql = " select * from $tmp_write_table where ca_name = '$ca_name' and wr_is_comment = 0 order by wr_num limit 0, $rows ";
    else
    $sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_num 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);
   
    ob_start();
    include "$latest_skin_path/latest.skin.php";
    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}

?>
---------------------------------------------------------------------여기까지 inc.lib.php

----------------------------------------------------------여기서부터 latest.skin.php
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>

<? for ($i=0; $i<count($list); $i++) { ?>
<?
$today_ymd = date("Ymd", time());
$query98="SELECT * FROM $g4[write_prefix]$bo_table where wr_link1 <= '$today_ymd' and wr_link2>='$today_ymd'";

$result98 = mysql_query($query98);

    $from_date = str_replace("http://","",$list[$i][wr_link1]);
    $to_date = str_replace("http://","",$list[$i][wr_link2]);
    $from_date = substr($from_date,0,4)."년 ".sprintf("%2d",substr($from_date,4,2))."월 ".sprintf("%2d",substr($from_date,6,2))."일";
    $to_date  = substr($to_date,0,4)."년 ".sprintf("%2d",substr($to_date,4,2))."월 ".sprintf("%2d",substr($to_date,6,2))."일";
    $name = get_sideview($list[$i][mb_id], $list[$i][wr_name]);
 

 $time_ymdhi = date("YmdH:i", $g4['server_time']);
 $stime =  $list[$i][wr_link1].$list[$i][wr_6];
 $etime =  $list[$i][wr_link2].$list[$i][wr_7];


echo "<TABLE width=95% cellspacing=0 cellpadding=0 border=0 >
<tr>
<td>
<TABLE width=100% cellspacing=0 cellpadding=0 border=0 class='textbox1'>
<tr>
<td height=34>&nbsp;&nbsp;&nbsp;<img src='$g4[path]/img/sc-d{$list[$i][wr_3]}.gif' border='0' align='absmiddle'>&nbsp; <a href='{$g4[bbs_path]}/board.php?bo_table={$bo_table}&wr_id={$list[$i][wr_id]}'><b>[{$list[$i][ca_name]}] {$list[$i]['subject']}</b></a>";

$Co = sql_fetch("select * from $tmp_write_table where wr_num = {$list[$i][wr_num]} and wr_is_comment = 1 and wr_comment = {$list[$i][wr_comment]}");
$Co_datetime = substr($Co[wr_datetime],0,-9);
$Co_datetime = substr($Co_datetime,0,4).substr($Co_datetime,5,2).substr($Co_datetime,8,2);
$To_datetime = date("Ymd");

if($To_datetime - $Co_datetime < 2){
    echo " <span class='fontgreen fb'>+{$list[$i][comment_cnt]}</span>";
}else
    echo " <span class='fontgray text8 fb'>{$list[$i][comment_cnt]}</span>";

echo "&nbsp;&nbsp;<span class='date'>|</span>&nbsp;&nbsp;주최자&nbsp;:&nbsp;$name&nbsp;&nbsp;<span class='date'>|</span>&nbsp;&nbsp;장소&nbsp;:&nbsp;{$list[$i][wr_google_map]}</td><td width=30% align=right>";


if ($time_ymdhi < $stime){ echo "<span class=date>{$from_date} {$data[wr_6]} ~ {$to_date} {$list[$i][wr_7]}</span>"; }
elseif ($time_ymdhi < $etime){ echo "[진행중] <span class=date>∼ {$to_date} {$list[$i][wr_7]}</span>"; }
else{ echo "<span class=date>[종료]</span>"; }


echo "&nbsp;&nbsp;&nbsp;</td></tr></table></td></tr><tr><td height=10></td></tr></table>" ;
?>

<? } ?>

<? if (count($list) == 0) { ?><? } ?>
-----------------------------------------------------------------------여기까지 latest.skin.php
--------

댓글 전체

latest.skin.php
파일에 쓰인
$query98="SELECT * FROM $g4[write_prefix]$bo_table where wr_link1 <= '$today_ymd' and wr_link2>='$today_ymd'";

$result98 = mysql_query($query98);

위 두개는 쓰지 않는 구문이네요 위 where 조건을
inc.lib.php  파일의 sql 문에 추가해주시면 될꺼 같습니다
inc.lib.php은 그대로 두고
아래 처럼 latest.skin.php 를 수정해봤습니다........일단 원하는데로 wr_link2 종료날짜가 지난뒤에
미출력되네요.
제대로 수정한건가요? ^^;;

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>


<?
$today_ymd = date("Ymd", time());

for ($i=0; $i<count($list); $i++) {

if($today_ymd > $list[$i][wr_link2]) {
echo "";
} else {

$from_date = str_replace("http://","",$list[$i][wr_link1]);
$to_date = str_replace("http://","",$list[$i][wr_link2]);
$from_date = substr($from_date,0,4)."년 ".sprintf("%2d",substr($from_date,4,2))."월 ".sprintf("%2d",substr($from_date,6,2))."일";
$to_date  = substr($to_date,0,4)."년 ".sprintf("%2d",substr($to_date,4,2))."월 ".sprintf("%2d",substr($to_date,6,2))."일";
$name = get_sideview($list[$i][mb_id], $list[$i][wr_name]);
 

$time_ymdhi = date("YmdH:i", $g4['server_time']);
$stime =  $list[$i][wr_link1].$list[$i][wr_6];
$etime =  $list[$i][wr_link2].$list[$i][wr_7];


echo "<TABLE width=95% cellspacing=0 cellpadding=0 border=0 >
<tr>
<td>
<TABLE width=100% cellspacing=0 cellpadding=0 border=0 class='textbox1'>
<tr>
<td height=34>&nbsp;&nbsp;&nbsp;<img src='{$g4[path]}/img/sc-d{$list[$i][wr_3]}.gif' border='0' align='absmiddle'>&nbsp; <a href='{$g4[bbs_path]}/board.php?bo_table={$bo_table}&wr_id={$list[$i][wr_id]}'><b>[{$list[$i][ca_name]}] {$list[$i]['subject']}</b></a>";

$Co = sql_fetch("select * from $tmp_write_table where wr_num = {$list[$i][wr_num]} and wr_is_comment = 1 and wr_comment = {$list[$i][wr_comment]}");
$Co_datetime = substr($Co[wr_datetime],0,-9);
$Co_datetime = substr($Co_datetime,0,4).substr($Co_datetime,5,2).substr($Co_datetime,8,2);
$To_datetime = date("Ymd");

if($To_datetime - $Co_datetime < 2){
    echo " <span class='fontgreen fb'>+{$list[$i][comment_cnt]}</span>";
}else
    echo " <span class='fontgray text8 fb'>{$list[$i][comment_cnt]}</span>";

echo "&nbsp;&nbsp;<span class='date'>|</span>&nbsp;&nbsp;주최자&nbsp;:&nbsp;{$name}&nbsp;&nbsp;<span class='date'>|</span>&nbsp;&nbsp;장소&nbsp;:&nbsp;{$list[$i][wr_google_map]}</td><td width=30% align=right>";

if ($time_ymdhi < $stime){ echo "<span class=date>{$from_date} {$data[wr_6]} ~ {$to_date} {$list[$i][wr_7]}</span>"; }
elseif ($time_ymdhi < $etime){ echo "[진행중] <span class=date>∼ {$to_date} {$list[$i][wr_7]}</span>"; }
else{ echo "<span class=date>[종료]</span>"; }


echo "&nbsp;&nbsp;&nbsp;</td></tr></table></td></tr><tr><td height=10></td></tr></table>";
}
?>

<? } ?>

<? if (count($list) == 0) { ?><? } ?>
위처럼 해도 되는데 100% 맞는건 아닌거 같네요

위 같이 할경우  count(list) 값이 다르게 나올수있습니다.
따라서 자료가 없을때의 예외처리 부분을

<? if (count($list) == 0) { ?><? } ?>
==>
<? if($i==0){?>자료가 없습니다.<?}?>

로 하시는게 맞는거 같네여.

PS . 쿼리에서는 날짜 상관없이 다 가져오고
if문으로 제어하는것은 좋은 방식은 아닙니다 데이타 를 가져오는 수를 정확하게 조건 맞춰서 가져오시는게 좋습니다
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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