PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 2.7.3
Tutor LMS – eLearning and online course solution v2.7.3
3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / templates / single / quiz / body.php
tutor / templates / single / quiz Last commit date
parts 2 years ago body.php 3 years ago content.php 3 years ago no_course_belongs.php 3 years ago previous-attempts.php 3 years ago single_quiz_contents.php 3 years ago top.php 2 years ago
body.php
100 lines
1 <?php
2 /**
3 * Quiz body
4 *
5 * @package Tutor\Templates
6 * @subpackage Single\Quiz
7 * @author Themeum <support@themeum.com>
8 * @link https://themeum.com
9 * @since 1.5.7
10 */
11
12 use Tutor\Models\CourseModel;
13
14 global $post;
15
16 $currentPost = $post;//phpcs:ignore
17 $course = CourseModel::get_course_by_quiz( get_the_ID() );
18 $quiz_id = get_the_ID();
19 $quiz_details = tutor_utils()->get_quiz_option( $quiz_id );
20 $quiz_time_limit = ( isset( $quiz_details['time_limit'] ) && is_array( $quiz_details['time_limit'] ) ) ? $quiz_details['time_limit'] : array();
21 $quiz_time_value = isset( $quiz_time_limit['time_value'] ) ? $quiz_time_limit['time_value'] : 0;
22 $quiz_time_type = isset( $quiz_time_limit['time_type'] ) ? $quiz_time_limit['time_type'] : 'minutes';
23
24 $is_started_quiz = tutor_utils()->is_started_quiz();
25 $previous_attempts = tutor_utils()->quiz_attempts();
26 $attempted_count = is_array( $previous_attempts ) ? count( $previous_attempts ) : 0;
27 $questions_order = tutor_utils()->get_quiz_option( $quiz_id, 'questions_order', 'rand' );
28 $attempts_allowed = tutor_utils()->get_quiz_option( $quiz_id, 'attempts_allowed', 0 );
29 $passing_grade = tutor_utils()->get_quiz_option( $quiz_id, 'passing_grade', 0 );
30 $feedback_mode = tutor_utils()->get_quiz_option( $quiz_id, 'feedback_mode', 0 );
31
32 $attempt_remaining = (int) $attempts_allowed - (int) $attempted_count;
33 $quiz_answers = array();
34
35 if ( 0 !== $attempted_count ) {
36 ?>
37 <?php // @todo: need to change the ID ?>
38 <div id="tutor-quiz-image-matching-choice" class="tutor-quiz-wrap tutor-quiz-wrap-<?php the_ID(); ?>">
39 <?php
40 do_action( 'tutor_quiz/body/before', $quiz_id );
41
42 if ( $is_started_quiz ) {
43 $quiz_attempt_info = tutor_utils()->quiz_attempt_info( $is_started_quiz->attempt_info );
44 $quiz_attempt_info['date_time_now'] = date( 'Y-m-d H:i:s', tutor_time() );//phpcs:ignore
45 $time_limit_seconds = tutor_utils()->avalue_dot( 'time_limit.time_limit_seconds', $quiz_attempt_info );
46 $question_layout_view = tutor_utils()->get_quiz_option( $quiz_id, 'question_layout_view' );
47 ! $question_layout_view ? $question_layout_view = 'single_question' : 0;
48
49 $hide_quiz_time_display = (bool) tutor_utils()->get_quiz_option( $quiz_id, 'hide_quiz_time_display' );
50 $hide_question_number_overview = (bool) tutor_utils()->get_quiz_option( $quiz_id, 'hide_question_number_overview' );
51
52 $remaining_time_secs = ( strtotime( $is_started_quiz->attempt_started_at ) + $time_limit_seconds ) - strtotime( $quiz_attempt_info['date_time_now'] );
53
54 $remaining_time_context = tutor_utils()->seconds_to_time_context( $remaining_time_secs );
55 $questions = tutor_utils()->get_random_questions_by_quiz();
56
57 /* Quiz Meta */
58 require __DIR__ . '/parts/meta.php';
59
60 /* Quiz Question & Answer */
61 if ( is_array( $questions ) && count( $questions ) ) {
62 require __DIR__ . '/parts/question.php';
63 } else {
64 ?>
65 <div class="start-quiz-wrap">
66 <form id="tutor-finish-quiz" method="post">
67 <?php wp_nonce_field( tutor()->nonce_action, tutor()->nonce ); ?>
68
69 <input type="hidden" value="<?php echo esc_attr( $quiz_id ); ?>" name="quiz_id"/>
70 <input type="hidden" value="tutor_finish_quiz_attempt" name="tutor_action"/>
71
72 <button type="submit" class="tutor-btn" name="finish_quiz_btn" value="finish_quiz">
73 <i class="icon-floppy"></i> <?php esc_html_e( 'Finish', 'tutor' ); ?>
74 </button>
75 </form>
76 </div>
77 <?php
78 }
79 } elseif ( $previous_attempts ) {
80 do_action( 'tutor_quiz/previous_attempts_html/before', $previous_attempts, $quiz_id );
81
82 ob_start();
83 tutor_load_template( 'single.quiz.previous-attempts', compact( 'previous_attempts', 'quiz_id' ) );
84 $previous_attempts_html = ob_get_clean();
85 echo $previous_attempts_html;//phpcs:ignore
86
87 do_action( 'tutor_quiz/previous_attempts/after', $previous_attempts, $quiz_id );
88 }
89
90 do_action( 'tutor_quiz/body/after', $quiz_id );
91 ?>
92 </div>
93 <?php
94 }
95 ?>
96
97 <script>
98 window.tutor_quiz_context = '<?php echo strrev( json_encode( $quiz_answers ) ); //phpcs:ignore ?>';
99 </script>
100