diff --git a/sites/all/modules/webform/webform.module b/sites/all/modules/webform/webform.module index 2fffd0c..b7ec8b4 100644 --- a/sites/all/modules/webform/webform.module +++ b/sites/all/modules/webform/webform.module @@ -1876,13 +1876,40 @@ function webform_client_form($form, &$form_state, $node, $submission, $is_draft if (!isset($form_state['storage']['component_tree'])) { $form_state['webform']['component_tree'] = array(); $form_state['webform']['page_count'] = 1; - $form_state['webform']['page_num'] = 1; + + if(isset($form_state['clicked_button']['#parents'])){ + if($form_state['clicked_button']['#parents'] == 'next' || $form_state['clicked_button']['#parents'] == 'previous' || $form_state['clicked_button']['#parents'] == 'draft') { + $form_state['webform']['page_num'] = 1; + + } + } + else{ + if(isset($_GET['index'])){ + $form_state['webform']['page_num'] = $_GET['index']; + } + else{ + $form_state['webform']['page_num'] = 1; + } + } + _webform_components_tree_build($node->webform['components'], $form_state['webform']['component_tree'], 0, $form_state['webform']['page_count']); } else { $form_state['webform']['component_tree'] = $form_state['storage']['component_tree']; $form_state['webform']['page_count'] = $form_state['storage']['page_count']; - $form_state['webform']['page_num'] = $form_state['storage']['page_num']; + + if($form_state['clicked_button']['#parents'][0] == 'next' || $form_state['clicked_button']['#parents'][0] == 'previous' || $form_state['clicked_button']['#parents'][0] == 'draft') { + $form_state['webform']['page_num'] = $form_state['storage']['page_num']; + } + else { + if( isset($_GET['index'])){ + $form_state['webform']['page_num'] = $_GET['index']; + } + else{ + $form_state['webform']['page_num'] = $form_state['storage']['page_num']; + } + } + } // Shorten up our variable names. @@ -2284,7 +2311,20 @@ function webform_client_form_pages($form, &$form_state) { if (isset($form_state['webform']['component_tree'])) { $form_state['storage']['component_tree'] = $form_state['webform']['component_tree']; $form_state['storage']['page_count'] = $form_state['webform']['page_count']; - $form_state['storage']['page_num'] = $form_state['webform']['page_num']; + + if(end($form_state['clicked_button']['#parents']) == 'next' || end($form_state['clicked_button']['#parents']) == 'previous' || end($form_state['clicked_button']['#parents']) == 'draft') { + $form_state['storage']['page_num'] = $form_state['webform']['page_num']; + } + else { + if(isset($_GET['index'])){ + $form_state['webform']['page_num'] = $_GET['index']; + } + else{ + $form_state['storage']['page_num'] = $form_state['webform']['page_num']; + } + } + + } // Perform post processing by components.