public static function get_modules_front($unit_id = 0) { global $coursepress, $coursepress_modules, $wp, $paged, $_POST; if (isset($_GET['resubmit_nonce']) || isset($_GET['resubmit_nonce']) && wp_verify_nonce($_GET['resubmit_nonce'], 'resubmit_answer')) { if (isset($_GET['resubmit_answer'])) { $user_id = get_current_user_id(); $course_id = (int) $_GET['c']; $unit_id = (int) $_GET['u']; $module_id = (int) $_GET['m']; $response = get_post((int) $_GET['resubmit_answer']); $response_id = false; if (isset($response) && isset($response->post_author) && $response->post_author == get_current_user_ID()) { $response_id = $response->ID; $resubmitted_response = array('ID' => $response_id, 'post_status' => 'private'); wp_update_post($resubmitted_response); } Student_Completion::clear_mandatory_answer($user_id, $course_id, $unit_id, $module_id); wp_redirect(add_query_arg(array('resubmitting' => $module_id, 'previous_response' => $response_id), $_GET['resubmit_redirect_to']) . '#module-' . $module_id); exit; } else { if (!empty($_GET['resubmit_cancel'])) { $response_id = $_GET['resubmit_cancel']; $response = get_post((int) $response_id); $user_id = get_current_user_id(); $course_id = (int) $_GET['c']; $unit_id = (int) $_GET['u']; $module_id = (int) $_GET['m']; if (isset($response) && isset($response->post_author) && $response->post_author == get_current_user_ID()) { $resubmitted_response = array('ID' => $response_id, 'post_status' => 'publish'); wp_update_post($resubmitted_response); Student_Completion::record_mandatory_answer($user_id, $course_id, $unit_id, $module_id); wp_redirect($_GET['resubmit_redirect_to'] . '#module-' . $module_id); } } } } $front_save = false; $responses = 0; $input_modules = 0; $paged = isset($wp->query_vars['paged']) ? absint($wp->query_vars['paged']) : 1; $unit_pagination = cp_unit_uses_new_pagination((int) $unit_id); $modules = self::get_modules($unit_id, $paged); $course_id = do_shortcode('[get_parent_course_id]'); /** * @todo: replace with Student_Completion function soon */ cp_set_visited_unit_page($unit_id, $paged, get_current_user_ID(), $course_id); //$unit_module_page_number = isset( $_GET['to_elements_page'] ) ? $_GET['to_elements_page'] : 1; if (isset($_POST['submit_modules_data_done']) || isset($_POST['submit_modules_data_no_save_done'])) { // if( defined('DOING_AJAX') && DOING_AJAX ) { cp_write_log('doing ajax'); } if (isset($_POST['submit_modules_data_done'])) { //wp_redirect( cp_full_url( $_SERVER ). '?saved=ok' ); if ($_POST['event_origin'] == 'button') { wp_redirect(get_permalink($course_id) . trailingslashit($coursepress->get_units_slug()) . '?saved=ok'); exit; } else { wp_redirect(cp_full_url($_SERVER)) . '?saved=ok'; exit; } } else { if ($_POST['event_origin'] == 'button') { wp_redirect(trailingslashit(get_permalink($course_id)) . trailingslashit($coursepress->get_units_slug())); exit; } else { wp_redirect(cp_full_url($_SERVER)); exit; } /* if ( $paged != 1 ) { //wp_redirect( cp_full_url( $_SERVER ) ); wp_redirect(get_permalink($course_id) . trailingslashit($coursepress->get_units_slug())); } else { wp_redirect(cp_full_url($_SERVER)); } */ } exit; } if (isset($_POST['submit_modules_data_save']) || isset($_POST['submit_modules_data_no_save_save'])) { // if( defined('DOING_AJAX') && DOING_AJAX ) { cp_write_log('doing ajax'); } if (isset($_POST['submit_modules_data_save'])) { //wp_redirect( $_SERVER['REQUEST_URI'] . '?saved=ok' ); wp_redirect(cp_full_url($_SERVER) . '?saved=ok'); exit; //exit; } else { //wp_redirect( get_permalink( $unit_id ) . trailingslashit( 'page' ) . trailingslashit( $unit_module_page_number ) ); } } if (isset($_POST['save_student_progress_indication'])) { wp_redirect(get_permalink($course_id) . trailingslashit($coursepress->get_units_slug()) . '?saved=progress_ok'); exit; } ?> <form name="modules_form" id="modules_form" enctype="multipart/form-data" method="post" action="<?php echo trailingslashit(get_permalink($unit_id)); //strtok( $_SERVER["REQUEST_URI"], '?' ); ?> " onSubmit="return check_for_mandatory_answers();"> <!--#submit_bottom--> <input type="hidden" id="go_to_page" value=""/> <?php if ($unit_pagination) { foreach ($modules as $mod) { $class_name = $mod->module_type; if (class_exists($class_name)) { call_user_func($class_name . '::front_main', $mod); if (constant($class_name . '::FRONT_SAVE')) { $front_save = true; if (method_exists($class_name, 'get_response')) { $response = call_user_func($class_name . '::get_response', get_current_user_id(), $mod->ID); if (count($response) > 0) { $responses++; } $input_modules++; } } } } } else { $pages_num = 1; foreach ($modules as $mod) { $class_name = $mod->module_type; if (class_exists($class_name)) { if ($class_name == 'page_break_module') { $pages_num++; } else { if ($pages_num == $paged) { call_user_func($class_name . '::front_main', $mod); if (constant($class_name . '::FRONT_SAVE')) { $front_save = true; if (method_exists($class_name, 'get_response')) { $response = call_user_func($class_name . '::get_response', get_current_user_id(), $mod->ID); if (count($response) > 0) { $responses++; } $input_modules++; } } } } } } } wp_nonce_field('modules_nonce'); if ($unit_pagination) { $pages_num = coursepress_unit_pages($unit_id, $unit_pagination); } $is_last_page = coursepress_unit_module_pagination($unit_id, $pages_num, true); //check if current unit page is last page if (!$coursepress->is_preview($unit_id)) { if ($front_save) { if ($input_modules !== $responses) { ?> <div class="mandatory_message"><?php _e('All questions marked with "* Mandatory" require your input.', 'cp'); ?> </div> <div class="clearf"></div> <input type="hidden" name="unit_id" value="<?php echo $unit_id; ?> "/> <a id="submit_bottom"></a> <?php if (isset($_POST['submit_modules_data'])) { $form_message = __('The module data has been submitted successfully.', 'coursepress'); } if (isset($form_message)) { ?> <p class="form-info-regular"><?php echo $form_message; ?> </p> <?php } ?> <input type="submit" class="apply-button-enrolled submit-elements-data-button" name="submit_modules_data_<?php echo $is_last_page ? 'done' : 'save'; ?> " value="<?php echo $is_last_page ? __('Done', 'cp') : __('Next', 'cp'); ?> "> <?php } else { ?> <input type="submit" class="apply-button-enrolled submit-elements-data-button" name="submit_modules_data_no_save_<?php echo $is_last_page ? 'done' : 'save'; ?> " value="<?php echo $is_last_page ? __('Done', 'cp') : __('Next', 'cp'); ?> "> <?php } } else { ?> <input type="submit" class="apply-button-enrolled submit-elements-data-button" name="submit_modules_data_no_save_<?php echo $is_last_page ? 'done' : 'save'; ?> " value="<?php echo $is_last_page ? __('Done', 'cp') : __('Next', 'cp'); ?> "> <?php } } coursepress_unit_module_pagination($unit_id, $pages_num); ?> <div class="fullbox"></div> <?php if (!isset($_GET['try'])) { ?> <a href="" id="save_student_progress" class="save_progress"><?php _e('Save Progress & Exit', 'cp'); ?> </a> <?php } ?> </form> <?php }