Skip to content

Commit

Permalink
Release QSM 9.2.3
Browse files Browse the repository at this point in the history
  • Loading branch information
zubairraeen committed Dec 13, 2024
1 parent 7455275 commit a7f3569
Show file tree
Hide file tree
Showing 8 changed files with 50 additions and 35 deletions.
12 changes: 6 additions & 6 deletions js/qsm-admin.js
Original file line number Diff line number Diff line change
Expand Up @@ -2498,13 +2498,13 @@ var import_button;
}
var category = [];
var multicategories = model.get('multicategories');
if (multicategories === null || typeof multicategories === "undefined") {
//No Action Require
} else {
$.each(multicategories, function (i, val) {
category.push($(".qsm-popup__content #qsm_category-" + val + " label:first-child")[0].textContent);
if (multicategories) {
multicategories.forEach(val => {
const categoryLabel = $(".qsm-popup__content #in-qsm_category-" + val + "-1 > label").text();
if (categoryLabel) {
category.push(categoryLabel);
}
});
category = category.filter(item => item);
}
$('.question[data-question-id=' + model.id + ']').replaceWith(template({
id: model.id,
Expand Down
23 changes: 16 additions & 7 deletions js/qsm-quiz.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ var qsmTimerInterval = [];
if (quiz.hasOwnProperty('timer_limit') && 0 != quiz.timer_limit) {
QSM.initTimer(quizID);
quizType = 'timer';
} else if (jQuery('.qsm-quiz-container-' + quizID + ' #timer').val() == 0) {
qsmTimerInterval[quizID] = setInterval(function () { qmnTimeTakenTimer(quizID) }, 1000);
}
if (jQuery('.qsm-quiz-container-' + quizID + ' .qsm-submit-btn').is(':visible') && !jQuery('.qsm-quiz-container-' + quizID).hasClass('qsm_auto_pagination_enabled') ) {
jQuery('.qsm-quiz-container-' + quizID + ' .qsm-quiz-comment-section').fadeIn();
Expand Down Expand Up @@ -1868,13 +1870,20 @@ jQuery(document).ready(function () {
var rnum = Math.floor(Math.random() * mlw_chars.length);
mlw_code += mlw_chars.substring(rnum, rnum + 1);
}
var mlw_captchaCTX = document.getElementById('mlw_captcha').getContext('2d');
mlw_captchaCTX.font = 'normal 24px Verdana';
mlw_captchaCTX.strokeStyle = '#000000';
mlw_captchaCTX.clearRect(0, 0, 100, 50);
mlw_captchaCTX.strokeText(mlw_code, 10, 30, 70);
mlw_captchaCTX.textBaseline = 'middle';
document.getElementById('mlw_code_captcha').value = mlw_code;
var captchaCanvas = document.getElementById('mlw_captcha');
var mlw_captchaCTX = captchaCanvas.getContext('2d');
var containerDirection = window.getComputedStyle(captchaCanvas).direction || 'ltr';
mlw_captchaCTX.font = 'normal 24px Verdana';
mlw_captchaCTX.strokeStyle = '#000000';
mlw_captchaCTX.clearRect(0, 0, captchaCanvas.width, captchaCanvas.height);
if (containerDirection === 'rtl') {
mlw_captchaCTX.textAlign = 'right';
mlw_captchaCTX.strokeText(mlw_code, captchaCanvas.width - 10, captchaCanvas.height / 2);
} else {
mlw_captchaCTX.textAlign = 'left';
mlw_captchaCTX.strokeText(mlw_code, 10, captchaCanvas.height / 2);
}
document.getElementById('mlw_code_captcha').value = mlw_code;
}
});

Expand Down
10 changes: 2 additions & 8 deletions mlw_quizmaster2.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* Plugin Name: Quiz And Survey Master
* Description: Easily and quickly add quizzes and surveys to your website.
* Version: 9.2.2
* Version: 9.2.3
* Author: ExpressTech
* Author URI: https://quizandsurveymaster.com/
* Plugin URI: https://expresstech.io/
Expand Down Expand Up @@ -43,7 +43,7 @@ class MLWQuizMasterNext {
* @var string
* @since 4.0.0
*/
public $version = '9.2.2';
public $version = '9.2.3';

/**
* QSM Alert Manager Object
Expand Down Expand Up @@ -765,12 +765,6 @@ public function qsm_add_user_capabilities() {
if ( ! $role ) {
return;
}
// Remove all capabilities first.
foreach ( $administrator_capabilities as $cap ) {
if ( $role->has_cap( $cap ) ) {
$role->remove_cap( $cap );
}
}

// Dynamically determine the capabilities to add based on the current user role.
$capabilities_to_add = isset(${$rolename . '_capabilities'}) ? ${$rolename . '_capabilities'} : array();
Expand Down
2 changes: 1 addition & 1 deletion php/admin/options-page-text-tab.php
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ function qsm_get_question_text_message() {
exit;
} else {
$settings = $mlwQuizMasterNext->pluginHelper->get_section_setting( 'quiz_text', $text_id );
$settings = ! empty( $settings ) ? $settings : '';
$settings = ! empty( $settings ) ? $settings : '';
$quiz_text_arr = $mlwQuizMasterNext->quiz_settings->load_setting_fields( 'quiz_text' );
$key = array_search( $text_id, array_column( $quiz_text_arr, 'id' ), true );
$allowed_text = '';
Expand Down
6 changes: 0 additions & 6 deletions php/classes/class-qsm-install.php
Original file line number Diff line number Diff line change
Expand Up @@ -1966,12 +1966,6 @@ public function update() {
$results = $mlwQuizMasterNext->wpdb_alter_table_query( $sql );
}

// Update 2.6.1
$results = $mlwQuizMasterNext->wpdb_alter_table_query( 'ALTER TABLE ' . $wpdb->prefix . 'mlw_qm_audit_trail CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;' );
$results = $mlwQuizMasterNext->wpdb_alter_table_query( 'ALTER TABLE ' . $wpdb->prefix . 'mlw_questions CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci' );
$results = $mlwQuizMasterNext->wpdb_alter_table_query( 'ALTER TABLE ' . $wpdb->prefix . 'mlw_quizzes CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci' );
$results = $mlwQuizMasterNext->wpdb_alter_table_query( 'ALTER TABLE ' . $wpdb->prefix . 'mlw_results CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci' );

global $wpdb;
$table_name = $wpdb->prefix . 'mlw_results';
$audit_table = $wpdb->prefix . 'mlw_qm_audit_trail';
Expand Down
10 changes: 5 additions & 5 deletions php/classes/class-qsm-settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -464,17 +464,17 @@ public function get_quiz_options() {
$quiz_options = array_merge( $quiz_options, $leaderboards );
}

$text = $this->get_setting('quiz_text');
if ( is_array($text) ) {
$quiz_options = array_merge( $quiz_options, $text );
}

$options = $this->get_setting( 'quiz_options' );
if ( is_array( $options ) ) {
unset( $options['quiz_name'] );
$quiz_options = array_merge( $quiz_options, $options );
}

$text = $this->get_setting('quiz_text');
if ( is_array($text) ) {
$quiz_options = array_merge( $quiz_options, $text );
}

// Return as old object model
return (object) $quiz_options;
}
Expand Down
13 changes: 12 additions & 1 deletion php/template-variables.php
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,18 @@ function mlw_qmn_variable_user_email( $content, $mlw_quiz_array ) {
function qsm_contact_field_variable( $content, $results_array ) {
preg_match_all( '~%CONTACT_(.*?)%~i', $content, $matches );
for ( $i = 0; $i < count( $matches[0] ); $i++ ) {
$content = str_replace( '%CONTACT_' . $matches[1][ $i ] . '%', $results_array['contact'][ $matches[1][ $i ] - 1 ]['value'], $content );
$contact_key = $matches[1][ $i ];
if ( is_numeric( $contact_key ) && intval( $contact_key ) > 0 ) {
$contact_index = intval( $contact_key ) - 1;

if ( isset( $results_array['contact'][ $contact_index ]['value'] ) ) {
$content = str_replace( '%CONTACT_' . $contact_key . '%', $results_array['contact'][ $contact_index ]['value'], $content );
} else {
$content = str_replace( '%CONTACT_' . $contact_key . '%', '', $content );
}
} else {
$content = str_replace( '%CONTACT_' . $contact_key . '%', '', $content );
}
}
return $content;
}
Expand Down
9 changes: 8 additions & 1 deletion readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Tags: quiz, survey, test, exam, online assessment
Requires at least: 4.9
Tested up to: 6.7
Requires PHP: 5.4
Stable tag: 9.2.2
Stable tag: 9.2.3
License: GPLv2
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Expand Down Expand Up @@ -222,6 +222,13 @@ As a WordPress quiz maker, QSM is designed to be compatible with most other plug
18. Database

== Changelog ==
= 9.2.3 ( December 13, 2024 ) =
* Bug: Resolved issue where contact form not showing at quiz end
* Bug: Resolved quiz timer issue for single-page quizzes
* Bug: Fixed PHP warning related to the CONTACT_X variable
* Enhancement: Enhanced the Captcha question type canvas for RTL websites
* Enhancement: Refined user role permissions for improved access control

= 9.2.2 ( November 06, 2024 ) =
* Bug: Fixed issue with text displaying before quiz options
* Bug: Resolved issue with left/right arrow keys in the quiz input box
Expand Down

0 comments on commit a7f3569

Please sign in to comment.