global $CTX;
if(!session_id()) @session_start();
$data = &$_SESSION['_'];
if( !is_array($data) ){ $data = array(); }
if( !is_array($data['post']) ){ $data = array(); }
if( !is_array($data['field_values']) ){ $data = array(); }
$total_pages = intval( $CTX->get('total_pages', 1) );
if( !$CTX->get('k_submitted', 1) ){
$current_page = intval( $_POST['k_current_step'] );
if( $current_page>$total_pages ) $current_page = $total_pages;
if( $current_page<1 ) $current_page = 1;
// Check if saved data available for current page
if( !isset($_POST['k_hid_']) ){
if( isset($data['post'][$current_page]) ){ $_POST = $data['post'][$current_page]; }
}
else{
if( isset($_POST['back']) && $current_page>1 ){
$current_page--;
if( isset($data['post'][$current_page]) ){ $_POST = $data['post'][$current_page]; }
}
}
$CTX->set( 'k_current_step', $current_page );
}
else{
if( $CTX->get('k_success', 1) ){
$current_page = intval( $CTX->get('k_current_step', 1) ) + 1;
// Persist data
$data = &$_SESSION['_'];
unset( $_POST['k_hid_'] );
$data['post'][$current_page-1] = $_POST;
if( isset($data['post'][$current_page]) ){
$_POST = $data['post'][$current_page];
}
$html =<<
EOS;
$regex = '/(frm_.+?)\: <\/b>(.*?)<\/LI>/is';
$cnt = preg_match_all( $regex, $html, $matches, PREG_SET_ORDER );
if( $cnt ){
foreach( $matches as $match ){
$data['field_values'][$match[1]] = $match[2];
}
}
$CTX->set( 'k_current_step', $current_page );
// Uncomment the following line if saved data is to be discarded at final submission
if( $current_page>$total_pages ){ $data=array(); }
}
}
if( isset($data['field_values']) ){
foreach( $data['field_values'] as $k=>$v ){
$CTX->set( $k, $v );
}
}
echo "";