function msnf_entity_form_validate in Multistep Nodeform 7
Custom validation callback.
Parameters
<array> $form: Form to validate.
<array> $form_state: Current form state.
1 string reference to 'msnf_entity_form_validate'
- msnf_form_node_form_alter in ./
msnf.module - Implements hook_form_FORM_ID_alter().
File
- ./
msnf.module, line 1024 - Main functions for module "Multistep Nodeform".
Code
function msnf_entity_form_validate($form, &$form_state) {
if (!isset($form['#steps']) || count($form['#steps']) == 0) {
// Nothing to do here.
return;
}
if (!isset($form_state['triggering_element']['#name']) || !in_array($form_state['triggering_element']['#name'], array(
'previous',
'skip',
'next',
))) {
return;
}
$form_state['rebuild'] = TRUE;
$form_state['cache'] = TRUE;
if (isset($form_state['node'])) {
// Update node object based on submitted form values.
entity_form_submit_build_entity('node', $form_state['node'], $form, $form_state);
}
if (($current_step = _msnf_form_step_get_current($form, $form_state)) === FALSE) {
// Step not found. Do nothing.
return;
}
$step_names = array_keys($form['#steps']);
$step_index = array_search($current_step->step_name, $step_names);
if ($form_state['triggering_element']['#name'] == 'next') {
$step_index++;
}
elseif ($form_state['triggering_element']['#name'] == 'skip') {
$step_index += 2;
}
elseif ($form_state['triggering_element']['#name'] == 'previous') {
$step_index--;
}
if (isset($step_names[$step_index])) {
// Set name of next step to display.
$form_state['storage']['step'] = $step_names[$step_index];
}
else {
// Display first step.
$form_state['storage']['step'] = array_shift($step_names);
}
}