| 제목 | 달력 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
아유 이누무 버그.;; 민망하여라.; 마지막 주 채우는데 버그가 있었습니다.-_-;수정 다시 했습니다.;
|