0

我试图想出一种方法,让用户只使用给定内容所需的字段来填充表单。

例如,我有一个名为“研究项目”的内容类型,我想为每个内容添加一系列测量值。

例如。项目 1:水样

测量:收集的加仑水 - 20 gal

收集时的环境温度 - 75 华氏度

水中发现 PPM 铅 - 2 ppm

测量标准将提前输入系统,他们将从下拉列表中选择它。我想表单的 UI 看起来像这样:

从下拉列表中选择测量 > 字段以输入值 + 链接以添加无限的新测量和值行

测量值因项目而异,其中有很多,并且总是添加新的测量值,因此将每个潜在的测量值添加为自己的 CCK 字段是不切实际的。还有太多不同类型的项目,无法使每个项目的内容类型实用。所以基本上我正在寻找构建表单和动态填充结果的能力。我该怎么做呢?我可以将我的测量值作为分类术语输入,但是我如何为每个值分配和存储一个值?

4

1 回答 1

0

有两个功能

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 回答