web-dev-qa-db-ja.com

コードからカスタム日付フィールドの「date_popup」ウィジェットを選択するにはどうすればよいですか?

次のコードを使用して宣言されたカスタムフォーム要素にカスタムフィールドがあります。

$element['data_da'] = array(
  '#type' => 'date',
  '#title' => t('Date from'),
  '#default_value' => isset($items[$delta]['data_da']) ? $items[$delta]['data_da'] : NULL,
  '#description' => t('Description for field Date from'),
);

データを挿入すると、1つの年、1つのフォームの月、1つの日の3つの選択が表示されます。 「date_popup」ウィジェットを使いたいのですが。
どうやってやるの?何を設定すればよいですか? 「#widget」ディレクティブはありますか?

3

Date モジュールのバージョン2.xをインストールすると、日付を選択するポップアップを表示する「date_popup」フィールドを含む、より多くのフォームフィールドを使用できるようになります。
モジュールには、ポップアップを表示するかどうかをユーザーが決定できるオプションがあります。このオプションをオーバーライドする場合は、variable_set('date_popup_timepicker', 'default')を使用する必要があります。これはモジュールで使用されるデフォルトのオプションですが、ユーザーが「なし」を選択した場合、ポップアップは表示されません。

「date_popup」フィールドを使用したカスタム形式の設定について、フォームフィールドは「#date_format」属性を使用します。開発スナップショット7.x-2.xでは、ほとんどの形式を受け入れるとされています。その属性のデフォルト値は、variable_get('date_format_short', 'm/d/Y - H:i')によって返される値です。
date_popup_element_info() のコメントで報告される、フォームフィールドで使用される属性の完全なリストは次のとおりです。

  • 「#date_timezone」
    この日付の作成に使用されるローカルタイムゾーン。

  • 「#date_format」
    このポップアップの以前のバージョンとは異なり、ほとんどのフォーマットが機能します。

  • 「#date_increment」
    分と秒をこの量だけ増やします。デフォルトは1です。

  • 「#date_year_range」
    年セレクターで前後に移動する年数。デフォルトは-3:+3(3つ前と3つ前)です。

Drupalコアモジュールには「日付」フォームフィールドのみがあり、「#widget」属性は使用されません。ただし、サードパーティのモジュールで新しい属性を定義できます。私の知る限り、フォームフィールドの属性として「#widget」を定義しているモジュールはありません。

5
kiamlaluno