PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 4.0.5
Tutor LMS – eLearning and online course solution v4.0.5
4.0.7 4.0.6 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 / fill-in-the-blank.php
tutor / templates / learning-area / quiz / questions Last commit date
fill-in-the-blank.php 2 weeks ago image-answering.php 2 weeks ago matching.php 2 weeks ago multiple-choice.php 2 weeks ago open-ended.php 2 weeks ago ordering.php 2 weeks ago true-false.php 2 weeks ago
fill-in-the-blank.php
101 lines
1 <?php
2 /**
3 * Fill In The Blanks
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 $base_field_name = ( $question_field_name_base ?? '' ) . '[]';
16 $field_name = '';
17 $field_names = array();
18 $register_rules = '';
19 $question = (array) ( $question ?? array() );
20 $answer_is_required = $answer_is_required ?? false;
21 $required_message = $required_message ?? '';
22 if ( $answer_is_required ) {
23 $register_rules = ", { required: '" . esc_js( $required_message ) . "' }";
24 }
25
26 ?>
27 <div class="tutor-quiz-question-options">
28 <?php if ( tutor_utils()->count( $question['question_answers'] ) ) : ?>
29 <?php foreach ( $question['question_answers'] as $answer ) : ?>
30 <div class="tutor-quiz-question-option">
31 <?php
32 $answer_title = Quiz::sanitize_quiz_content( $answer['answer_title'] ?? '' );
33 $dash_count = substr_count( $answer_title, '{dash}' );
34
35 if ( $dash_count > 0 ) {
36 $input_index = 0;
37
38 $answer_title = preg_replace_callback(
39 '/{dash}/',
40 function () use ( &$input_index, $base_field_name, $register_rules, &$field_name, &$field_names ) {
41
42 $input_name = sprintf( '%s[%d]', $base_field_name, $input_index );
43
44 $register_attr = "register('{$input_name}'{$register_rules})";
45 $input_html = sprintf(
46 '<input
47 type="text"
48 class="tutor-quiz-question-input
49 placeholder="%s"
50 name="%s"
51 x-bind="%s"
52 />',
53 esc_attr__( 'Type your answer here', 'tutor' ),
54 $input_name,
55 esc_attr( $register_attr )
56 );
57
58 $input_index++;
59 if ( '' === $field_name ) {
60 $field_name = $input_name;
61 }
62 $field_names[] = $input_name;
63
64 return $input_html;
65 },
66 $answer_title
67 );
68 }
69
70 echo wp_kses(
71 $answer_title,
72 array(
73 'input' => array(
74 'type' => true,
75 'class' => true,
76 'name' => true,
77 'placeholder' => true,
78 'x-bind' => true,
79 ),
80 )
81 );
82 ?>
83 </div>
84 <?php endforeach; ?>
85 <?php endif; ?>
86 </div>
87
88 <?php if ( $field_name ) : ?>
89 <?php $unique_field_names = array_values( array_unique( $field_names ) ); ?>
90 <div
91 class="tutor-quiz-questions-error"
92 x-data="{ fieldNames: <?php echo esc_attr( wp_json_encode( $unique_field_names ) ); ?> }"
93 x-cloak
94 x-show="fieldNames.some((name) => errors?.[name]?.message)"
95 x-text="(() => {
96 const match = fieldNames.find((name) => errors?.[name]?.message);
97 return match ? errors?.[match]?.message : '';
98 })()"
99 ></div>
100 <?php endif; ?>
101