최근글 스킨 해당필드의 기간이 지나면 미출력 정보
최근글 스킨 해당필드의 기간이 지나면 미출력
본문
안녕하세요.....
최근글추출하는 게시판은 "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> <img src='$g4[path]/img/sc-d{$list[$i][wr_3]}.gif' border='0' align='absmiddle'> <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 " <span class='date'>|</span> 주최자 : $name <span class='date'>|</span> 장소 : {$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 " </td></tr></table></td></tr><tr><td height=10></td></tr></table>" ;
?>
<? } ?>
<? if (count($list) == 0) { ?><? } ?>
-----------------------------------------------------------------------여기까지 latest.skin.php
--------
최근글추출하는 게시판은 "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> <img src='$g4[path]/img/sc-d{$list[$i][wr_3]}.gif' border='0' align='absmiddle'> <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 " <span class='date'>|</span> 주최자 : $name <span class='date'>|</span> 장소 : {$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 " </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 문에 추가해주시면 될꺼 같습니다
파일에 쓰인
$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> <img src='{$g4[path]}/img/sc-d{$list[$i][wr_3]}.gif' border='0' align='absmiddle'> <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 " <span class='date'>|</span> 주최자 : {$name} <span class='date'>|</span> 장소 : {$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 " </td></tr></table></td></tr><tr><td height=10></td></tr></table>";
}
?>
<? } ?>
<? if (count($list) == 0) { ?><? } ?>
아래 처럼 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> <img src='{$g4[path]}/img/sc-d{$list[$i][wr_3]}.gif' border='0' align='absmiddle'> <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 " <span class='date'>|</span> 주최자 : {$name} <span class='date'>|</span> 장소 : {$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 " </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문으로 제어하는것은 좋은 방식은 아닙니다 데이타 를 가져오는 수를 정확하게 조건 맞춰서 가져오시는게 좋습니다
위 같이 할경우 count(list) 값이 다르게 나올수있습니다.
따라서 자료가 없을때의 예외처리 부분을
<? if (count($list) == 0) { ?><? } ?>
==>
<? if($i==0){?>자료가 없습니다.<?}?>
로 하시는게 맞는거 같네여.
PS . 쿼리에서는 날짜 상관없이 다 가져오고
if문으로 제어하는것은 좋은 방식은 아닙니다 데이타 를 가져오는 수를 정확하게 조건 맞춰서 가져오시는게 좋습니다