===== Calendar Helper ===== A simple helper for creating an XHTML and CSS calendar. The “calendar” and “day_months” methods will be automatically available to your view templates. ==== Installation ==== ./script/plugin install calendar_helper ==== Using the calendar helper ==== === Printing a calendar === <%= calendar :month => 10, :year => 2007 %> === Adding special meaning to a given day in the calendar.=== The calendar helper implements something similar to blocks in Ruby by using PHP variable references. This example will add the class specialDay to the days found in the array ''$list_of_special_days'' month_days(array('month' => 6, 'year' => 2010), $d)) : if(in_array($d->day, $list_of_special_days)){ $d->cell_attributes = array('class' => 'specialDay'); } endwhile; ?> === Replacing cell content with view generated code === This example will replace the inner content of the cell with the content you output in the while loop, when the day is found in the ''$list_of_special_days'' array. This is really convenient for generating links and Ajax for a given day in the calendar. month_days(array('month' => 9, 'year' => 2006), $d)) : if(in_array($d->day, $list_of_special_days)) : ?> <%= link_to d.day, :controller => 'events', :day => d.day %> ==== Generating the default stylesheets for the calendar ==== ./script/generate calendar_styles CSS will be copied to subdirectories of public/stylesheets/calendar. ==== Sample Calendars ==== === Default Style === ''stylesheets/calendar/default/style.css'' <%= calendar :year => 2007, :month => 10 %>
October
S M T W T F S
30 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
=== Blue Style === ''stylesheets/calendar/blue/style.css'' <%= calendar :year => 2007, :month => 10 %>
October
S M T W T F S
30 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
=== Grey Style === ''stylesheets/calendar/blue/grey.css'' Generated with <%= calendar :year => 2007, :month => 10, :abbrev => 3 %>
October
Sun Mon Tue Wed Thu Fri Sat
30 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
=== Red Style === ''stylesheets/calendar/blue/style.css'' Generated using this Sintags snippet <%= calendar({:year => 2007, :month => 10, :first_day_of_week => 1, :day_names => {'D','L','M','X','J','V','S'} }) %>
October
L M X J V S D
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4