本日は Drupal 7 (ドルーパル 7 )の Date モジュールをご紹介できればと思います。
まずは Date モジュールとはなんぞやというかんたんな説明をした後にその基本的な使い方をご紹介していきます。
Date モジュールとは
Drupal の Date モジュールとは、日時情報を扱うための便利な機能を提供してくれるモジュールです。
Drupal の定番人気のコントリビュートモジュールのひとつに位置づけられ、常にトップ 10 内にランクされています。 名前は Date ですが、「 2014 年 12 月 05 日」といった日付( = Date )だけでなく「 12 時 18 分」などの時刻情報も扱うことができ、実際に利用する際は年月日時分秒のどこまでを扱うかを細かく設定することができます。
このモジュールを使うと大きく分けて 2 つのものが利用できるようになります。
- 日時情報を表す Date というフィールドタイプ
- 日付情報の扱いがかんたんになる API
前者の Date フィールドタイプは主にサイト管理者向けのもので、特にコーディングの必要なく日時用のフィールドが扱えるというものです。 一方後者の API はデベロッパ向けの「ヘルパー関数集」といった感じのものとなっています。
以下では、前者の Date フィールドタイプの基本的な使い方を見ていきたいと思います。 ちなみに、後者の API については Date モジュールディレクトリ内の README.txt にわかりやすい説明が載っているので興味のある方はそちらを参照してみてください。
ちなみに、本記事執筆時点での Drupal の次期リリースである Drupal 8 ではこの Date モジュールはコアに組み込み( Drupal 本体に同梱)となる予定です。
Date モジュールの使い方
インストールからはじめて Date フィールドを利用したコンテンツ( = ノード)をひとつ作るところまでやってみましょう。
- インストール / 有効化
- 初期設定
- コンテンツタイプ / フィールドの作成
- 利用
前提として Drupal 本体のセットアップは済んでいるものとします。
1. インストール / 有効化
Drupal のコントリビュートモジュールのインストールにはいくつかの方法があります。 一般的な方法を「Drupal のモジュールのインストール方法」の方でご紹介しているので、こちらを参考にしながらやりやすい方法でインストールしていただければと思います。
Drush の場合は次のコマンドで一括です。
$ drush en date
2. 初期設定
モジュールのインストールが無事完了したら、初期設定を行いましょう。
Date モジュールが問題なく動作するには地域の設定を正しく行っておく必要があります。
管理者としてログインし、地域と言語のページ( /admin/config/regional/settings
)を開いてみましょう。
週の始まり曜日とタイムゾーンの設定が問題ないか確認します。
もしおかしい感じになっていれば正しく設定し直しましょう。
日本の場合は、週の始まりは「月曜日」でタイムゾーンは「 Asia/Tokyo
」とするのが一般的でしょうか。
初期設定は以上で終了です。
3. コンテンツタイプ / フィールドの作成
つづいて Date フィールドを持ったコンテンツタイプを作っていきましょう。
Drupal では新しいフィールドは次の 2 通りの形で追加することができます。
- 新たなコンテンツタイプを作ってそこに追加する
- 既存のコンテンツタイプにフィールドだけ追加する
今回は 1 つめの「新たなコンテンツタイプを作ってそこに追加する」という方法をご紹介したいと思います。
管理者としてログインしたまま、コンテンツタイプの追加ページ( /admin/structure/types/add
)を開きます。
今回はサンプルに「イベント」というコンテンツタイプを作ってみましょう。 フィールドにはそれぞれ以下のとおりに入力します。
- Name のところに「イベント」
- Machine-readable name のところに「 event 」
- Description のところに適当な説明
「 Save and add fields 」ボタンをクリックしたら、このコンテンツタイプが作成されフィールドの設定ページが開きます。
ここで「 Add new field 」のところに追加したいタイプのフィールドを入力して「 Save 」をクリックすると新しいフィールドを追加することができます。 「 Select a field type 」のセレクトボックスで「 Date 」を選んで「 Save 」しましょう。
つづいてフィールドの詳細設定のページが開くので、取り扱いたい単位などを設定します。
「 Collect an end time 」のチェックを入れると、開始時間と終了時間という形でふたつの日時を指定できるようになります。 今回はここにチェックを入れておきましょう。 「 Save field settings 」をクリックしたらフィールドの詳細設定も完了です。
コンテンツタイプの設定ページに戻って「 Save 」をクリックしたら Date フィールドを持ったコンテンツタイプの作成は完了です。
4. 利用
実際に Date フィールドを利用してみましょう。
イベントの追加ページ(上記の設定がうまく行っていればパスは /node/add/event
)を開いたら、日時を指定した形でイベントが作成できることが確認できるかと思います。
適当な内容を入力して「 Save 」としたら作成は完了です。
Date モジュールに同梱されているサブモジュール Date Popup を有効化すれば jQuery のデートピッカーウィジェットなんかも使用することができます。
最後にひとつサンプルを。 他のモジュールが提供する場所情報を扱うためのフィールドも追加し、細かな調整を行えばイベントを表す次のようコンテンツができあがります。
あとはこれに、参加登録や参加者へのリマインダといった機能も追加していけば、イベント予約 / 管理用のアプリとして実用化できるものになるかと思います。 予約管理システムやスケジューラなどもこの応用で比較的少ないコストで作ることができるので、興味のある方はぜひチャレンジしてみてください(もちろん、弊社への Drupal システム開発のご依頼もお待ちしております)。
以上です。 いかがだったでしょうか?
おわりに
今回は日付や時刻の情報を扱いやすくしてくれる Date モジュールについて基本的な使い方をご紹介しました。
Date モジュールにはこの他にも Date Repeat Field 、 Date Views など強力なサブモジュールが小分けにした形で同梱されているので、興味のある方はぜひダウンロードして中身を覗いてみていただければと思います。
募集しています
スタジオ・ウミは「Drupal」に特化したサービスを提供する Drupal のエキスパートチーム。
フルリモート&フレックス制だから、働く場所を選ばず時間の使い方も自由です。
そんなワークライフバランスの整った環境で、当ブログに書かれているような
様々な技術を共に学びながら、Drupalサイト開発に携わってみたい方を募集しています。
まずはお話だけでも大歓迎!ぜひお気軽にご連絡ください。