채택완료

주간일정 최신글 문의드려봅니다.

2017-11-08 (수) 22:20:00 2,703

우선 최신글 스킨은

https://sir.kr/g4_skin/68483?sca=%EC%B5%9C%EC%8B%A0%EA%B8%80&sfl=wr_subject%7C%7Cwr_content&stx=%EC%A3%BC%EA%B0%84

이걸쓰고 있습니다. 그누4버전이고, 저랑 게시판 스킨자체가 달라 조금 수정해서 쓰고있습니다.

이렇게 저렇게 해보다보니, 최신글 추출까진 성공적으로 마쳤으나, 첫글 1개밖에 추출하지못합니다.

이런식으로 그날스케쥴이 여러개 입력되어있으면 여러개로 나타내고싶은데

어떤부분을 봐야할까요?

*** 변수부분

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$yoil = array ("월", "화", "수", "목", "금");
$today  = mktime (0,0,0,date("n")  , date("j")+2, date("Y"));
$w=date('w');//요일
if($w==0)$w=7;//일요일을 0에서 7로 변경
$week=$w-1;//한칸 당김, 0월 1화 2수 3목 4금 5토 6일
$monday = $today-$w*3600*24;   //월요일

for ($i=0; $i<=6; $i++){
        $days_org[$i] = $monday+3600*24*$i;
        $days[$i] = gmdate('Y',$days_org[$i]).gmdate('m',$days_org[$i]).gmdate('d',$days_org[$i]);
$query = "select * from $write_table where  wr_1 = '$days[$i]' order by wr_id asc";
$rst = sql_query($query);
$data = sql_fetch_array($rst);
$memo[$i]=$data['wr_subject'];
if(!$memo[$i]) $memo[$i] = "게시글없음"; 
$day[$i] = gmdate('n',$days_org[$i])."월".gmdate('j',$days_org[$i])."일";
$cday[$i] = gmdate('j',$days_org[$i]);
$cyear[$i] = gmdate('Y',$days_org[$i]);
$cmonth[$i] = gmdate('n',$days_org[$i]); 
}
?>

*해당부분

<tr>
                    <? for ($i = 0; $i<=6; $i++) {
                        echo "<td align='center' valign='middle' height='33' width='14%' bgcolor='#ffffff' class='cal_title'><a href=\"javascript:win_open('$g5[path]/skin/latest/week_calendar/pop_schedule.php?bo_table=$bo_table&year=$cyear[$i]&month=$cmonth[$i]&day=$cday[$i]', 'schedule', 'left=50, top=50, width=300, height=400, scrollbars=1');\"> <b>".$memo[$i]."</b></a></td>\n";
                        }
                    ?>
                    
                </tr>

너무많은 도움받아 질문하기도 민망하지만, 새로운 취미와 공부를 위해 열심히하고있습니다. 

도움주실분들 미리감사합니다

|

답변 2개 / 댓글 3개

채택된 답변
+20 포인트
Copy
for ($i=0; $i<=6; $i++){
    $days_org[$i] = $monday+3600*24*$i;
    
    $day[$i] = gmdate('n',$days_org[$i])."월".gmdate('j',$days_org[$i])."일";
    $cday[$i] = gmdate('j',$days_org[$i]);
    $cyear[$i] = gmdate('Y',$days_org[$i]);
    $cmonth[$i] = gmdate('n',$days_org[$i]);

    $days[$i] = gmdate('Y',$days_org[$i]).gmdate('m',$days_org[$i]).gmdate('d',$days_org[$i]);

    //시작일 검색
    //$query = "select * from $write_table where  wr_link1 = '$days[$i]' order by wr_id asc";
    //구간검색
    $query = " select wr_subject from $write_table where wr_comment > -1 AND (wr_link1 <= '".$days[$i]."' AND wr_link2 >= '".$days[$i]."') order by wr_id asc ";

    $rst = sql_query($query);
    $temp_str="";
    while($data = sql_fetch_array($rst)){
        $temp_str.=(($temp_str)?"<br>":"").$data['wr_subject'];//구분 줄바꿈
    }
    $memo[$i]=($temp_str)?$temp_str:"-";
}

답변에 대한 댓글 2개

안녕하세요 답변감사합니다. 적어주신대로했는데 모든 날짜값이 다 똑같습니다 ㅠㅠ
6줄나오긴한데..각 요일별로 다똑같고 뜨는게 제목이 안뜨고 이상한숫자가뜹니다 ㅠ
$query = "select * from $write_table where wr_link1 = '$days[$i]' order by wr_id asc";
//구간검색
//$query = " select wr_subject from $write_table where wr_is_comment =0 AND (wr_link1 <= '".$days[$i]."' AND wr_link2 >= '".$days[$i]."') order by wr_id asc ";

주석을 변경해서 등록해 보세요
아래 부분은 각 등록해 놓으신 기간별로 모두 나오는 것이고요 1~ 3일 까지면 동일한 내용이 3번 나오는것이고요 .
위애 부분은 시작로 검색하는 것입니다 만약 1~3일 스케줄이면 1에만 나오게 됩니다
wr_subject 값은 큰 문제 없는듯 하고요
혹 아래부분에 커맨트가 있을수 있어 wr_comment >-1 부분을 wr_is_comment=0 을 바꾸어 놓았습니다.

그거.. 달력용 최신글 함수 파일 누락되어 있지 않던가요?

설치해보려다가 그래서 말았었는데..

답변에 대한 댓글 1개

네 누락되서, lib/latest.lib.php 파일 아래쪽에

function latest_schedule($skin_dir='', $bo_table, $rows=10)
{
global $config;
global $g5;
global $year, $month;

// 스킨디렉토리값이 넘어왔다면
if ($skin_dir) {
$latest_skin_path = "./$g5[path]/skin/latest/$skin_dir";
}

$write_table = $g5[write_prefix] . $bo_table;

ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();

return $content;
}

이거 추가해서 적용시켰습니다

답변을 작성하려면 로그인이 필요합니다.