diff --git a/main/exercise/overview.php b/main/exercise/overview.php index 1b9f3a2690..bfd0b4cd0f 100755 --- a/main/exercise/overview.php +++ b/main/exercise/overview.php @@ -149,6 +149,24 @@ $exercise_url_button = Display::url( ['class' => 'btn btn-success btn-large'] ); +$btnCheck = ''; +$quizCheckButtonEnabled = api_get_configuration_value('quiz_check_button_enable'); + +if ($quizCheckButtonEnabled) { + $btnCheck = Display::button( + 'quiz_check_request_button', + Display::returnFontAwesomeIcon('spinner', '', true, 'fa-spin hidden').' '.get_lang('TestYourBrowser'), + [ + 'type' => 'button', + 'role' => 'button', + 'id' => 'quiz-check-request-button', + 'class' => 'btn btn-default', + 'data-loading-text' => get_lang('Loading'), + 'autocomplete' => 'off', + ] + ).PHP_EOL.''; +} + //3. Checking visibility of the exercise (overwrites the exercise button) $visible_return = $objExercise->is_visible( $learnpath_id, @@ -421,6 +439,14 @@ $isLimitReached = ExerciseLib::isQuestionsLimitPerDayReached( ); if (!empty($exercise_url_button) && !$isLimitReached) { + if ($quizCheckButtonEnabled) { + $html .= Display::div( + $btnCheck, + ['class' => 'exercise_overview_options'] + ); + $html .= '
'; + } + $html .= Display::div( Display::div( $exercise_url_button, @@ -451,6 +477,75 @@ if ($certificateBlock) { $html .= PHP_EOL.$certificateBlock; } +if ($quizCheckButtonEnabled) { + $quizCheckRequestUrl = api_get_path(WEB_AJAX_PATH).'exercise.ajax.php?'.api_get_cidreq().'&a=browser_test'; + $params = http_build_query( + [ + 'exe_id' => 1, + 'exerciseId' => $exercise_id, + 'learnpath_id' => $learnpath_id, + 'learnpath_item_id' => $learnpath_item_id, + 'learnpath_item_view_id' => $learnpathItemViewId, + 'reminder' => '0', + 'type' => 'simple', + 'question_id' => 23, + 'choice[23]' => 45, + ] + ).'&'.api_get_cidreq(); + + $html .= ""; +} + echo $html; Display::display_footer(); diff --git a/main/inc/ajax/exercise.ajax.php b/main/inc/ajax/exercise.ajax.php index 33205aa7dd..536296a70f 100755 --- a/main/inc/ajax/exercise.ajax.php +++ b/main/inc/ajax/exercise.ajax.php @@ -790,6 +790,18 @@ switch ($action) { header('Content-Type: application/json'); echo json_encode($result); + break; + case 'browser_test': + $quizCheckButtonEnabled = api_get_configuration_value('quiz_check_button_enable'); + + if ($quizCheckButtonEnabled) { + if (isset($_POST['sleep'])) { + sleep(2); + } + + echo 'ok'; + } + break; default: echo ''; diff --git a/main/install/configuration.dist.php b/main/install/configuration.dist.php index ff3a865cf6..9902b8373d 100755 --- a/main/install/configuration.dist.php +++ b/main/install/configuration.dist.php @@ -589,6 +589,8 @@ $_configuration['send_all_emails_to'] = [ //$_configuration['quiz_generate_certificate_ending'] = false; // Allow the teacher to rate the open, oral expression and annotation question types with a decimal score. //$_configuration['quiz_open_question_decimal_score'] = false; +// Add answer-saving procedure check before starting the quiz +//$_configuration['quiz_check_button_enable'] = false; // Hide search form in session list //$_configuration['hide_search_form_in_session_list'] = false;