PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 4.0.0
Tutor LMS – eLearning and online course solution v4.0.0
4.0.1 4.0.0 3.9.15 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 3 days ago body.php 3 days ago content.php 3 years ago no_course_belongs.php 3 years ago previous-attempts.php 3 days ago single_quiz_contents.php 3 years ago top.php 3 days ago
body.php
106 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 use TUTOR\Quiz;
14
15 global $post;
16
17 $currentPost = $post;//phpcs:ignore
18 $course = CourseModel::get_course_by_quiz( get_the_ID() );
19 $quiz_id = get_the_ID();
20 $quiz_details = tutor_utils()->get_quiz_option( $quiz_id );
21 $quiz_time_limit = ( isset( $quiz_details['time_limit'] ) && is_array( $quiz_details['time_limit'] ) ) ? $quiz_details['time_limit'] : array();
22 $quiz_time_value = isset( $quiz_time_limit['time_value'] ) ? $quiz_time_limit['time_value'] : 0;
23 $quiz_time_type = isset( $quiz_time_limit['time_type'] ) ? $quiz_time_limit['time_type'] : 'minutes';
24
25 $is_started_quiz = tutor_utils()->is_started_quiz();
26 $previous_attempts = tutor_utils()->quiz_attempts();
27 $attempted_count = is_array( $previous_attempts ) ? count( $previous_attempts ) : 0;
28 $questions_order = $quiz_details['questions_order'] ?? 'rand';
29 $limit_attempts_allowed = '1' === (string) ( $quiz_details['limit_attempts_allowed'] ?? '0' );
30 $configured_attempts_allowed = (int) ( $quiz_details['attempts_allowed'] ?? 0 );
31 $attempts_allowed = Quiz::get_effective_attempts_allowed( $limit_attempts_allowed, $configured_attempts_allowed );
32 $passing_grade = (int) ( $quiz_details['passing_grade'] ?? 0 );
33 $can_retry_quiz = Quiz::can_retry_quiz( $limit_attempts_allowed, $configured_attempts_allowed, $attempted_count );
34
35 $attempt_remaining = (int) $attempts_allowed - (int) $attempted_count;
36 $quiz_answers = array();
37
38 if ( 0 !== $attempted_count ) {
39 ?>
40 <?php // @todo: need to change the ID ?>
41 <div id="tutor-quiz-image-matching-choice" class="tutor-quiz-wrap tutor-quiz-wrap-<?php the_ID(); ?>">
42 <?php
43 do_action( 'tutor_quiz/body/before', $quiz_id, $quiz_details );
44
45 if ( $is_started_quiz ) {
46 $quiz_attempt_info = tutor_utils()->quiz_attempt_info( $is_started_quiz->attempt_info );
47 $quiz_attempt_info['date_time_now'] = date( 'Y-m-d H:i:s', tutor_time() );//phpcs:ignore
48 $time_limit_seconds = tutor_utils()->avalue_dot( 'time_limit.time_limit_seconds', $quiz_attempt_info );
49 $question_layout_view = $quiz_details['question_layout_view'] ?? 'single_question';
50 $enable_pagination = '1' === (string) ( $quiz_details['enable_pagination'] ?? '0' );
51 $pagination_type = $quiz_details['pagination_type'] ?? 'shape';
52 $enable_answer_reveal = '1' === (string) ( $quiz_details['enable_answer_reveal'] ?? '0' );
53 $answers_reveal_duration = (int) ( $quiz_details['answers_reveal_duration'] ?? 0 );
54 $hide_previous_button = '1' === (string) ( $quiz_details['hide_previous_button'] ?? '0' );
55 $hide_quiz_time_display = (bool) ( $quiz_details['hide_quiz_time_display'] ?? false );
56 $hide_question_number_overview = (bool) ( $quiz_details['hide_question_number_overview'] ?? false );
57
58 $remaining_time_secs = ( strtotime( $is_started_quiz->attempt_started_at ) + $time_limit_seconds ) - strtotime( $quiz_attempt_info['date_time_now'] );
59
60 $remaining_time_context = tutor_utils()->seconds_to_time_context( $remaining_time_secs );
61 $questions = tutor_utils()->get_random_questions_by_quiz();
62
63 /* Quiz Meta */
64 require __DIR__ . '/parts/meta.php';
65
66 /* Quiz Question & Answer */
67 if ( is_array( $questions ) && count( $questions ) ) {
68 require __DIR__ . '/parts/question.php';
69 } else {
70 ?>
71 <div class="start-quiz-wrap">
72 <form id="tutor-finish-quiz" method="post">
73 <?php wp_nonce_field( tutor()->nonce_action, tutor()->nonce ); ?>
74
75 <input type="hidden" value="<?php echo esc_attr( $quiz_id ); ?>" name="quiz_id"/>
76 <input type="hidden" value="tutor_finish_quiz_attempt" name="tutor_action"/>
77
78 <button type="submit" class="tutor-btn" name="finish_quiz_btn" value="finish_quiz">
79 <i class="icon-floppy"></i> <?php esc_html_e( 'Finish', 'tutor' ); ?>
80 </button>
81 </form>
82 </div>
83 <?php
84 }
85 } elseif ( $previous_attempts ) {
86 do_action( 'tutor_quiz/previous_attempts_html/before', $previous_attempts, $quiz_id );
87
88 ob_start();
89 tutor_load_template( 'single.quiz.previous-attempts', compact( 'previous_attempts', 'quiz_id' ) );
90 $previous_attempts_html = ob_get_clean();
91 echo $previous_attempts_html;//phpcs:ignore
92
93 do_action( 'tutor_quiz/previous_attempts/after', $previous_attempts, $quiz_id );
94 }
95
96 do_action( 'tutor_quiz/body/after', $quiz_id );
97 ?>
98 </div>
99 <?php
100 }
101 ?>
102
103 <script>
104 window.tutor_quiz_context = '<?php echo strrev( json_encode( $quiz_answers ) ); //phpcs:ignore ?>';
105 </script>
106