You are here

function webform_node_value_form_alter in Webform Node Value 7

Implements hook_form_alter().

File

./webform_node_value.module, line 6

Code

function webform_node_value_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'webform_configure_form') {
    webform_node_value_configuration_form($form);
  }

  // Webform is being presented to visitor.
  if (isset($form['#node']->webform) && in_array('webform_client_form_submit', $form['#submit'])) {

    // Store nid of page if webform is block on other node.
    $page_nid = webform_node_value_nid_from_page();
    $form_nid = $form['details']['nid']['#value'];
    if ($page_nid != $form_nid) {
      $settings = webform_node_value_configuration_get($form['details']['nid']['#value']);
      if (isset($settings->node_path_source) && $settings->node_path_source == 'page') {

        // Only way I could find to add this value to webform when it's rebuilt on submit.
        $form['#action'] .= '?webform_node_value_nid=' . $page_nid;
      }
    }

    // Important to add it to start of the list, before Webform's submit function sends the email.
    array_unshift($form['#submit'], 'webform_node_value_client_submit');
  }
}