Drupal 7 Drupal 7-如何更改;选择";Webform提供的组件?

Drupal 7 Drupal 7-如何更改;选择";Webform提供的组件?,drupal-7,components,field,alter,drupal-webform,Drupal 7,Components,Field,Alter,Drupal Webform,我需要添加一个新的自定义字段“coeff”到Webform提供的组件“选择选项”(slug是Select) 我使用hook\u form\u alter创建自定义字段: function my_module_form_alter(&$form, &$form_state, $form_id){ if ($form_id == 'webform_component_edit_form') { if ($form['type']['#value'] == 's

我需要添加一个新的自定义字段“
coeff
”到Webform提供的组件“选择选项”(slug是
Select

我使用
hook\u form\u alter
创建自定义字段:

function my_module_form_alter(&$form, &$form_state, $form_id){
    if ($form_id == 'webform_component_edit_form') {
        if ($form['type']['#value'] == 'select') {
            $form['coeff'] = array(
                '#type' => 'textfield',
                '#title' => t('Coefficient'),
                '#default_value' => '1',
                '#description' => t('Set coefficient value for this question.'),
                '#size' => 2,
                '#maxlength' => 2,
            );
        }
    }
}
有了这个,没关系。编辑“选择选项”组件时,我的字段可见。但我的值不保存在此字段中

我的问题是:

  • 我必须在此表单中添加提交回调才能保存此自定义字段吗?如果是,它是如何工作的

  • 如果我想做一个循环来产生很多问题,我该怎么做?我知道我必须构建一个节点对象,最后调用node_save()。。。但是我必须把这个自定义字段的值放在哪里“
    coeff

如果你没有答案,那还不错,给我一些线索就行了


非常感谢。

您需要将字段名更改为$form['extra']['coeff'],并更改默认值以显示保存的字段:

 if ($form_id == 'webform_component_edit_form') {

    if ($form['type']['#value'] == 'select') {
      $form['extra']['coeff'] = array(
        '#type' => 'textfield',
        '#title' => t('Coefficient'),
        '#default_value' => $form['#node']->webform['components'][1]['extra']['coeff'],
        '#description' => t('Set coefficient value for this question.'),
        '#size' => 2,
        '#maxlength' => 2,
      );
    }

  }

谢谢你的启发!