You are here

function msnf_prepare_form_step in Multistep Nodeform 6

Function to prepare the current form step and to alter the node form.

1 call to msnf_prepare_form_step()
msnf_form_alter in ./msnf.module
Implementation of hook_form_alter().

File

./msnf.module, line 101
Main functions for module "Multistep Nodeform".

Code

function msnf_prepare_form_step(&$form, &$form_state, $form_id) {

  // Load necessary functions for form steps.
  module_load_include('inc', 'msnf', 'includes/msnf.steps');

  // Get node type and current step.
  $type = $form['#node']->type;

  // Get a sorted list of all steps for this content type.
  $steps = msnf_steps($type, TRUE);
  if (count($steps) == 0) {

    // No steps defined.
    return;
  }

  // Init first step if no step is set before.
  if (!$form_state['storage']['step']) {
    $form_state['storage']['step'] = 1;
  }

  // Add handler to restore the form state with previous entered values.
  $form['#after_build'][] = '_msnf_restore_form_state';

  // Add custom form buttons.
  _msnf_form_add_buttons($form, $form_state);

  // Rearrange and hide form elements.
  _msnf_hide_fields($form, $form_state);

  // Restore form values.
  _msnf_restore_values($form, $form_state);

  // Add a custom validation handler to rebuild the form.
  $form['#validate'][] = '_msnf_form_validate';

  // Add handler to modify weights before rendering the form.
  $form['#pre_render'][] = 'msnf_alter_extra_weights';

  // Add step title and description.
  _msnf_step_add_information($form, $form_state);

  // Add custom submit handler to clean-up the values for other handlers.
  $form['#submit'][] = '_msnf_form_submit';
}