允许用户向Drupal中的节点动态添加字段和值

允许用户向Drupal中的节点动态添加字段和值,drupal,cck,drupal-taxonomy,Drupal,Cck,Drupal Taxonomy,我试图找到一种方法,让用户只使用给定内容所需的字段填充表单 例如,我有一个名为“研究项目”的内容类型,我想在每个内容类型中添加一系列度量 例如。 项目1: 水取样 测量: 收集的加仑水-20加仑 收集时的环境温度-75华氏度 水中发现的铅含量为PPM-2 PPM 测量标准将提前输入系统,他们将从下拉列表中选择。我想表单的UI应该是这样的: 从下拉列表>字段中选择测量以输入值 +链接以添加无限的新度量值行和值行 测量值因项目而异,有很多测量值,而且总是添加新的测量值,这使得添加每个潜在测量值作为自

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

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

例如。 项目1: 水取样

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

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

水中发现的铅含量为PPM-2 PPM

测量标准将提前输入系统,他们将从下拉列表中选择。我想表单的UI应该是这样的:

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


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

有两个函数

字段\创建\字段()可以创建字段本身

字段\创建\实例()-将字段绑定到捆绑包。 例如:

$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);