제목 | 달력 Data를 배열로 가져오기 helper | ||
---|---|---|---|
글쓴이 | SADBLUE | 작성시각 | 2009/10/29 23:16:48 |
|
|||
이 헬퍼는. 달력에 보여지는 모양대로 2차원 배열로 data를 만드는 것에 있습니다. 이전달 뒷부분과 다음달 앞부분 까지 채워서 만들어줍니다. <? function getCalendarArray(&$pController) { $pController->load->helper("date"); $stWeek = array(); $stMonth = array(); $nCurrentYear = mdate("%Y", now()); $nCurrentMonth = mdate("%n", now()); $nCurrentDate = mdate("%d", now()); $nStartDate = 1; $nStartDay = mdate("%w", strtotime(sprintf("%s%02s01", $nCurrentYear, $nCurrentMonth))); $nLastDate = days_in_month($nCurrentMonth, $nCurrentYear); if ($nCurrentMonth == 1) $nPrevMonthLastDate = days_in_month(12, ($nCurrentYear-1)); else $nPrevMonthLastDate = days_in_month(($nCurrentMonth-1), $nCurrentYear); for($i=0 ; $i<$nStartDay ; ++$i) array_push($stWeek, ($nPrevMonthLastDate - $nStartDay + $i + 1)); for($i=$nStartDay ; $i<7 ; ++$i) array_push($stWeek, $nStartDate++); array_push($stMonth, $stWeek); // 맨 첫주 완성 unset($stWeek); $stWeek = array(); for($i=$nStartDate ; $i<=$nLastDate ; ++$i) { if (sizeof($stWeek) == 7) { array_push($stMonth, $stWeek); unset($stWeek); $stWeek = array(); } array_push($stWeek, $i); } $nFillCount = sizeof($stWeek); for($i=1 ; $i<=7-$nFillCount; ++$i) array_push($stWeek, $i); array_push($stMonth, $stWeek); unset($stWeek); return $stMonth; } ?> controller를 인자로 넘기는 것은 CI에서 제공하는 date helper를 사용하는데 없을 경우를 확인 하기 힘드니... 그냥 한번 더 load를 호출 하기 위함입니다. 없으면 load될테고...있으면 알아서 넘어가겠지요.~_~; |
|||
다음글 | 달력 Data를 배열로 가져오기 js버전. (2) | ||
이전글 | 공개된 포럼 소스를 lighttpd에 설치할 때 .ht... (5) | ||
SADBLUE
/
2009/11/01 14:41:53 /
추천
0
버그가 있어 수정 하였습니다.~_~;
|
ci_beginne
/
2009/11/03 13:40:36 /
추천
0
SADBLUE님 사용법은 어떻게 되죠? |
SADBLUE
/
2009/11/03 22:37:12 /
추천
0
일단 위의 소스를 helper로 만드셔서 application/helper밑에 저장 하시구요.
$this->load->helper(_저장하신helper이름_); $data = getCalendarArray($this);이렇게 쓰시면 data에 2차원 배열로 넘어 옵니다. 이건 지금 무조건 오늘을 기준으로 배열을 만드는지라. 특정한 달의 달력 data를 가져오게 하시려면 년.월을 인자로 받아서 수정 하시면 될겁니다. |
ci_beginne
/
2009/11/03 23:27:16 /
추천
0
SADBLUE님 친절한 답변에 감사드립니다.^^
|
변종원(웅파)
/
2009/11/04 00:32:54 /
추천
0
적용해봐야겠네요. 감사합니다.
|
SADBLUE
/
2009/11/07 18:57:23 /
추천
0
아유 이누무 버그.;; 민망하여라.; 마지막 주 채우는데 버그가 있었습니다.-_-;수정 다시 했습니다.;
|