PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 4.0.5
Tutor LMS – eLearning and online course solution v4.0.5
4.0.5 4.0.4 4.0.3 4.0.2 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 / learning-area / quiz / questions / multiple-choice.php
tutor / templates / learning-area / quiz / questions Last commit date
fill-in-the-blank.php 3 days ago image-answering.php 3 days ago matching.php 3 days ago multiple-choice.php 3 days ago open-ended.php 3 days ago ordering.php 3 days ago true-false.php 3 days ago
multiple-choice.php
94 lines
1 <?php
2 /**
3 * Multiple Choice
4 *
5 * @package Tutor\Templates
6 * @author Themeum <support@themeum.com>
7 * @link https://themeum.com
8 * @since 4.0.0
9 */
10
11 defined( 'ABSPATH' ) || exit;
12
13 use TUTOR\Quiz;
14
15 /**
16 * Check if current answer has a thumb
17 *
18 * @param array $answer Answer data.
19 *
20 * @return bool
21 */
22 $has_image = function ( $answer ) {
23 return array_key_exists( 'image_id', $answer ) && ! empty( $answer['image_id'] );
24 };
25
26 $question = (array) ( $question ?? array() );
27 $answer_is_required = $answer_is_required ?? false;
28 $has_multiple_correct_answer = isset( $question['question_settings']['has_multiple_correct_answer'] ) && '1' === $question['question_settings']['has_multiple_correct_answer'];
29 $radio_required_message = __( 'Please select an option to answer', 'tutor' );
30 $checkbox_required_message = __( 'Please select at least one option to answer.', 'tutor' );
31 $field_name_base = $question_field_name_base ?? '';
32 $field_name = $field_name_base . ( $has_multiple_correct_answer ? '[]' : '' );
33 $register_rules = '';
34 if ( $answer_is_required ) {
35 if ( $has_multiple_correct_answer ) {
36 $register_rules = ", { validate: (value) => Array.isArray(value) && value.length > 0 || '" . esc_js( $checkbox_required_message ) . "' }";
37 } else {
38 $register_rules = ", { required: '" . esc_js( $radio_required_message ) . "' }";
39 }
40 }
41 $register_attr = "register('{$field_name}'{$register_rules})";
42
43 ?>
44
45 <div class="tutor-quiz-question-options">
46 <?php if ( tutor_utils()->count( $question['question_answers'] ) ) : ?>
47 <?php foreach ( $question['question_answers'] as $index => $answer ) : ?>
48 <label
49 class="tutor-quiz-question-option"
50 tabindex="0"
51 @keydown.space.prevent="$el.querySelector('input').click()"
52 @keydown.enter.prevent="$el.querySelector('input').click()"
53 >
54 <div class="tutor-input-field <?php echo $has_image( $answer ) ? 'tutor-hidden' : ''; ?>">
55 <div class="tutor-input-wrapper">
56 <input
57 type="<?php echo esc_attr( $has_multiple_correct_answer ? 'checkbox' : 'radio' ); ?>"
58 class="<?php echo esc_attr( $has_multiple_correct_answer ? 'tutor-checkbox' : 'tutor-radio' ); ?>"
59 id="<?php echo esc_attr( $question['question_id'] ) . esc_attr( $index ); ?>"
60 name="<?php echo esc_attr( $field_name ); ?>"
61 value="<?php echo esc_attr( $answer['answer_id'] ); ?>"
62 tabindex="-1"
63 x-bind="<?php echo esc_attr( $register_attr ); ?>"
64 >
65 <label
66 class="tutor-label"
67 for="<?php echo esc_attr( $question['question_id'] ) . esc_attr( $index ); ?>"
68 >
69 <?php echo esc_html( Quiz::sanitize_quiz_content( $answer['answer_title'] ?? '' ) ); ?>
70 </label>
71 </div>
72 </div>
73 <?php if ( $has_image( $answer ) ) : ?>
74 <img
75 src="<?php echo esc_url( wp_get_attachment_image_url( $answer['image_id'], 'full' ) ); ?>"
76 alt="<?php echo esc_attr( Quiz::sanitize_quiz_content( $answer['answer_title'] ?? '' ) ); ?>"
77 >
78 <div data-title>
79 <?php echo esc_html( Quiz::sanitize_quiz_content( $answer['answer_title'] ?? '' ) ); ?>
80 </div>
81 <?php endif; ?>
82 </label>
83 <?php endforeach; ?>
84 <?php endif; ?>
85 </div>
86
87
88 <div
89 class="tutor-quiz-questions-error"
90 x-cloak
91 x-show="errors?.['<?php echo esc_attr( $field_name ); ?>']?.message"
92 x-text="errors?.['<?php echo esc_attr( $field_name ); ?>']?.message"
93 ></div>
94