SMS처리 도우미
이름 Calendaring(달력) Class
카테고리 codeigniter     >     Calendaring(달력) Class
예제(문법)

Class 초기화
     다른 Codeigniter Class와 마찬가지로 "$this->load->library" 함수를 사용하여 초기화할 수 있습니다.
      $this->load->library('calendar');

     로딩된 이후로는 다음 형태로 사용가능합니다.
  $this->calendar

 

캘린더 표시

     캘린더를 출력할 수 있는 간단한 예제 (서버의 현재 날짜 정보에 근거)

     $this->load->library('calendar');
     echo $this->calendar->generate();


     월 및 년도를 지정하여 캘린더 출력

     $this->load->library('calendar');
     echo $this->calendar->generate(2006, 6);   //2006년 6월


캘린더 칸에 데이터를 표시
     배열 형태의 변수가 필요합니다.
     이 배열 변수의 key 값은 날짜이며, 배열 내에 삽입할 데이터를 포함합니다. 
     그리고, 이 배열 변수는 generate 함수의 세번째 인자입니다.
     다음은 예제입니다.

     $this->load->library('calendar');

     $data = array(
     3  => 'http://example.com/news/article/2006/06/03/',
     7  => 'http://example.com/news/article/2006/06/07/',
     13 => 'http://example.com/news/article/2006/06/13/',
     26 => 'http://example.com/news/article/2006/06/26/'
     );

     echo $this->calendar->generate(2006, 6, $data);

     // 3,7,13,26 날짜에 특정 URL을 가리키는 링크가 생성됩니다.

표시 설정 정보 세팅
     캘린더 디자인을 위해 7가지 정보를 세팅할 수 있습니다.
     배열 형태로 사용하며, loading 함수내 두번째 인자에 넣습니다.
     다음은 예제입니다.

     $prefs = array(
     'start_day'    => 'saturday',
     'month_type'   => 'long',
     'day_type'     => 'short'
     );

     $this->load->library('calendar', $prefs);

     echo $this->calendar->generate();

     // 시작 요일은 토요일이며, 월 표시는 'long'형태, 날짜 표시는 'short'형태

 

     다음은 옵션 정보입니다.
     template - 하나의 문자열 또는 템플릿 정보를 포함한 배열 형태 (기본값 - None)
     local_time - 현재 시간을 나타내는 Unix 타임스탬프 값 (기본값 - time())
     start_day - 캘린더 내, 시작 요일 정보 (기본값 - 일요일)
     month_type - 헤더 부분에 사용할 월 표시 형식 (기본값 - long (어떤 요일이든 가능.      sunday, monday, tuesday 등)) (예 : long = January, short = Jan.)
     day_type - 헤더 부분에 사용할 요일 표시 형식 (기본값 - abr (long, short, abr 중 하나)) (예 : long = January, short = Jan.)
     show_next_prev - next, prev 버튼을 표시할 지 여부 (기본값 - FALSE (TRUE 또는 FALSE 중 하나))
     next_prev_url  - next, prev 버튼 URL 링크 시 사용할 기본경로정보 (기본값 - controller/method(특정 URL 입력가능))
     show_other_days - 캘린더의 처음 또는 마지막에 다른 달 정보를 표시할지 여부 (기본값 - FALSE(TRUE 또는 FALSE 중 하나))

 

Next/Previous 월 링크 표시
     'Next', 'Previous' 링크를 허용하기 위한 예제 코드는 다음과 같습니다.
     $prefs = array(
     'show_next_prev'  => TRUE,
     'next_prev_url'   => 'http://example.com/index.php/calendar/show/'
     );

     $this->load->library('calendar', $prefs);

     echo $this->calendar->generate($this->uri->segment(3), $this->uri->segment(4));

     위 예제에서 주의할 점은 다음과 같습니다.

     1. "show_next_prev"를 TRUE로 설정하여야 합니다.
     2. next_prev_url을 제공해야 합니다. 그렇지 않을 경우, 기본값으로 현재 'controller/method'가 설정됩니다.
     3. URI segment를 사용하여, 년도 및 월 정보를 어떻게 나타낼지 설정해야 합니다. ("Calendar Class"는 "URI segment"정보와 제공된 "URL 기본 경로"를 바탕으로, 자동으로 년도 및 월을 추가합니다.)

Calendar 템플릿 생성하기
     Calendar 템플릿을 생성함으로, 디자인을 100% 제어할 수 있습니다.
     문자열을 활용하여, 쌍으로 구성된 "pseudo-variables"를 통해 캘린더 구성요소를 넣습니다.
     다음은 예제입니다.


     $prefs['template'] = '

     {table_open}<table border="0" cellpadding="0" cellspacing="0">{/table_open}

     {heading_row_start}<tr>{/heading_row_start}

     {heading_previous_cell}<th><a href="{previous_url}">&lt;&lt;</a></th>{/heading_previous_cell}
     {heading_title_cell}<th colspan="{colspan}">{heading}</th>{/heading_title_cell}
     {heading_next_cell}<th><a href="{next_url}">&gt;&gt;</a></th>{/heading_next_cell}

     {heading_row_end}</tr>{/heading_row_end}

     {week_row_start}<tr>{/week_row_start}
     {week_day_cell}<td>{week_day}</td>{/week_day_cell}
     {week_row_end}</tr>{/week_row_end}

     {cal_row_start}<tr>{/cal_row_start}
     {cal_cell_start}<td>{/cal_cell_start}
     {cal_cell_start_today}<td>{/cal_cell_start_today}
     {cal_cell_start_other}<td class="other-month">{/cal_cell_start_other}

     {cal_cell_content}<a href="{content}">{day}</a>{/cal_cell_content}
     {cal_cell_content_today}<div class="highlight"><a href="{content}">{day}</a></div>{/cal_cell_content_today}

     {cal_cell_no_content}{day}{/cal_cell_no_content}
     {cal_cell_no_content_today}<div class="highlight">{day}</div>{/cal_cell_no_content_today}

     {cal_cell_blank}&nbsp;{/cal_cell_blank}

     {cal_cell_other}{day}{/cal_cel_other}

     {cal_cell_end}</td>{/cal_cell_end}
     {cal_cell_end_today}</td>{/cal_cell_end_today}
     {cal_cell_end_other}</td>{/cal_cell_end_other}
     {cal_row_end}</tr>{/cal_row_end}

     {table_close}</table>{/table_close}
     ';

     $this->load->library('calendar', $prefs);

     echo $this->calendar->generate();

 


     key => value 쌍으로 배열을 구성할 수 있습니다.

     이를 통해 원하는 값들을 넣을 수 있습니다.

     생략된 key들은 calendar class의 기본값으로 대체됩니다.


     다음은 예제입니다.

     $prefs['template'] = array(
     'table_open'           => '<table class="calendar">',
     'cal_cell_start'       => '<td class="day">',
     'cal_cell_start_today' => '<td class="today">'
     );

     $this->load->library('calendar', $prefs);

     echo $this->calendar->generate();

변수
-
설명

Calendaring Class를 이용하면 동적으로 캘린더를 만들수 있습니다.
템플릿 형태로 캘린더를 만들 수 있으며, 디자인을 100% 제어할 수 있습니다.

더욱이, 캘린더 칸에 데이터를 넣어 표시할 수 있습니다.

X
로그기록