PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 4.0.2
Tutor LMS – eLearning and online course solution v4.0.2
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 month ago image-answering.php 1 month ago matching.php 1 month ago multiple-choice.php 1 month ago open-ended.php 1 month ago ordering.php 1 month ago true-false.php 1 month ago
open-ended.php
62 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 if ( $answer_is_required ) {
24 $register_rule_parts[] = "required: '" . esc_js( $required_message ) . "'";
25 }
26 if ( $characters_limit > 0 ) {
27 $max_length_message = __( 'The answer exceeds the allowed character limit', 'tutor' );
28 $register_rule_parts[] = "maxLength: { value: {$characters_limit}, message: '" . esc_js( $max_length_message ) . "' }";
29 }
30 $register_rules = '';
31 if ( ! empty( $register_rule_parts ) ) {
32 $register_rules = ', { ' . implode( ', ', $register_rule_parts ) . ' }';
33 }
34 $register_attr = "register('{$field_name}'{$register_rules})";
35
36 ?>
37
38 <div
39 class="tutor-quiz-question-options"
40 <?php if ( $characters_limit > 0 ) : ?>
41 x-data="{ max: <?php echo esc_attr( $characters_limit ); ?>, remaining: <?php echo esc_attr( $characters_limit ); ?> }"
42 x-effect="remaining = Math.max(0, max - (values?.['<?php echo esc_attr( $field_name ); ?>'] || '').length)"
43 <?php endif; ?>
44 >
45 <?php
46 $input_field = InputField::make()
47 ->type( InputType::TEXTAREA )
48 ->name( $field_name )
49 ->clearable()
50 ->attr( 'x-bind', $register_attr )
51 ->placeholder( __( 'Type your answer here', 'tutor' ) );
52
53 $input_field->render();
54 ?>
55 <?php if ( $characters_limit > 0 ) : ?>
56 <p class="tutor-small tutor-text-subdued">
57 <?php esc_html_e( 'Character Remaining: ', 'tutor' ); ?>
58 <span x-text="remaining"></span>
59 </p>
60 <?php endif; ?>
61 </div>
62