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 / open-ended.php
tutor / templates / learning-area / quiz / questions Last commit date
fill-in-the-blank.php 1 week ago image-answering.php 1 week ago matching.php 1 week ago multiple-choice.php 1 week ago open-ended.php 1 week ago ordering.php 1 week ago true-false.php 1 week ago
open-ended.php
64 lines
1 <?php
2 /**
3 * Open-ended and Short Answer
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\Components\InputField;
14 use Tutor\Components\Constants\InputType;
15
16 $question_type = $question['question_settings']['question_type'] ?? 'open_ended';
17 $quiz_settings = $quiz_settings ?? array();
18 $limit_key = 'short_answer' === $question_type ? 'short_answer_characters_limit' : 'open_ended_answer_characters_limit';
19
20 $characters_limit = (int) ( $quiz_settings[ $limit_key ] ?? 0 );
21 $field_name = $question_field_name_base ?? '';
22 $register_rule_parts = array();
23 $answer_is_required = $answer_is_required ?? false;
24 $required_message = $required_message ?? '';
25 if ( $answer_is_required ) {
26 $register_rule_parts[] = "required: '" . esc_js( $required_message ) . "'";
27 }
28 if ( $characters_limit > 0 ) {
29 $max_length_message = __( 'The answer exceeds the allowed character limit', 'tutor' );
30 $register_rule_parts[] = "maxLength: { value: {$characters_limit}, message: '" . esc_js( $max_length_message ) . "' }";
31 }
32 $register_rules = '';
33 if ( ! empty( $register_rule_parts ) ) {
34 $register_rules = ', { ' . implode( ', ', $register_rule_parts ) . ' }';
35 }
36 $register_attr = "register('{$field_name}'{$register_rules})";
37
38 ?>
39
40 <div
41 class="tutor-quiz-question-options"
42 <?php if ( $characters_limit > 0 ) : ?>
43 x-data="{ max: <?php echo esc_attr( $characters_limit ); ?>, remaining: <?php echo esc_attr( $characters_limit ); ?> }"
44 x-effect="remaining = Math.max(0, max - (values?.['<?php echo esc_attr( $field_name ); ?>'] || '').length)"
45 <?php endif; ?>
46 >
47 <?php
48 $input_field = InputField::make()
49 ->type( InputType::TEXTAREA )
50 ->name( $field_name )
51 ->clearable()
52 ->attr( 'x-bind', $register_attr )
53 ->placeholder( __( 'Type your answer here', 'tutor' ) );
54
55 $input_field->render();
56 ?>
57 <?php if ( $characters_limit > 0 ) : ?>
58 <p class="tutor-small tutor-text-subdued">
59 <?php esc_html_e( 'Character Remaining: ', 'tutor' ); ?>
60 <span x-text="remaining"></span>
61 </p>
62 <?php endif; ?>
63 </div>
64