From b0dd10f8171945e0c1f3527dd1e9d18b043e01a7 Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 25 Aug 2006 17:25:49 +0000 Subject: Initial Import --- user_guide/libraries/calendar.html | 258 +++++++++++++++++++++++++++++++++++++ 1 file changed, 258 insertions(+) create mode 100644 user_guide/libraries/calendar.html (limited to 'user_guide/libraries/calendar.html') diff --git a/user_guide/libraries/calendar.html b/user_guide/libraries/calendar.html new file mode 100644 index 000000000..a3bd87b5d --- /dev/null +++ b/user_guide/libraries/calendar.html @@ -0,0 +1,258 @@ + + + + +Code Igniter User Guide + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +

Code Igniter User Guide Version 1.4.0

+
+ + + + + + + + + +
+ + +
+ + + +
+ + + + +

Calendaring Class

+ +

The Calendar class enables you to dynamically create calendars. Your calendars can be formatted through the use of a calendar +template, allowing 100% control over every aspect of its design. In addition, you can pass data to your calendar cells.

+ +

Initializing the Class

+ +

Like most other classes in Code Igniter, the Calendar class is initialized in your controller using the $this->load->library function:

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

Once loaded, the Calendar object will be available using: $this->calendar

+ + +

Displaying a Calendar

+ +

Here is a very simple example showing how you can display a calendar:

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

The above code will generate a calendar for the current month/year based on your server time. +To show a calendar for a specific month and year you will pass this information to the calendar generating function:

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

The above code will generate a calendar showing the month of June in 2006. The first parameter specifies the year, the second parameter specifies the month.

+ +

Passing Data to your Calendar Cells

+ +

To add data to your calendar cells involves creating an associative array in which the keys correspond to the days +you wish to populate and the array value contains the data. The array is passed to the third parameter of the calendar +generating function. Consider this example:

+ +$this->load->library('calendar');
+
+$data = array(
+               3  => 'http://your-site.com/news/article/2006/03/',
+               7  => 'http://your-site.com/news/article/2006/07/',
+               13 => 'http://your-site.com/news/article/2006/13/',
+               26 => 'http://your-site.com/news/article/2006/26/'
+             );
+
+echo $this->calendar->generate(2006, 6, $data);
+ +

Using the above example, day numbers 3, 7, 13, and 26 will become links pointing to the URLs you've provided.

+ +

Note: By default it is assumed that your array will contain links. +In the section that explains the calendar template below you'll see how you can customize +how data passed to your cells is handled so you can pass different types of information.

+ + +

Setting Display Preferences

+ +

There are seven preferences you can set to control various aspects of the calendar. Preferences are set using an initialization +function similar to other classes. Here is an example: + + +$this->load->library('calendar');
+
+$prefs = array (
+               'start_day'    => 'saturday',
+               'month_type'   => 'long',
+               'day_type'     => 'short'
+             );
+
+$this->calendar->initialize($prefs);
+
+echo $this->calendar->generate();
+ +

The above code would start the calendar on saturday, use the "long" month heading, and the "short" day names. More information +regarding preferences below.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
PreferenceDefault ValueOptionsDescription
templateNoneNoneA string containing your calendar template. See the template section below.
local_timetime()NoneA Unix timestamp corresponding to the current time.
start_daysundayAny week day (sunday, monday, tuesday, etc.)Sets the day of the week the calendar should start on.
month_typelonglong, shortDetermines what version of the month name to use in the header. long = January, short = Jan.
day_typeabrlong, short, abrDetermines what version of the weekday names to use in the column headers. long = Sunday, short = Sun, abr = Su.
show_next_prevFALSETRUE/FALSE (boolean)Determines whether to display links allowing you to toggle to next/previous months. See information on this feature below.
next_prev_urlNoneA URLSets the basepath used in the next/previous calendar links.
+ + + + +

Creating a Calendar Template

+ +

By creating a calendar template you have 100% control over the design of your calendar. Each component of your +calendar will be placed within a pair of pseudo-variables as shown here:

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

+$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_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_end}</td>{/cal_cell_end}
+   {cal_row_end}<tr>{/cal_row_end}
+
+   {table_close}</table>{/table_close}
+';
+
+$this->calendar->initialize($prefs);
+
+echo $this->calendar->generate();
+ + + +

Showing Next/Previous Month Links

+ +

To allow your calendar to dynamically increment/decrement via the next/previous links requires that you set up your calendar +code similar to this example:

+ + +$this->load->library('calendar');
+
+$prefs = array (
+               'show_next_prev'  => TRUE,
+               'next_prev_url'   => 'http://www.your-site.com/index.php/calendar/show/'
+             );
+
+$this->calendar->initialize($prefs);
+
+echo $this->calendar->generate($this->uri->segment(3), $this->uri->segment(4));
+ +

You'll notice a few things about the above example:

+ + + + + +
+ + + + + + + \ No newline at end of file -- cgit v1.2.3-24-g4f1b