2012-04-26 52 views
3

我有一个网络表单出现在内容类型'工作'的块上。我试图从节点获取两个字段到Webform提交。我有这样的自定义模块:Drupal 7:网络表单中的节点字段

function webform_nodevalues_form_alter(&$form, $form_state, $form_id) { 
    // 1. Webform ID 
    if ($form_id == 'webform_client_form_237') { 
    if ($node = menu_get_object()) { 
     // 2. Webform field for the node title 
     $form['submitted']['title']['#value'] = $node->title; 
     // 3. Webform field for a CCK field 
     $form['submitted']['email']['#value'] = $node->field_email[0]['value']; 
    } } 
} 

不过,我得到这个错误:

注意:未定义抵消:在webform_nodevalues_form_alter 0()(行35/drup /网站/所有/模块/ webform_nodevalues /webform_nodevalues.module)。

有关如何获取webform提交中的电子邮件字段的任何想法?

+0

哪一行是第35行?! – 2012-04-26 08:27:51

回答

1

我想是因为以下行的这个错误:

// ERROR HERE... 
$form['submitted']['email']['#value'] = $node->field_email[0]['value']; 

这应该是这样的:

$form['submitted']['email']['#value'] = $node->field_email['und'][0]['value']; 

OR:

$form['submitted']['email']['#value'] = $node->field_email[LANGUAGE_NONE][0]['value']; 

希望这有助于...穆罕默德。

+0

这就是我的想法,但我仍然得到这个错误: 注意:未定义的索引:webform_nodevalues_form_alter()中的值(/drup/sites/all/modules/webform_nodevalues/webform_nodevalues.module的第35行)。 – MrPeanut 2012-04-26 19:09:15

1

多一点修补,我想出来了(感谢穆罕默德雷达指出我在正确的方向)。

$form['submitted']['email']['#value'] = $node->field_email['und'][0]['email']; 

我是Devel新手,但看着负载,然后只是把每个级别放在括号中似乎工作。