function webform_steps_navigation_callback in Webform steps 7
Same name and namespace in other branches
- 7.3 webform_steps.module \webform_steps_navigation_callback()
- 7.2 webform_steps.module \webform_steps_navigation_callback()
Submit callback for the step button
We simulate next and previous button clicks for
See also
1 string reference to 'webform_steps_navigation_callback'
File
- ./
webform_steps.module, line 170
Code
function webform_steps_navigation_callback(&$form, &$form_state) {
$submitted_page = $form['details']['page_num']['#value'];
$button =& $form_state['clicked_button'];
if (isset($button['#page'])) {
$new_page = (int) $button['#page'];
if ($submitted_page <= $new_page && $new_page > 1) {
// simulate click on next.
$button['#parents'][] = 'next';
// Failsafe to avoid jumping over steps.
$form_state['webform']['page_num'] = min($new_page - 1, $submitted_page);
$form_state['steps_finished'] = $submitted_page;
}
else {
// simulate click on previous.
$button['#parents'][] = 'previous';
$form_state['webform']['page_num'] = $new_page + 1;
// prohibit jumps of more than one step forward at once, after the user
// jumped back, otherwise one could skip the validations of a step.
$form_state['steps_finished'] = $new_page;
}
$form_state['values']['op'] = 'next';
}
elseif (end($button['#parents']) == 'next') {
$form_state['steps_finished'] = $submitted_page;
}
else {
$form_state['steps_finished'] = $submitted_page - 1;
}
return $form;
}