최신글 자동갱신 하는법
본문
제가 달력을 이용한 일정게시판을 만들었는데요,, 이 게시판에서는 그날의 일정만 보여주도록 만들었습니다. 예를들어 22일이면 22일에 저장된 글만 나오게 만들었는데요
최신글에서 이 게시판을 불러오면 해당 날짜에 맞게 자동으로 갱신되지않고 수동으로 서버에 계속 올려줘야 날짜가 변경되더군요.. 그래서 매일 해당 게시판처럼 자동으로 갱신되게 하려면 어떻게 해야하나요??
<최신글>
<?php for ($i=0; $i<count($list); $i++) { ?>
<?php echo substr($list[$i]['wr_2'],0,4).".".substr($list[$i]['wr_2'],4,2).".".substr($list[$i]['wr_2'],6,2); ?></div>
<?php
$str1 = $list[$i]['wr_content'];
$str2 = $list[$i]['wr_3'];
echo "<a href=\"".$list[$i]['href']."\">";
echo str_replace(',', '<br>', $str1);
echo str_replace(',', '<br>', $str2);
echo "</a>";
?>
<?php } ?>
<?php if (count($list) == 0) { //게시물이 없을 때 ?>
<div>게시물이 없습니다.</div>
<?php } ?>
<게시판>
...
<?
$cday = 1;
$sel_mon = sprintf("%02d",$month);
$query = "SELECT * FROM $write_table WHERE left(wr_1,6) <= '$year$sel_mon' and left(wr_2,6) >= '$year$sel_mon' ORDER BY wr_id ASC";
$result = sql_query($query);
$j=0; // layer id
// 내용을 보여주는 부분
while ($row = sql_fetch_array($result)) { // 제목글 뽑아서 링크 문자열 만들기..
if( substr($row[wr_1],0,6) < $year.$sel_mon ) {
$start_day =1;
$start_day= (int)$start_day;
} else {
$start_day = substr($row[wr_1],6,2);
$start_day= (int)$start_day;
}
if( substr($row[wr_2],0,6) > $year.$sel_mon ) {
$end_day = $lastday[$month];
$end_day= (int)$end_day;
} else {
$end_day = substr($row[wr_2],6,2);
$end_day= (int)$end_day;
}
for ($i = $start_day ; $i <= $end_day; $i++) {
$j++; // layer ID
if ($member[mb_level] < $board[bo_read_level]) {
$showLayer="" ;
} else {
$showLayer=" onmouseover=\"PopupShow('".$j."')\" onmouseout=\"PopupHide('".$j."')\" ";
}
?>
<?
$html = 0;
if (strstr($row[wr_option], "html1"))
$html = 1;
else if (strstr($row[wr_option], "html2"))
$html = 2;
$viewlist = cut_str(conv_content($row[wr_content], $html),200,"…");
$viewdiner = cut_str(conv_content($row[wr_3], $html),200,"…");
?>
<?
//오늘 스케줄 구하기
if ($row[wr_id] != $sc_id && date('Ymd', strtotime($row[wr_1])) <= date(Ymd) && date('Ymd', strtotime($row[wr_2])) >= date(Ymd)) {
$today_schedule .= "<div class='food_head'>".substr($row['wr_1'],4,2)." 월 ".substr($row['wr_1'],6,2)." 일 <img src='../images/icon_today.png'></div>";
$str1 = $viewlist;
$str2 = $viewdiner;
$view1 = str_replace(',', '<br>', $str1);
$view2 = str_replace(',', '<br>', $str2);
$today_schedule .= "<a href='".G5_BBS_URL."/board.php?bo_table=$bo_table&year=$year&month=$month&wr_id=$row[wr_id]&sc_no=$sc_no'>".$view1."</a>";
$today_schedule .= "<a href='".G5_BBS_URL."/board.php?bo_table=$bo_table&year=$year&month=$month&wr_id=$row[wr_id]&sc_no=$sc_no'>".$view2."</a>";
}
$sc_id = $row[wr_id];
}
}
// 달력의 틀을 보여주는 부분
$temp = 7- (($lastday[$month]+$dayoftheweek)%7);
if ($temp == 7) $temp = 0;
$lastcount = $lastday[$month]+$dayoftheweek + $temp;
for ($iz = 1; $iz <= $lastcount; $iz++) { // 42번을 칠하게 된다.
$bgcolor = "#ffffff"; // 쭉 흰색으로 칠하고
if ($b_year==$year && $b_mon==$month && $b_day==$cday) $bgcolor = "#003876"; // 오늘날짜 표기
if (($iz%7) == 1) echo ("<tr>"); // 주당 7개씩 한쎌씩을 쌓는다.
if ($dayoftheweek < $iz && $iz <= $lastday[$month]+$dayoftheweek) {
// 전체 루프안에서 숫자가 들어가는 셀들만 해당됨
// 즉 11월 달에서 1일부터 30 일까지만 해당
$daytext = "$cday"; // $cday 는 숫자 예> 11월달은 1~ 30일 까지
//$daytext 은 셀에 써질 날짜 숫자 넣을 공간
$daycontcolor = "" ;
$daycolor = "";
if ($iz%7 == 1) $daycolor = "red"; // 일요일
if ($iz%7 == 0) $daycolor = "blue"; // 토요일
if ($b_year==$year && $b_mon==$month && $b_day==$cday) $daycolor = "white";
// 여기까지 숫자와 들어갈 내용에 대한 변수들의 세팅이 끝나고
// 이제 여기 부터 직접 셀이 그려지면서 그 안에 내용이 들어 간다.
echo ("<td width=$col_width height=$col_height bgcolor=$bgcolor valign=top>");
$f_date = $year.sprintf("%02d",$month).sprintf("%02d",$cday);
// 기념일 파일 내용 비교위한 변수 선언, 월과 일을 두자리 포맷으로 고정
if (strlen($month) == 1) {
$monthp = "0".$month ;
} else {
$monthp = $month ;
}
if (strlen($cday) == 1) {
$cdayp = "0".$cday ;
} else {
$cdayp = $cday ;
}
$memday = $year.$monthp.$cdayp;
$daycont = "" ;
// 기념일(양력) 표시
for($i=0 ; $i < sizeof($dayfile) ; $i++) { // 파일 첫 행부터 끝행까지 루프
$arrDay = explode("|", $dayfile[$i]);
if($memday == $year.$arrDay[0]) {
$daycont = $arrDay[1];
$daycontcolor = $arrDay[2];
if(substr($arrDay[2],0,3)=="red") $daycolor = "red"; // 공휴일은 날짜를 빨간색으로 표시
}
}
if ($write_href) {
// $write_href (글쓰기 권한)이 있으면
// 날짜를 클릭하면 글씨쓰기가 가능한 링크를 넣어서 출력하기
echo "<a href='".G5_BBS_URL."/board.php?bo_table=$bo_table&year=$year&month=$month&wr_id=$row[wr_id]&sc_no=$sc_no'><font color='$daycolor'>$daytext</font></a>$moonday <font color='$daycontcolor'>$daycont</font>$blank $annivmoonday";
} else { // 글쓰기 권한이 없으면 글쓰기 링크는 넣지 않고 그냥 숫자와 기념일 내용만 출력하기
echo "<a href='".G5_BBS_URL."/board.php?bo_table=$bo_table&year=$year&month=$month&wr_id=$row[wr_id]&sc_no=$sc_no'><font color='$daycolor'>$daytext</font></a>";
}
echo $html_day[$cday];
echo ("</td>"); // 한칸을 마무리
$cday++; // 날짜를 카운팅
}
// 유효날짜가 아니면 그냥 회색을 칠한다.
else { echo (" <td width=$col_width height=$col_height bgcolor=#ffffff valign=top> </td>"); }
if (($iz%7) == 0) echo (" </tr>");
} // 반복구문이 끝남
?>
...
답변 2
최신글 추출을 latest 스킨을 사용하시나요?
그렇다면 latest.lib.php 파일을 좀 수정해야할 필요가 있습니다.
그럴경우 제가 글로써 설명해드리기 어렵고, latest.lib.php 파일도 작업을해야하니..
최신글 추출부분만 따로 제작하는걸 추천해드립니다.
예제)
$ymd = date('Ymd');
$sql = " select * from 테이블명 where left(wr_1,6) = '$ymd' ";
$result = sql_query($sql);
for($i=0; $i<$row=sql_fetch_array($result); $i++) {
echo substr($row['wr_2'],0,4).".".substr($row['wr_2'],4,2).".".substr($row['wr_2'],6,2);
$str1 = $row['wr_content'];
$str2 = $row['wr_3'];
echo "<a href=\"".$row['href']."\">";
echo str_replace(',', '<br>', $str1);
echo str_replace(',', '<br>', $str2);
echo "</a>";
}
이런식으로 따로 쿼리로 추출..
최신글 올려주신건 쿼리를 가지고 보여지는 부분이고
쿼리쪽을 봐야 알거같아요.
$ymd = date('Ymd');
$query =
"SELECT * FROM $write_table WHERE left(wr_1,6) = '$ymd' ";
이런식의 쿼리가 있어야하겠죠..