0

ユーザーが特定のコンテンツに必要なフィールドのみをフォームに入力する方法を考え出そうとしています。

たとえば、「研究プロジェクト」というコンテンツ タイプがあり、それぞれに一連の測定値を追加したいと考えています。

例えば。プロジェクト 1: 水のサンプリング

測定値: 集めた水のガロン - 20 ガロン

収集時の周囲温度 - 75 deg F

水に含まれる PPM 鉛 - 2 ppm

測定基準は事前にシステムに入力され、ドロップダウンから選択されます。フォームの UI は次のようになると思います。

ドロップダウンから測定値を選択 > 値を入力するフィールド + リンクを使用して新しい測定値と値の行を無制限に追加

測定値はプロジェクトごとに異なります。多くの測定値があり、常に新しい測定値が追加されるため、すべての潜在的な測定値を独自の CCK フィールドとして追加することは現実的ではありません。また、各プロジェクトのコンテンツ タイプを実用的にするには、プロジェクトの種類が多すぎます。したがって、基本的には、フォームを作成してその場で結果を入力する機能を探しています。これを行うにはどうすればよいですか?測定値を分類用語として入力することはできますが、それぞれに値を割り当てて保存するにはどうすればよいでしょうか?

4

1 に答える 1

0

2つの機能があります

field_create_field() は、フィールド a 自体を作成できます。

field_create_instance() - フィールドをバンドルにバインドします。この投稿の例:

$field = array(
    'field_name' => 'field_' . $vocabulary->machine_name, 
    'type' => 'taxonomy_term_reference',
    'cardinality' => FIELD_CARDINALITY_UNLIMITED, 
    'settings' => array(
      'allowed_values' => array(
        array(
          'vocabulary' => $vocabulary->machine_name, 
          'parent' => 0,
        ),
      ),
    ),
  );
  field_create_field($field);

  $instance = array(
    'field_name' => 'field_' . $vocabulary->machine_name, 
    'entity_type' => 'node', 
    'label' => 'Tags', 
    'bundle' => 'article', 
    'description' => $vocabulary->help, 
    'widget' => array(
      'type' => 'taxonomy_autocomplete', 
      'weight' => -4,
    ), 
    'display' => array(
      'default' => array(
        'type' => 'taxonomy_term_reference_link', 
        'weight' => 10,
      ), 
      'teaser' => array(
        'type' => 'taxonomy_term_reference_link', 
        'weight' => 10,
      ),
    ),
  );
  field_create_instance($instance);
于 2012-05-18T23:30:28.250 に答える