2

CCK フィールドを実装するモジュールを作成しました。フィールドをコンテンツ タイプに追加するときに、値の数を無制限に設定し、フィールドを必須に設定しました。

必要な値の数を設定する方法はありますか? ユーザーが 5 つ以上の値を入力する必要があります。

前もって感謝します。

4

1 に答える 1

1

答えは hook_form_alter() にあります -- http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_form_alter/6

私が見るように、あなたは2つのことをする必要があります:

  1. フォーム アイテムを変更して、フォームの読み込み時に 5 つのエントリを含めます ([さらに追加] ボタンを使用した通常の 2 つのエントリの代わりに)。

  2. $form['#validate'] = 'my_form_validate' エントリをフォームに追加して、少なくとも 5 つが設定されていることを確認します。

1 は少し難しいかもしれません。フォームが最初に複数のアイテムをどのようにロードするのかわかりません。ただし、$form で vardump を実行すると、明らかな場合があります。

2 の場合は簡単なはずです --

function my_form_validate($form, &$form_state) {
  $i=0;
  foreach ($form_state['field_my_field_name']...) {
    if (isset(...)) { $i++; }
  }
  if ($i < 5) {
    form_set_error($form_state['field_my_field_name'], 'You must enter 5 foobars');
  }
}
于 2011-06-23T01:59:35.930 に答える