2008年12月4日木曜日

Drupal のカレンダーの表示がずれる – Date, Calendar, Views, CCK

カレンダーの表示方法

Drupal でカレンダーを表示したい。

Event vs Date+Calendar | groups.drupal.org によると、

Date + Calendar can be configured as a full replacement for event module today, plus actually has more features

それに対して、以下のような意見もあった。

I don't think CCK should or even could replace anything. In this case CCK + Date and Event module serve two different audiences. If you're not a developer then you'll lean on CCK + Date to get the job done, if you are a developer, then working directly with the Event API is much easier, cleaner and is the way to go.

(同上より)

以前に Views モジュールを使ったことがある。(cf. Drupal の Views モジュールで最新のストーリーのタイトル一覧を表示) そこで、今回は Date + Calendar を使ってカレンダーを表示させることにした。

 

使用するモジュール

下記のモジュールをインストールして有効にした。

 

ロケールの設定

管理セクション > サイトの環境設定 > 日付と時刻 > ロケールの設定」 で 「デフォルトのタイムゾーン」を Asia/Tokyo に設定。

 

Views

今回は、カレンダーにコンテンツの「タイトル」と「投稿日時」が表示されるようにしてみる。

 

管理セクション › サイトの構築 > Views」  において「デフォルト ノード view: calendar  (Calendar)」の `Clone’ をクリックして設定を複製。これを `編集’ することにした。

設定画面が表示されたら、Defaults > Arguments の「日付: 日付 ノード」をクリック。

081204-004

下に表示される「Defaults: Configure Argument 日付: 日付」の設定の `Date field(s):’ において、「ノード: Post date」だけチェックされている状態に変更し、更新ボタンを押して保存。

081204-002

 

次に「フィールド」の「ノード: Updated date」をクリックし、下に表示される「Defaults: Configure field ノード: Updated date」の設定において、「取り外す」ボタンをクリックして保存。加えて「ノード: Post date」フィールドに追加。

 

そして、Calendar page > Page settings の「パス」を `calendar2’ に変更して保存。

081204-005

 

カレンダーの表示

これで予めコンテンツが作成されいれば、 http://XXXXXX/calendar2 にアクセスするとカレンダーに表示にされる。

081204-006

 

しかし、週・日表示させると、投稿日時を 14:00 に設定してあるにもかかわらず 13:00 の時間帯に表示されてしまった。 (@_@;)

081204-007

 

パッチ

Issues for Calendar を見たら times in views 1 hour off にパッチがあった。calendar モジュールの  theme/theme.inc を修正したらちゃんと表示してくれるようになった。ありがたや~ ^^

081204-008

 

参考