私はDrupalモジュールを書いていますが、些細な問題に遭遇しました。
「生年月日」プロパティを含む「Person」タイプのノードについて考えてみます。日付をUNIX形式(Drupal Coreと同じ)で格納するためにintフィールドを使用するようにデータベーステーブルを構成しましたが、もちろん、ユーザーがよりわかりやすい形式、つまりdd/で値を指定するためのメソッドを提供する必要があります。 mm/yyyy。
私のモジュールPerson_form関数では、次のようにdate要素を構成しました。
$form['dob'] = array(
'#type' => 'date',
'#title' => 'Date of Birth',
'#required' => TRUE,
'#default_value' => array(
'day' => format_date($node->dob, 'custom', 'j'),
'month' => format_date($node->dob, 'custom', 'n'),
'year' => format_date($node->dob, 'custom', 'Y'),
),
);
これは、データベース内のUNIXの日付を3つのドロップダウンリストに表示します。1つは日、月、年です。これは私が望んでいたことであり、これまでのところ非常に優れています。
ここで、ユーザーが[保存]ボタンをクリックしたときにこの要素の値にアクセスできるようにする必要がありますが、2つの問題があります。
- _form関数のシグネチャはPerson_form($ node)なので、$ form ['dob'] ['day' /'month'/'year']の値にアクセスするにはどうすればよいですか。$ formは、引数として関数に渡されません。
- 値を取得したら、UNIXの日付値を生成する最良の方法は何ですか?
私はしばらくの間グーグルで検索しましたが、「drupal」と「date」という用語は、Dateモジュールの拡張子を指しているようです-確かに、このような単純な日付を処理するための拡張子は必要ありません:-o
前もって感謝します