function webform_node_value_client_submit in Webform Node Value 7
Submit callback for the client form. Fetch node field value and insert it in Webform field.
_state
Parameters
$form:
1 string reference to 'webform_node_value_client_submit'
- webform_node_value_form_alter in ./
webform_node_value.module - Implements hook_form_alter().
File
- ./
webform_node_value.module, line 107
Code
function webform_node_value_client_submit($form, &$form_state) {
$settings = webform_node_value_configuration_get($form_state['values']['details']['nid']);
if ($settings === FALSE) {
return;
}
switch ($settings->node_path_source) {
case 'page':
if (isset($_GET['webform_node_value_nid']) && !empty($_GET['webform_node_value_nid'])) {
if (user_access('node/' . $_GET['webform_node_value_nid'])) {
$nid = $_GET['webform_node_value_nid'];
}
else {
watchdog('webform_node_value', t('Attempt to access node that user did not have permission to access.'));
}
}
break;
case 'field':
if (!isset($form_state['values']['submitted'][$settings->webform_source])) {
watchdog('webform_node_value', 'Source field not found on Webform: %field', array(
'%field' => $settings->webform_source,
));
return;
}
$webform_value = $form_state['values']['submitted'][$settings->webform_source];
$nid = webform_node_value_nid_from_field($settings, $webform_value);
break;
}
if (empty($nid)) {
watchdog('webform_node_value', "Node ID %nid couldn't be found", array(
'%nid' => $nid,
));
return;
}
// Get node field info.
$node = node_load($nid);
$node_field = field_get_items('node', $node, $settings->node_field_name);
if (empty($node_field)) {
watchdog('webform_node_value', "Field %field could not be found for Node ID %nid (%title)", array(
'%field' => $settings->node_field_name,
'%nid' => $nid,
'%title' => $node->title,
));
return;
}
$node_field_value = field_view_value('node', $node, $settings->node_field_name, $node_field[0]);
// Set value of field in Webform with value from node.
$field_name = trim(check_plain($settings->webform_destination));
$form_state['values']['submitted'][$field_name] = strip_tags(render($node_field_value));
return;
}