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