event_calendarプラグイン


The Ruby Toolbox - Know your options!で見つけたカレンダープラグインを試してみた。
elevation's event_calendar at master - GitHub

インストール

$ rails calendar
$ cd calendar
$ script/plugin install git://github.com/elevation/event_calendar.git
$ script/generate event_calendar
$ rake db:migrate

これで一応使えるようになる。

日本語化、微修正

i18n化対応らしいので日本語化してみる。

#config/local/ja.yml
ja:
  date:
    formats:
      default: "%Y/%m/%d"
      yyyymm: "%Y年%B"

    day_names: [日曜日, 月曜日, 火曜日, 水曜日, 木曜日, 金曜日, 土曜日]
    abbr_day_names: [日, 月, 火, 水, 木, 金, 土]

    # Don't forget the nil at the beginning; there's no such thing as a 0th month
    month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
    abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
#environment.rb
  config.i18n.default_locale = :ja


カレンダーの月表示がおかしいので、yyyymmというフォーマットを作成(ja.ymlにも記載)。

#helpers/calendar_helper.rb
#event_calendar_opts
      :month_name_text => I18n.localize(@shown_month, :format => :yyyymm),
#      :month_name_text => I18n.localize(@shown_month, :format => "%B %Y"),

見た目の修正

#helpers/calendar_helper.rb
#event_calendar_opts
      :day_names_height => 30
#event_calendar.css
.ec-event {
  font-size: 12px;
}

こんな感じ

eventsテーブルにデータを入れれば、こんな感じになる。