Umi Blog

ウミブログ

Dateで作成したフィールドを表示した時のバグの解消法

Studio Umi

こんにちは。

Dateモジュールで作成した入力フィールドのデータをノードページやViewsで表示させようとしたら表示がおかしくなるバグに出くわしたのでここに記します。 結果から言うと書式のカスタマイズでエスケープ処理?をすればなおりました。

前提条件

☆Drupalの日付はデフォルトの並びだと日本人には読みにくいので変更しておきます。
ついでに書式のカスタマイズも行っていますがそれについてはこちらの記事をどうぞ。

☆DateモジュールとDate APIモジュールを有効にします。
あと日付の入力がとっても楽になるのでDate Popupモジュールも有効にしておきます。

Drupal 7 のモジュール一覧に並ぶ Date 関連モジュール

☆Date(日付)タイプのフィールドを作ったコンテンツタイプを作っておきます。
「Date (ISO format)」とか「Date (Unix timestamp)」じゃなくて、「Date」です。
ウィジェットはDate Popupモジュールが有効になっていたら「Pop-up calendar」の項目が出てくるのでそれに設定して、「▼MORE SETTINGS AND VALUES」の中の「Date entry options」を見やすいものに変更しておきます。

Date フィールドの日付入力オプションの設定欄

その他の設定はデフォルトのまま。ここではあとで見やすいようにDateタイプのフィールドを一番上に移動させています。
Date フィールドを追加したコンテンツタイプのフィールド一覧

ここまでが前提です。ここまできたら日付が簡単に入力できるフィールドが生成されています。

 日付登録して掲載してみる

日付用のフィールドも作ったことだし、早速登録!

Date フィールドが表示されたノード作成フォーム

ちなみにフィールドのウィジェットを「Pop-up calendar」にしておけば日付を入力しようとするとこのようにちっちゃいカレンダーが出てきて日付を選ぶとその日付が入力されます。便利!
Date フィールドのカレンダーポップアップ

書き込めたら保存します。

やったー!ページの作成ができたー!・・・・・ん?

日付フィールドの値がエスケープされて表示される様子

日付の表示がおかしいですね・・・

解消法

検索したら同じ現象に出会った方がいたようでg.d.oで議論されていました。

cckのdateフィールドで入力した日付データをviewsで出力した際のフォーマットについて。

このページの最後の投稿(2013年9月4日)で簡単に解決することができました。
データタイプの書式の設定で2バイト文字の前にバックスラッシュ「\」を入力することで解決できるようです。多分エスケープ処理。
「Y年n月j日 (l) H時i分」と書いているところを「Y\年n\月j\日 (l) H\時i\分」として、書式を変更するとデータタイプの割当が解除されちゃうみたいなのでもう一回設定しなおしたら解決しました!

日付フォーマットの編集画面

↓ ↓ ↓
日付フォーマットの編集画面で書式を入力した状態

Windowsなら\じゃなくて¥マークが表示されるかな?
↓ ↓ ↓
日付書式を選ぶプルダウンを開いた状態
修正後に日付フィールドが正しく表示される様子
\

小さなご意見も、私たちにとっては大きなヒントです!

ぜひ率直なご感想をお寄せください

/

この記事はお役に立ちましたか?

スタジオ・ウミのメンバー

Masters of Drupal Engineering.

人に、技術に、品質に、まっすぐ。

Download
会社案内をダウンロード
Contact
お気軽にお問い合わせください
Recruit
スタジオ・ウミの採用情報