Drupal 7 - 如何更改 Webform 提供的 "select" 组件?

Drupal 7 - How to alter the "select" component given by Webform?

我需要向 Webform 给定的组件 "Select options"(slug 是 select)添加一个新的自定义字段“coeff”。

我使用 hook_form_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,
            );
        }
    }
}

这样就可以了。当我编辑 "Select options" 组件时,我的字段可见。但是我的值没有保存在这个字段中。

我的问题是:

如果你没有答案也不错,请给我线索。

非常感谢。

您需要将字段名称更改为 $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,
      );
    }

  }