Version Description
(April 4, 2016) = * Closed Bug: Slash Added Before Quotation Mark When Editing Quiz/Survey Name - Issue #401 * Closed User Request: Add CSS Class To Container When Timer Runs Out - Issue #400 * Closed Bug: Validation breaks on second time through quiz - Issue #398 * Closed Bug: Validation not working when more than one question per page - Issue #395 * Closed Enhancement: Add Spinner/De-activate Submit Button Once Submitted - Issue #387 * Closed Enhancement: Pull changelog from GitHub API - Issue #377 * Closed Bug: Theme Conflict With Button Class (btn) - Issue #370 * Closed User Request: Add Average Points Per Category Variable - Issue #369 * Closed Bug: Mixed content SSL error - Issue #367 * Closed Enhancement: Default Option For Drop Down - Issue #334 * Closed Bug: Disable Answer On Change Not Working - Issue #331 * Closed User Request: Randomize Answers But Not Questions - Issue #330 * Closed User Request: Add Date Taken Variable - Issue #310 * Closed User Request: Copy Questions Between Quizzes - Issue #166
Release Info
Developer | fpcorso |
Plugin | Quiz And Survey Master (Formerly Quiz Master Next) |
Version | 4.7.0 |
Comparing to | |
See all releases |
Code changes from version 4.6.7 to 4.7.0
- CHANGELOG.md +24 -0
- css/qmn_admin.css +2 -2
- css/qsm-admin-question.css +144 -0
- js/qmn_quiz.js +36 -14
- js/{admin_question.js → qsm-admin-question.js} +96 -1
- mlw_quizmaster2.php +4 -3
- php/about-page.php +14 -29
- php/admin-results-details-page.php +2 -0
- php/admin-results-page.php +2 -5
- php/adverts-generate.php +11 -15
- php/class-qmn-plugin-helper.php +2 -3
- php/class-qmn-quiz-creator.php +3 -3
- php/class-qmn-quiz-manager.php +4 -3
- php/class-qsm-changelog-generator.php +147 -0
- php/options-page-certificate-tab.php +1 -2
- php/options-page-email-tab.php +3 -0
- php/options-page-option-tab.php +1 -0
- php/options-page-questions-tab.php +114 -79
- php/options-page-results-page-tab.php +4 -1
- php/question-types.php +9 -2
- php/quiz-options-page.php +1 -3
- php/quizzes-page.php +2 -3
- php/template-variables.php +41 -1
- php/tools-page.php +3 -7
- readme.txt +21 -29
- templates/qmn_amethyst.css +58 -2
- templates/qmn_base.css +60 -4
- templates/qmn_emerald.css +57 -2
- templates/qmn_gray.css +58 -2
- templates/qmn_primary.css +58 -2
- templates/qmn_turquoise.css +58 -2
@@ -1,3 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
= 4.6.1 (October 20, 2015) =
|
2 |
* Bug fix for rare bug preventing IE usage on a small number of sites
|
3 |
|
1 |
+
= 4.6.6 (January 11, 2016) =
|
2 |
+
* Fixes bug preventing some users to not be able to submit quiz
|
3 |
+
* Fixes bug causing undefined titles for some users
|
4 |
+
|
5 |
+
= 4.6.5 (January 9, 2016) =
|
6 |
+
* Fixes timer bug that caused the timer to continue counting down after quiz has been submitted
|
7 |
+
* Fixes theme conflict between QSM and some Bootstrap based themes
|
8 |
+
* Fixes Quizzes/Surveys page table width issue
|
9 |
+
* Fixes bug preventing editing of quiz post settings
|
10 |
+
* Minor design changes
|
11 |
+
|
12 |
+
= 4.6.4 (December 15, 2015) =
|
13 |
+
* Fixes undefined results notice displayed on admin results for some users
|
14 |
+
* Fixes bug that was causing the disable radio buttons option to not work in all browsers
|
15 |
+
* Minor design changes
|
16 |
+
|
17 |
+
= 4.6.3 (November 4, 2015) =
|
18 |
+
* Fixes certificate bug that was preventing quiz/survey submissions
|
19 |
+
* Fixes undefined quiz id bug that was affecting some addons
|
20 |
+
* Fixes tooltip bug that was affecting required question validation on a few sites
|
21 |
+
|
22 |
+
= 4.6.2 (October 21, 2015) =
|
23 |
+
* Bug fix for browsers with JavaScript turned off
|
24 |
+
|
25 |
= 4.6.1 (October 20, 2015) =
|
26 |
* Bug fix for rare bug preventing IE usage on a small number of sites
|
27 |
|
@@ -107,8 +107,8 @@ div.mlw_qmn_icon_wrap {
|
|
107 |
position: absolute;
|
108 |
top: 0;
|
109 |
right: 0;
|
110 |
-
background-color:
|
111 |
-
color:
|
112 |
background-position: center 24px;
|
113 |
background-size: 85px 85px;
|
114 |
font-size: 14px;
|
107 |
position: absolute;
|
108 |
top: 0;
|
109 |
right: 0;
|
110 |
+
background-color: rgba(54, 58, 66, 1);
|
111 |
+
color: #1DD969;
|
112 |
background-position: center 24px;
|
113 |
background-size: 85px 85px;
|
114 |
font-size: 14px;
|
@@ -0,0 +1,144 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.edit_link,
|
2 |
+
.duplicate_link {
|
3 |
+
color: #0074a2 !important;
|
4 |
+
font-size: 14px !important;
|
5 |
+
}
|
6 |
+
.delete_link {
|
7 |
+
color: red !important;
|
8 |
+
font-size: 14px !important;
|
9 |
+
}
|
10 |
+
.edit_link:hover,
|
11 |
+
.duplicate_link:hover,
|
12 |
+
.delete_link:hover {
|
13 |
+
background-color: black;
|
14 |
+
}
|
15 |
+
|
16 |
+
.row:after,
|
17 |
+
.answers:after,
|
18 |
+
.answers_single:after {
|
19 |
+
clear:both;
|
20 |
+
display:table;
|
21 |
+
content: " ";
|
22 |
+
}
|
23 |
+
.row {
|
24 |
+
margin-bottom: 15px;
|
25 |
+
}
|
26 |
+
.row .option_label {
|
27 |
+
width:15%;
|
28 |
+
float:left;
|
29 |
+
font-weight: bold;
|
30 |
+
}
|
31 |
+
.row .option_input {
|
32 |
+
width:84%;
|
33 |
+
float:left;
|
34 |
+
}
|
35 |
+
.question_form {
|
36 |
+
|
37 |
+
}
|
38 |
+
.question_form fieldset {
|
39 |
+
margin: 20px 0px;
|
40 |
+
background: #fff;
|
41 |
+
padding: 5px;
|
42 |
+
}
|
43 |
+
.question_form legend {
|
44 |
+
font-size: 16px;
|
45 |
+
font-weight: bold;
|
46 |
+
background: #f1f1f1;
|
47 |
+
padding: 5px;
|
48 |
+
}
|
49 |
+
.answer_number,
|
50 |
+
.answer_text,
|
51 |
+
.answer_points,
|
52 |
+
.answer_correct {
|
53 |
+
font-weight: bold;
|
54 |
+
float:left;
|
55 |
+
margin: 1%;
|
56 |
+
}
|
57 |
+
.answer_number {
|
58 |
+
width:10%;
|
59 |
+
}
|
60 |
+
.answer_text {
|
61 |
+
width:60%;
|
62 |
+
}
|
63 |
+
.answer_points {
|
64 |
+
width:10%;
|
65 |
+
}
|
66 |
+
.answer_correct {
|
67 |
+
width:10%;
|
68 |
+
}
|
69 |
+
.answer_input {
|
70 |
+
width: 100%;
|
71 |
+
}
|
72 |
+
.question_area_header_text {
|
73 |
+
padding: 40px 0 0 !important;
|
74 |
+
}
|
75 |
+
|
76 |
+
.other_quiz_question {
|
77 |
+
display: flex;
|
78 |
+
flex-direction: row;
|
79 |
+
justify-content: space-between;
|
80 |
+
align-items: center;
|
81 |
+
margin: 10px 0;
|
82 |
+
border: 1px solid #ccc;
|
83 |
+
}
|
84 |
+
|
85 |
+
.import_question_button,
|
86 |
+
.other_quiz_question_text {
|
87 |
+
margin-right: 15px !important;
|
88 |
+
}
|
89 |
+
|
90 |
+
@-moz-keyframes qsm-spinner-loader {
|
91 |
+
0% {
|
92 |
+
-moz-transform: rotate(0deg);
|
93 |
+
transform: rotate(0deg);
|
94 |
+
}
|
95 |
+
100% {
|
96 |
+
-moz-transform: rotate(360deg);
|
97 |
+
transform: rotate(360deg);
|
98 |
+
}
|
99 |
+
}
|
100 |
+
@-webkit-keyframes qsm-spinner-loader {
|
101 |
+
0% {
|
102 |
+
-webkit-transform: rotate(0deg);
|
103 |
+
transform: rotate(0deg);
|
104 |
+
}
|
105 |
+
100% {
|
106 |
+
-webkit-transform: rotate(360deg);
|
107 |
+
transform: rotate(360deg);
|
108 |
+
}
|
109 |
+
}
|
110 |
+
|
111 |
+
@keyframes qsm-spinner-loader {
|
112 |
+
0% {
|
113 |
+
-moz-transform: rotate(0deg);
|
114 |
+
-ms-transform: rotate(0deg);
|
115 |
+
-webkit-transform: rotate(0deg);
|
116 |
+
transform: rotate(0deg);
|
117 |
+
}
|
118 |
+
100% {
|
119 |
+
-moz-transform: rotate(360deg);
|
120 |
+
-ms-transform: rotate(360deg);
|
121 |
+
-webkit-transform: rotate(360deg);
|
122 |
+
transform: rotate(360deg);
|
123 |
+
}
|
124 |
+
}
|
125 |
+
|
126 |
+
/* :not(:required) hides this rule from IE9 and below */
|
127 |
+
.qsm-spinner-loader:not(:required) {
|
128 |
+
-moz-animation: qsm-spinner-loader 1500ms infinite linear;
|
129 |
+
-webkit-animation: qsm-spinner-loader 1500ms infinite linear;
|
130 |
+
animation: qsm-spinner-loader 1500ms infinite linear;
|
131 |
+
-moz-border-radius: 0.5em;
|
132 |
+
-webkit-border-radius: 0.5em;
|
133 |
+
border-radius: 0.5em;
|
134 |
+
-moz-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
135 |
+
-webkit-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
136 |
+
box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
137 |
+
display: inline-block;
|
138 |
+
font-size: 10px;
|
139 |
+
width: 1em;
|
140 |
+
height: 1em;
|
141 |
+
margin: 1.5em;
|
142 |
+
overflow: hidden;
|
143 |
+
text-indent: 100%;
|
144 |
+
}
|
@@ -8,6 +8,10 @@ function qmnTimeTakenTimer() {
|
|
8 |
document.getElementById("timer").value = x;
|
9 |
}
|
10 |
|
|
|
|
|
|
|
|
|
11 |
function qmnClearField( field ) {
|
12 |
if ( field.defaultValue == field.value ) field.value = '';
|
13 |
}
|
@@ -73,6 +77,13 @@ function qmnValidation( element, quiz_form_id ) {
|
|
73 |
result = false;
|
74 |
}
|
75 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
if( jQuery( this ).attr( 'class' ).indexOf( 'mlwRequiredCheck' ) > -1 ) {
|
77 |
if ( ! jQuery( this ).find( 'input:checked' ).length ) {
|
78 |
qmnDisplayError( empty_error, jQuery( this ), quiz_form_id );
|
@@ -87,7 +98,7 @@ function qmnValidation( element, quiz_form_id ) {
|
|
87 |
|
88 |
function qmnFormSubmit( quiz_form_id ) {
|
89 |
var quiz_id = +jQuery( '#' + quiz_form_id ).find( '.qmn_quiz_id' ).val();
|
90 |
-
var container = jQuery( '#' + quiz_form_id ).closest( '.qmn_quiz_container' );
|
91 |
var result = qmnValidation( '#' + quiz_form_id + ' *', quiz_form_id );
|
92 |
|
93 |
if ( ! result ) { return result; }
|
@@ -98,28 +109,40 @@ function qmnFormSubmit( quiz_form_id ) {
|
|
98 |
jQuery( '.mlw_qmn_question_comment' ).attr( 'disabled', false );
|
99 |
jQuery( '.mlw_answer_open_text' ).attr( 'disabled', false );
|
100 |
|
101 |
-
clearInterval( qsmTimerInterval );
|
102 |
-
qmnEndTimer( quiz_id );
|
103 |
-
|
104 |
var data = {
|
105 |
action: 'qmn_process_quiz',
|
106 |
quizData: jQuery( '#' + quiz_form_id ).serialize()
|
107 |
};
|
108 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
jQuery.post( qmn_ajax_object.ajaxurl, data, function( response ) {
|
110 |
-
qmnDisplayResults( JSON.parse( response ), quiz_form_id, container );
|
111 |
});
|
112 |
|
113 |
return false;
|
114 |
}
|
115 |
|
116 |
-
function
|
117 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
if ( results.redirect ) {
|
119 |
window.location.replace( results.redirect_url );
|
120 |
} else {
|
121 |
-
container.append( '<div class="qmn_results_page"></div>' );
|
122 |
-
container.find( '.qmn_results_page' ).html( results.display );
|
123 |
qmnReturnToTop();
|
124 |
}
|
125 |
}
|
@@ -190,15 +213,15 @@ function qmnTimer( quiz_id ) {
|
|
190 |
window.sessionStorage.setItem( 'mlw_started_quiz' + quiz_id, "yes" );
|
191 |
jQuery( '#quizForm' + quiz_id + ' .mlw_qmn_timer').html( qmnMinToSec( window.amount ) );
|
192 |
window.document.title = qmnMinToSec( window.amount ) + " " + qsmTitleText;
|
193 |
-
if ( window.amount <= 0 )
|
194 |
-
|
195 |
-
clearInterval( window.counter );
|
196 |
jQuery( ".mlw_qmn_quiz input:radio" ).attr( 'disabled',true );
|
197 |
jQuery( ".mlw_qmn_quiz input:checkbox" ).attr( 'disabled',true );
|
198 |
jQuery( ".mlw_qmn_quiz select" ).attr( 'disabled',true );
|
199 |
jQuery( ".mlw_qmn_question_comment" ).attr( 'disabled',true );
|
200 |
jQuery( ".mlw_answer_open_text" ).attr( 'disabled',true );
|
201 |
jQuery( ".mlw_answer_number" ).attr( 'disabled',true );
|
|
|
202 |
//document.quizForm.submit();
|
203 |
return;
|
204 |
}
|
@@ -272,8 +295,7 @@ function qmnMinToSec( amount ) {
|
|
272 |
|
273 |
//Function to validate the answers provided in quiz
|
274 |
function qmnValidatePage( quiz_form_id ) {
|
275 |
-
var
|
276 |
-
var result = qmnValidation( '#' + quiz_form_id + " .quiz_section.slide" + slide_number + ' *', quiz_form_id );
|
277 |
return result;
|
278 |
}
|
279 |
|
8 |
document.getElementById("timer").value = x;
|
9 |
}
|
10 |
|
11 |
+
function qsmEndTimeTakenTimer() {
|
12 |
+
clearInterval( qsmTimerInterval );
|
13 |
+
}
|
14 |
+
|
15 |
function qmnClearField( field ) {
|
16 |
if ( field.defaultValue == field.value ) field.value = '';
|
17 |
}
|
77 |
result = false;
|
78 |
}
|
79 |
}
|
80 |
+
if( jQuery( this ).attr( 'class' ).indexOf( 'qsmRequiredSelect' ) > -1 ) {
|
81 |
+
check_val = jQuery( this ).val();
|
82 |
+
if ( check_val == "No Answer Provided" ) {
|
83 |
+
qmnDisplayError( empty_error, jQuery( this ), quiz_form_id );
|
84 |
+
result = false;
|
85 |
+
}
|
86 |
+
}
|
87 |
if( jQuery( this ).attr( 'class' ).indexOf( 'mlwRequiredCheck' ) > -1 ) {
|
88 |
if ( ! jQuery( this ).find( 'input:checked' ).length ) {
|
89 |
qmnDisplayError( empty_error, jQuery( this ), quiz_form_id );
|
98 |
|
99 |
function qmnFormSubmit( quiz_form_id ) {
|
100 |
var quiz_id = +jQuery( '#' + quiz_form_id ).find( '.qmn_quiz_id' ).val();
|
101 |
+
var $container = jQuery( '#' + quiz_form_id ).closest( '.qmn_quiz_container' );
|
102 |
var result = qmnValidation( '#' + quiz_form_id + ' *', quiz_form_id );
|
103 |
|
104 |
if ( ! result ) { return result; }
|
109 |
jQuery( '.mlw_qmn_question_comment' ).attr( 'disabled', false );
|
110 |
jQuery( '.mlw_answer_open_text' ).attr( 'disabled', false );
|
111 |
|
|
|
|
|
|
|
112 |
var data = {
|
113 |
action: 'qmn_process_quiz',
|
114 |
quizData: jQuery( '#' + quiz_form_id ).serialize()
|
115 |
};
|
116 |
|
117 |
+
qsmEndTimeTakenTimer();
|
118 |
+
|
119 |
+
if ( qmn_quiz_data[quiz_id].hasOwnProperty( 'timer_limit' ) ) {
|
120 |
+
qmnEndTimer( quiz_id );
|
121 |
+
}
|
122 |
+
|
123 |
+
jQuery( '#' + quiz_form_id + ' input[type=submit]' ).attr( 'disabled', 'disabled' );
|
124 |
+
qsmDisplayLoading( $container );
|
125 |
+
|
126 |
jQuery.post( qmn_ajax_object.ajaxurl, data, function( response ) {
|
127 |
+
qmnDisplayResults( JSON.parse( response ), quiz_form_id, $container );
|
128 |
});
|
129 |
|
130 |
return false;
|
131 |
}
|
132 |
|
133 |
+
function qsmDisplayLoading( $container ) {
|
134 |
+
$container.empty();
|
135 |
+
$container.append( '<div class="qsm-spinner-loader"></div>' );
|
136 |
+
qmnReturnToTop();
|
137 |
+
}
|
138 |
+
|
139 |
+
function qmnDisplayResults( results, quiz_form_id, $container ) {
|
140 |
+
$container.empty();
|
141 |
if ( results.redirect ) {
|
142 |
window.location.replace( results.redirect_url );
|
143 |
} else {
|
144 |
+
$container.append( '<div class="qmn_results_page"></div>' );
|
145 |
+
$container.find( '.qmn_results_page' ).html( results.display );
|
146 |
qmnReturnToTop();
|
147 |
}
|
148 |
}
|
213 |
window.sessionStorage.setItem( 'mlw_started_quiz' + quiz_id, "yes" );
|
214 |
jQuery( '#quizForm' + quiz_id + ' .mlw_qmn_timer').html( qmnMinToSec( window.amount ) );
|
215 |
window.document.title = qmnMinToSec( window.amount ) + " " + qsmTitleText;
|
216 |
+
if ( window.amount <= 0 ) {
|
217 |
+
clearInterval( window.qsmCounter );
|
|
|
218 |
jQuery( ".mlw_qmn_quiz input:radio" ).attr( 'disabled',true );
|
219 |
jQuery( ".mlw_qmn_quiz input:checkbox" ).attr( 'disabled',true );
|
220 |
jQuery( ".mlw_qmn_quiz select" ).attr( 'disabled',true );
|
221 |
jQuery( ".mlw_qmn_question_comment" ).attr( 'disabled',true );
|
222 |
jQuery( ".mlw_answer_open_text" ).attr( 'disabled',true );
|
223 |
jQuery( ".mlw_answer_number" ).attr( 'disabled',true );
|
224 |
+
jQuery( '#quizForm' + quiz_id ).closest( '.qmn_quiz_container' ).addClass( 'qsm_timer_ended' );
|
225 |
//document.quizForm.submit();
|
226 |
return;
|
227 |
}
|
295 |
|
296 |
//Function to validate the answers provided in quiz
|
297 |
function qmnValidatePage( quiz_form_id ) {
|
298 |
+
var result = qmnValidation( '#' + quiz_form_id + ' .quiz_section:visible *', quiz_form_id );
|
|
|
299 |
return result;
|
300 |
}
|
301 |
|
@@ -1,3 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
function add_answer(answer, points, correct)
|
2 |
{
|
3 |
if (!answer) {
|
@@ -24,6 +118,7 @@ function add_answer(answer, points, correct)
|
|
24 |
'</div>');
|
25 |
jQuery("#answers").append($answer_single);
|
26 |
}
|
|
|
27 |
function deleteQuestion( id ) {
|
28 |
jQuery("#delete_dialog").dialog({
|
29 |
autoOpen: false,
|
@@ -167,7 +262,7 @@ jQuery("#new_question_button").click(function() {
|
|
167 |
jQuery("#correct_answer_info").val('');
|
168 |
jQuery("#hint").val('');
|
169 |
jQuery("#new_question_order").val(questions_list.length+1);
|
170 |
-
jQuery("#question_type").val(
|
171 |
jQuery(".comments_radio").val([1]);
|
172 |
jQuery("#required").val(1);
|
173 |
jQuery("#question_submission").val('new_question');
|
1 |
+
/**
|
2 |
+
* QSM Question Tab
|
3 |
+
*/
|
4 |
+
|
5 |
+
var QSMQuestion;
|
6 |
+
(function ($) {
|
7 |
+
QSMQuestion = {
|
8 |
+
addQuestionFromQuiz: function() {
|
9 |
+
jQuery( "#from_other_quiz_dialog" ).dialog({
|
10 |
+
autoOpen: false,
|
11 |
+
width: 550,
|
12 |
+
height: 400,
|
13 |
+
buttons: {
|
14 |
+
Cancel: function() {
|
15 |
+
jQuery( this ).dialog( 'close' );
|
16 |
+
}
|
17 |
+
}
|
18 |
+
});
|
19 |
+
QSMQuestion.loadSpinner( '.other_quiz_questions', true );
|
20 |
+
jQuery( "#from_other_quiz_dialog" ).dialog( 'open' );
|
21 |
+
QSMQuestion.loadQuestionBank();
|
22 |
+
},
|
23 |
+
loadQuestionBank: function() {
|
24 |
+
var data = {
|
25 |
+
action: 'qsm_load_all_quiz_questions'
|
26 |
+
};
|
27 |
+
|
28 |
+
jQuery.post( ajaxurl, data, function( response ) {
|
29 |
+
QSMQuestion.displayQuestionBank( JSON.parse( response ) );
|
30 |
+
});
|
31 |
+
},
|
32 |
+
displayQuestionBank: function( questions ) {
|
33 |
+
QSMQuestion.removeSpinner( '.other_quiz_questions' );
|
34 |
+
$.each( questions, function( i, val ) {
|
35 |
+
$( '.other_quiz_questions' ).append(
|
36 |
+
'<div class="other_quiz_question">' +
|
37 |
+
'<input type="hidden" class="hidden_question_id" value="' + val.id + '">' +
|
38 |
+
'<button class="import_question_button button">Import Question</button>' +
|
39 |
+
'<span class="other_quiz_question_text">' + val.question + '</span> <span class="other_quiz_question_quiz_text"> ' + val.quiz + '</span>' +
|
40 |
+
'</div>'
|
41 |
+
);
|
42 |
+
});
|
43 |
+
},
|
44 |
+
importQuestion: function( id ) {
|
45 |
+
$( '#copy_question_id' ).val( id );
|
46 |
+
$( '#copy_question_form' ).submit();
|
47 |
+
},
|
48 |
+
searchQuestionBank: function( query ) {
|
49 |
+
jQuery( ".other_quiz_question" ).each(function() {
|
50 |
+
if ( -1 === jQuery( this ).children( '.other_quiz_question_text' ).text().toLowerCase().indexOf( query.toLowerCase() ) ) {
|
51 |
+
jQuery( this ).hide();
|
52 |
+
} else {
|
53 |
+
jQuery( this ).show();
|
54 |
+
}
|
55 |
+
});
|
56 |
+
},
|
57 |
+
loadSpinner: function( container, empty ) {
|
58 |
+
if ( empty ) {
|
59 |
+
$( container ).empty();
|
60 |
+
}
|
61 |
+
$( container ).append( '<div class="qsm-spinner-loader"></div>' );
|
62 |
+
},
|
63 |
+
removeSpinner: function( container ) {
|
64 |
+
$( container + ' .qsm-spinner-loader' ).remove();
|
65 |
+
}
|
66 |
+
};
|
67 |
+
|
68 |
+
// Code to run after DOM is loaded
|
69 |
+
$(function() {
|
70 |
+
|
71 |
+
// Adds event handler for adding question from other quizzes dialog
|
72 |
+
$( '#from_other_quiz_button' ).on( 'click', function( event ) {
|
73 |
+
event.preventDefault();
|
74 |
+
QSMQuestion.addQuestionFromQuiz();
|
75 |
+
});
|
76 |
+
|
77 |
+
// Adds event handler to import button in other quizzes dialog
|
78 |
+
$( '.other_quiz_questions' ).on( 'click', '.import_question_button', function( event ) {
|
79 |
+
event.preventDefault();
|
80 |
+
QSMQuestion.importQuestion( $( this ).prev().val() );
|
81 |
+
});
|
82 |
+
|
83 |
+
// Adds event handlers for searching question bank
|
84 |
+
$( "#dialog_question_search" ).keyup(function() {
|
85 |
+
QSMQuestion.searchQuestionBank( $( this ).val() );
|
86 |
+
});
|
87 |
+
$( '#dialog_question_search_button' ).on( 'click', function( event ) {
|
88 |
+
event.preventDefault();
|
89 |
+
var query = $( "#dialog_question_search" ).val();
|
90 |
+
QSMQuestion.searchQuestionBank( query );
|
91 |
+
});
|
92 |
+
});
|
93 |
+
}(jQuery));
|
94 |
+
|
95 |
function add_answer(answer, points, correct)
|
96 |
{
|
97 |
if (!answer) {
|
118 |
'</div>');
|
119 |
jQuery("#answers").append($answer_single);
|
120 |
}
|
121 |
+
|
122 |
function deleteQuestion( id ) {
|
123 |
jQuery("#delete_dialog").dialog({
|
124 |
autoOpen: false,
|
262 |
jQuery("#correct_answer_info").val('');
|
263 |
jQuery("#hint").val('');
|
264 |
jQuery("#new_question_order").val(questions_list.length+1);
|
265 |
+
jQuery("#question_type").val(0);
|
266 |
jQuery(".comments_radio").val([1]);
|
267 |
jQuery("#required").val(1);
|
268 |
jQuery("#question_submission").val('new_question');
|
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Plugin Name: Quiz And Survey Master
|
4 |
* Description: Easily and quickly add quizzes and surveys to your website.
|
5 |
-
* Version: 4.
|
6 |
* Author: Frank Corso
|
7 |
* Author URI: http://www.quizandsurveymaster.com/
|
8 |
* Plugin URI: http://www.quizandsurveymaster.com/
|
@@ -10,7 +10,7 @@
|
|
10 |
* Domain Path: /languages
|
11 |
*
|
12 |
* @author Frank Corso
|
13 |
-
* @version 4.
|
14 |
*/
|
15 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
16 |
/**
|
@@ -28,7 +28,7 @@ class MLWQuizMasterNext
|
|
28 |
* @var string
|
29 |
* @since 4.0.0
|
30 |
*/
|
31 |
-
public $version = '4.
|
32 |
|
33 |
/**
|
34 |
* QMN Alert Manager Object
|
@@ -99,6 +99,7 @@ class MLWQuizMasterNext
|
|
99 |
include("php/admin-results-page.php");
|
100 |
include("php/admin-results-details-page.php");
|
101 |
include("php/tools-page.php");
|
|
|
102 |
include("php/about-page.php");
|
103 |
include("php/help-page.php");
|
104 |
include("php/dashboard-widgets.php");
|
2 |
/**
|
3 |
* Plugin Name: Quiz And Survey Master
|
4 |
* Description: Easily and quickly add quizzes and surveys to your website.
|
5 |
+
* Version: 4.7.0
|
6 |
* Author: Frank Corso
|
7 |
* Author URI: http://www.quizandsurveymaster.com/
|
8 |
* Plugin URI: http://www.quizandsurveymaster.com/
|
10 |
* Domain Path: /languages
|
11 |
*
|
12 |
* @author Frank Corso
|
13 |
+
* @version 4.7.0
|
14 |
*/
|
15 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
16 |
/**
|
28 |
* @var string
|
29 |
* @since 4.0.0
|
30 |
*/
|
31 |
+
public $version = '4.7.0';
|
32 |
|
33 |
/**
|
34 |
* QMN Alert Manager Object
|
99 |
include("php/admin-results-page.php");
|
100 |
include("php/admin-results-details-page.php");
|
101 |
include("php/tools-page.php");
|
102 |
+
include("php/class-qsm-changelog-generator.php");
|
103 |
include("php/about-page.php");
|
104 |
include("php/help-page.php");
|
105 |
include("php/dashboard-widgets.php");
|
@@ -23,7 +23,7 @@ function mlw_generate_about_page()
|
|
23 |
<style>
|
24 |
div.mlw_qmn_icon_wrap
|
25 |
{
|
26 |
-
background: <?php echo 'url("'.plugins_url( '
|
27 |
}
|
28 |
</style>
|
29 |
<div class="wrap about-wrap">
|
@@ -39,42 +39,27 @@ function mlw_generate_about_page()
|
|
39 |
<?php _e('People Who Make QMN Possible', 'quiz-master-next'); ?></a>
|
40 |
</h2>
|
41 |
<div id="mlw_quiz_what_new" class="qmn_tab">
|
42 |
-
<h2 style="margin: 1.1em 0 .2em;font-size: 2.4em;font-weight: 300;line-height: 1.3;text-align: center;">
|
43 |
-
<p style="text-align: center;">
|
44 |
<br />
|
45 |
-
<h2 style="margin: 1.1em 0 .2em;font-size: 2.4em;font-weight: 300;line-height: 1.3;text-align: center;">
|
46 |
-
<p style="text-align: center;">
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
<br />
|
48 |
<hr />
|
49 |
<h2 style="margin: 1.1em 0 .2em;font-size: 2.4em;font-weight: 300;line-height: 1.3;text-align: center;">For Developers:</h2>
|
50 |
-
<
|
51 |
-
|
52 |
-
<p style="text-align: center;">I re-wrote all the JavaScript files and combined them into one file.</p>
|
53 |
-
<br />
|
54 |
-
<h2 style="margin: 1.1em 0 .2em;font-size: 2.4em;font-weight: 300;line-height: 1.3;text-align: center;">Renamed files/functions</h2>
|
55 |
-
<p style="text-align: center;">I renamed many files and functions to align with WordPress standards. None of these were externally used and will not affect your customizations/code.</p>
|
56 |
-
<br />
|
57 |
-
<h2 style="margin: 1.1em 0 .2em;font-size: 2.4em;font-weight: 300;line-height: 1.3;text-align: center;">We Are On GitHub Now</h2>
|
58 |
-
<p style="text-align: center;">We love github and use it for all of our plugins! Be sure to <a href="https://github.com/fpcorso/quiz_master_next/">make suggestions or contribute</a> to our Quiz And Survey Master repository.</p>
|
59 |
<br />
|
60 |
</div>
|
61 |
<div id="mlw_quiz_changelog" class="qmn_tab" style="display: none;">
|
62 |
<h2>Changelog</h2>
|
63 |
-
|
64 |
-
<ul class="changelog">
|
65 |
-
<!--
|
66 |
-
Examples:
|
67 |
-
<li class="add"><div class="two">Add</div>Some feature was added</li>
|
68 |
-
<li class="fixed"><div class="two">Fixed</div>Fixed some bug</li>
|
69 |
-
<li class="update"><div class="two">Updated</div>Fixed some bug</li>
|
70 |
-
-->
|
71 |
-
<li class="fixed"><div class="two">Fixed</div>* Fixes bug causing multiple response to be on a single line for some users</li>
|
72 |
-
<li class="fixed"><div class="two">Fixed</div>* Fixes bug causing the incorrect/correct CSS class from being not added on results page correctly</li>
|
73 |
-
<li class="fixed"><div class="two">Fixed</div>* Fixes bug causing unexpected output error when activating plugin</li>
|
74 |
-
<li class="update"><div class="two">Updated</div>* Changes comment section to default to off in newer quizzes</li>
|
75 |
-
<li class="update"><div class="two">Updated</div>* Adds link to online academy to help page</li>
|
76 |
-
<li class="update"><div class="two">Updated</div>* Cleans up installation function code</li>
|
77 |
-
</ul>
|
78 |
</div>
|
79 |
<div id="qmn_contributors" class="qmn_tab" style="display:none;">
|
80 |
<h2>GitHub Contributors</h2>
|
23 |
<style>
|
24 |
div.mlw_qmn_icon_wrap
|
25 |
{
|
26 |
+
background: <?php echo 'url("'.plugins_url( '../assets/icon-128x128.png' , __FILE__ ).'")'; ?> no-repeat;
|
27 |
}
|
28 |
</style>
|
29 |
<div class="wrap about-wrap">
|
39 |
<?php _e('People Who Make QMN Possible', 'quiz-master-next'); ?></a>
|
40 |
</h2>
|
41 |
<div id="mlw_quiz_what_new" class="qmn_tab">
|
42 |
+
<h2 style="margin: 1.1em 0 .2em;font-size: 2.4em;font-weight: 300;line-height: 1.3;text-align: center;">Copy Questions From Other Surveys And Quizzes</h2>
|
43 |
+
<p style="text-align: center;">There are many times that quiz/survey creators will want to use a similar question from another survey or quiz. You can now copy questions from other quizzes and surveys using the new "Add Question From Other Survey/Quiz" button.</p>
|
44 |
<br />
|
45 |
+
<h2 style="margin: 1.1em 0 .2em;font-size: 2.4em;font-weight: 300;line-height: 1.3;text-align: center;">Randomize Answers Only</h2>
|
46 |
+
<p style="text-align: center;">Many admins have asked for the ability to randomize the answers only without randomizing the questions. This option has now been enhanced to include randomizing answers only.</p>
|
47 |
+
<br />
|
48 |
+
<h2 style="margin: 1.1em 0 .2em;font-size: 2.4em;font-weight: 300;line-height: 1.3;text-align: center;">New Template Variables</h2>
|
49 |
+
<p style="text-align: center;">Two new variables have been added. %DATE_TAKEN% allows you to display the date the quiz was taken which is useful when creating certificates after the date the user completed the quiz or survey. %AVERAGE_CATEGORY_POINTS% is used to show the average points earned per question in a particular category.</p>
|
50 |
+
<br />
|
51 |
+
<h2 style="margin: 1.1em 0 .2em;font-size: 2.4em;font-weight: 300;line-height: 1.3;text-align: center;">New Loading Icon</h2>
|
52 |
+
<p style="text-align: center;">Many admins have encountered a scenario where users will click the submit button multiple times while the results are loading. To prevent this, a new loading icon appears once the button has been clicked and the submit button is now removed.</p>
|
53 |
<br />
|
54 |
<hr />
|
55 |
<h2 style="margin: 1.1em 0 .2em;font-size: 2.4em;font-weight: 300;line-height: 1.3;text-align: center;">For Developers:</h2>
|
56 |
+
<h2 style="margin: 1.1em 0 .2em;font-size: 2.4em;font-weight: 300;line-height: 1.3;text-align: center;">New Timer Ended Class</h2>
|
57 |
+
<p style="text-align: center;">A new CSS class 'qsm_timer_ended' is now added to the quiz container when the timer ends allowing you to style the form differently once the timer runs out.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
<br />
|
59 |
</div>
|
60 |
<div id="mlw_quiz_changelog" class="qmn_tab" style="display: none;">
|
61 |
<h2>Changelog</h2>
|
62 |
+
<?php QSM_Changelog_Generator::get_changelog_list( 'fpcorso/quiz_master_next', 15 ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
</div>
|
64 |
<div id="qmn_contributors" class="qmn_tab" style="display:none;">
|
65 |
<h2>GitHub Contributors</h2>
|
@@ -100,6 +100,7 @@ function qmn_generate_results_details_tab() {
|
|
100 |
'user_phone' => $mlw_results_data->phone,
|
101 |
'user_id' => $mlw_results_data->user,
|
102 |
'timer' => $results[0],
|
|
|
103 |
'total_points' => $mlw_results_data->point_score,
|
104 |
'total_score' => $mlw_results_data->correct_score,
|
105 |
'total_correct' => $mlw_results_data->correct,
|
@@ -163,6 +164,7 @@ function qmn_generate_results_certificate_tab() {
|
|
163 |
'user_phone' => $mlw_quiz_results->phone,
|
164 |
'user_id' => $mlw_quiz_results->user,
|
165 |
'timer' => $results[0],
|
|
|
166 |
'total_points' => $mlw_quiz_results->point_score,
|
167 |
'total_score' => $mlw_quiz_results->correct_score,
|
168 |
'total_correct' => $mlw_quiz_results->correct,
|
100 |
'user_phone' => $mlw_results_data->phone,
|
101 |
'user_id' => $mlw_results_data->user,
|
102 |
'timer' => $results[0],
|
103 |
+
'time_taken' => $mlw_results_data->time_taken,
|
104 |
'total_points' => $mlw_results_data->point_score,
|
105 |
'total_score' => $mlw_results_data->correct_score,
|
106 |
'total_correct' => $mlw_results_data->correct,
|
164 |
'user_phone' => $mlw_quiz_results->phone,
|
165 |
'user_id' => $mlw_quiz_results->user,
|
166 |
'timer' => $results[0],
|
167 |
+
'time_taken' => $mlw_quiz_results->time_taken,
|
168 |
'total_points' => $mlw_quiz_results->point_score,
|
169 |
'total_score' => $mlw_quiz_results->correct_score,
|
170 |
'total_correct' => $mlw_quiz_results->correct,
|
@@ -152,11 +152,7 @@ function mlw_generate_quiz_results()
|
|
152 |
{
|
153 |
$mlw_quiz_data = $wpdb->get_results( "SELECT * FROM " . $wpdb->prefix . "mlw_results WHERE deleted='0'$search_phrase_sql $order_by_sql LIMIT $mlw_qmn_result_begin, $mlw_qmn_table_limit" );
|
154 |
}
|
155 |
-
|
156 |
-
<!-- css -->
|
157 |
-
<link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/redmond/jquery-ui.css" rel="stylesheet" />
|
158 |
-
<!-- jquery scripts -->
|
159 |
-
<?php
|
160 |
wp_enqueue_script( 'jquery' );
|
161 |
wp_enqueue_script( 'jquery-ui-core' );
|
162 |
wp_enqueue_script( 'jquery-ui-dialog' );
|
@@ -164,6 +160,7 @@ function mlw_generate_quiz_results()
|
|
164 |
wp_enqueue_script( 'jquery-effects-blind' );
|
165 |
wp_enqueue_script( 'jquery-effects-explode' );
|
166 |
wp_enqueue_script('qmn_admin_js', plugins_url( '../js/admin.js' , __FILE__ ));
|
|
|
167 |
?>
|
168 |
<script type="text/javascript">
|
169 |
var $j = jQuery.noConflict();
|
152 |
{
|
153 |
$mlw_quiz_data = $wpdb->get_results( "SELECT * FROM " . $wpdb->prefix . "mlw_results WHERE deleted='0'$search_phrase_sql $order_by_sql LIMIT $mlw_qmn_result_begin, $mlw_qmn_table_limit" );
|
154 |
}
|
155 |
+
|
|
|
|
|
|
|
|
|
156 |
wp_enqueue_script( 'jquery' );
|
157 |
wp_enqueue_script( 'jquery-ui-core' );
|
158 |
wp_enqueue_script( 'jquery-ui-dialog' );
|
160 |
wp_enqueue_script( 'jquery-effects-blind' );
|
161 |
wp_enqueue_script( 'jquery-effects-explode' );
|
162 |
wp_enqueue_script('qmn_admin_js', plugins_url( '../js/admin.js' , __FILE__ ));
|
163 |
+
wp_enqueue_style( 'qmn_jquery_redmond_theme', '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/redmond/jquery-ui.css' );
|
164 |
?>
|
165 |
<script type="text/javascript">
|
166 |
var $j = jQuery.noConflict();
|
@@ -9,33 +9,29 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
9 |
* @return $mlw_advert This variable is the main variable of the function and contains the advertisement content.
|
10 |
* @since 4.4.0
|
11 |
*/
|
12 |
-
function mlw_qmn_show_adverts()
|
13 |
-
|
14 |
$mlw_advert = "";
|
15 |
$mlw_advert_text = "";
|
16 |
-
if (
|
17 |
-
|
18 |
-
$mlw_random_int = rand(0,
|
19 |
-
switch ($mlw_random_int) {
|
20 |
case 0:
|
21 |
-
// Support Advert 1
|
22 |
-
$mlw_advert_text = "Need support or features? Check out our Premium Support options! Visit our <a href=\"http://quizandsurveymaster.com/support-levels/?utm_source=qsm-plugin-ads&utm_medium=plugin&utm_content=support-advert-1&utm_campaign=qsm_plugin\">Quiz And Survey Master Support</a> for details!";
|
23 |
-
break;
|
24 |
-
case 1:
|
25 |
// Subscribe Newsletter 1
|
26 |
-
$mlw_advert_text = "Want
|
27 |
break;
|
28 |
-
case
|
29 |
// Continued development 1
|
30 |
$mlw_advert_text = "Are you finding this plugin very beneficial? Please consider checking out our premium addons which help support continued development of this plugin. Visit our <a href=\"http://quizandsurveymaster.com/addons/?utm_source=qsm-plugin-ads&utm_medium=plugin&utm_content=continued-development-1&utm_campaign=qsm_plugin\">Addon Store</a> for details!";
|
31 |
break;
|
32 |
-
case
|
33 |
// Reporting and anaylsis 1
|
34 |
$mlw_advert_text = "Are you receiving a lot of responses to your quizzes and surveys? Consider our Reporting and Anaylsis addon which analyzes the data for you and allows you to filter the data as well as export it! <a href=\"http://quizandsurveymaster.com/downloads/results-analysis/?utm_source=qsm-plugin-ads&utm_medium=plugin&utm_content=reporting-analysis-1&utm_campaign=qsm_plugin\">Click here for more details!</a>";
|
35 |
break;
|
36 |
default:
|
37 |
-
//
|
38 |
-
$mlw_advert_text = "
|
39 |
}
|
40 |
$mlw_advert .= "
|
41 |
<style>
|
9 |
* @return $mlw_advert This variable is the main variable of the function and contains the advertisement content.
|
10 |
* @since 4.4.0
|
11 |
*/
|
12 |
+
function mlw_qmn_show_adverts() {
|
13 |
+
|
14 |
$mlw_advert = "";
|
15 |
$mlw_advert_text = "";
|
16 |
+
if ( 'true' == get_option( 'mlw_advert_shows' ) ) {
|
17 |
+
|
18 |
+
$mlw_random_int = rand( 0, 3 );
|
19 |
+
switch ( $mlw_random_int ) {
|
20 |
case 0:
|
|
|
|
|
|
|
|
|
21 |
// Subscribe Newsletter 1
|
22 |
+
$mlw_advert_text = "Want a discount on your next addon purchase? Keep updated on our news, updated, and more by <a href=\"http://quizandsurveymaster.com/subscribe-to-our-newsletter/?utm_source=qsm-plugin-ads&utm_medium=plugin&utm_content=subscribe-newsletter-1&utm_campaign=qsm_plugin\">subscribing to our mailing list</a> and receive a discount on your next purchase!";
|
23 |
break;
|
24 |
+
case 1:
|
25 |
// Continued development 1
|
26 |
$mlw_advert_text = "Are you finding this plugin very beneficial? Please consider checking out our premium addons which help support continued development of this plugin. Visit our <a href=\"http://quizandsurveymaster.com/addons/?utm_source=qsm-plugin-ads&utm_medium=plugin&utm_content=continued-development-1&utm_campaign=qsm_plugin\">Addon Store</a> for details!";
|
27 |
break;
|
28 |
+
case 2:
|
29 |
// Reporting and anaylsis 1
|
30 |
$mlw_advert_text = "Are you receiving a lot of responses to your quizzes and surveys? Consider our Reporting and Anaylsis addon which analyzes the data for you and allows you to filter the data as well as export it! <a href=\"http://quizandsurveymaster.com/downloads/results-analysis/?utm_source=qsm-plugin-ads&utm_medium=plugin&utm_content=reporting-analysis-1&utm_campaign=qsm_plugin\">Click here for more details!</a>";
|
31 |
break;
|
32 |
default:
|
33 |
+
// Reporting and anaylsis 2
|
34 |
+
$mlw_advert_text = "Are you receiving a lot of responses to your quizzes and surveys? Consider our Reporting and Anaylsis addon which analyzes the data for you, graphs the data, allows you to filter the data, and export the data! <a href=\"http://quizandsurveymaster.com/downloads/results-analysis/?utm_source=qsm-plugin-ads&utm_medium=plugin&utm_content=reporting-analysis-2&utm_campaign=qsm_plugin\">Click here for more details!</a>";
|
35 |
}
|
36 |
$mlw_advert .= "
|
37 |
<style>
|
@@ -225,9 +225,8 @@ class QMNPluginHelper
|
|
225 |
array($question->answer_five, $question->answer_five_points, $mlw_answer_array_correct[4]),
|
226 |
array($question->answer_six, $question->answer_six_points, $mlw_answer_array_correct[5]));
|
227 |
}
|
228 |
-
if ($quiz_options->randomness_order ==
|
229 |
-
|
230 |
-
shuffle($answers);
|
231 |
}
|
232 |
foreach($this->question_types as $type)
|
233 |
{
|
225 |
array($question->answer_five, $question->answer_five_points, $mlw_answer_array_correct[4]),
|
226 |
array($question->answer_six, $question->answer_six_points, $mlw_answer_array_correct[5]));
|
227 |
}
|
228 |
+
if ( 2 == $quiz_options->randomness_order || 3 == $quiz_options->randomness_order ) {
|
229 |
+
shuffle( $answers );
|
|
|
230 |
}
|
231 |
foreach($this->question_types as $type)
|
232 |
{
|
@@ -264,10 +264,10 @@ class QMNQuizCreator
|
|
264 |
'message_before' => 'Welcome to your %QUIZ_NAME%',
|
265 |
'message_after' => '%QUESTIONS_ANSWERS%',
|
266 |
'message_comment' => 'Please fill in the comment box below.',
|
267 |
-
'message_end_template' => '
|
268 |
'user_email_template' => '%QUESTIONS_ANSWERS%',
|
269 |
'admin_email_template' => '%QUESTIONS_ANSWERS%',
|
270 |
-
'submit_button_text' => 'Submit
|
271 |
'name_field_text' => 'Name',
|
272 |
'business_field_text' => 'Business',
|
273 |
'email_field_text' => 'Email',
|
@@ -306,7 +306,7 @@ class QMNQuizCreator
|
|
306 |
'require_log_in' => 0,
|
307 |
'require_log_in_text' => 'This quiz is for logged in users only.',
|
308 |
'limit_total_entries' => 0,
|
309 |
-
'limit_total_entries_text' => 'Unfortunately, this quiz
|
310 |
'scheduled_timeframe' => '',
|
311 |
'scheduled_timeframe_text' => '',
|
312 |
'quiz_views' => 0,
|
264 |
'message_before' => 'Welcome to your %QUIZ_NAME%',
|
265 |
'message_after' => '%QUESTIONS_ANSWERS%',
|
266 |
'message_comment' => 'Please fill in the comment box below.',
|
267 |
+
'message_end_template' => '',
|
268 |
'user_email_template' => '%QUESTIONS_ANSWERS%',
|
269 |
'admin_email_template' => '%QUESTIONS_ANSWERS%',
|
270 |
+
'submit_button_text' => 'Submit',
|
271 |
'name_field_text' => 'Name',
|
272 |
'business_field_text' => 'Business',
|
273 |
'email_field_text' => 'Email',
|
306 |
'require_log_in' => 0,
|
307 |
'require_log_in_text' => 'This quiz is for logged in users only.',
|
308 |
'limit_total_entries' => 0,
|
309 |
+
'limit_total_entries_text' => 'Unfortunately, this quiz has a limited amount of entries it can recieve and has already reached that limit.',
|
310 |
'scheduled_timeframe' => '',
|
311 |
'scheduled_timeframe_text' => '',
|
312 |
'quiz_views' => 0,
|
@@ -268,7 +268,7 @@ class QMNQuizManager
|
|
268 |
wp_enqueue_script( 'jquery-ui-dialog' );
|
269 |
wp_enqueue_script( 'jquery-ui-button' );
|
270 |
wp_enqueue_script( 'jquery-ui-tooltip' );
|
271 |
-
wp_enqueue_style( 'qmn_jquery_redmond_theme', '
|
272 |
|
273 |
global $qmn_json_data;
|
274 |
$qmn_json_data["error_messages"] = array(
|
@@ -551,6 +551,7 @@ class QMNQuizManager
|
|
551 |
$qmn_array_for_variables['user_phone'] = $mlw_user_phone;
|
552 |
$qmn_array_for_variables['user_id'] = get_current_user_id();
|
553 |
$qmn_array_for_variables['timer'] = $mlw_qmn_timer;
|
|
|
554 |
|
555 |
if (!isset($_POST["mlw_code_captcha"]) || (isset($_POST["mlw_code_captcha"]) && $_POST["mlw_user_captcha"] == $_POST["mlw_code_captcha"]))
|
556 |
{
|
@@ -595,8 +596,8 @@ class QMNQuizManager
|
|
595 |
'email' => $qmn_array_for_variables['user_email'],
|
596 |
'phone' => $qmn_array_for_variables['user_phone'],
|
597 |
'user' => $qmn_array_for_variables['user_id'],
|
598 |
-
'time_taken' =>
|
599 |
-
'time_taken_real' => date("Y-m-d H:i:s"),
|
600 |
'quiz_results' => $mlw_quiz_results,
|
601 |
'deleted' => 0
|
602 |
),
|
268 |
wp_enqueue_script( 'jquery-ui-dialog' );
|
269 |
wp_enqueue_script( 'jquery-ui-button' );
|
270 |
wp_enqueue_script( 'jquery-ui-tooltip' );
|
271 |
+
wp_enqueue_style( 'qmn_jquery_redmond_theme', '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/redmond/jquery-ui.css' );
|
272 |
|
273 |
global $qmn_json_data;
|
274 |
$qmn_json_data["error_messages"] = array(
|
551 |
$qmn_array_for_variables['user_phone'] = $mlw_user_phone;
|
552 |
$qmn_array_for_variables['user_id'] = get_current_user_id();
|
553 |
$qmn_array_for_variables['timer'] = $mlw_qmn_timer;
|
554 |
+
$qmn_array_for_variables['time_taken'] = date("h:i:s A m/d/Y");
|
555 |
|
556 |
if (!isset($_POST["mlw_code_captcha"]) || (isset($_POST["mlw_code_captcha"]) && $_POST["mlw_user_captcha"] == $_POST["mlw_code_captcha"]))
|
557 |
{
|
596 |
'email' => $qmn_array_for_variables['user_email'],
|
597 |
'phone' => $qmn_array_for_variables['user_phone'],
|
598 |
'user' => $qmn_array_for_variables['user_id'],
|
599 |
+
'time_taken' => $qmn_array_for_variables['time_taken'],
|
600 |
+
'time_taken_real' => date( "Y-m-d H:i:s", strtotime( $qmn_array_for_variables['time_taken'] ) ),
|
601 |
'quiz_results' => $mlw_quiz_results,
|
602 |
'deleted' => 0
|
603 |
),
|
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* This class pings the GitHub API to load in the changelog for a particular milestone
|
6 |
+
*
|
7 |
+
* @since 4.7.0
|
8 |
+
*/
|
9 |
+
class QSM_Changelog_Generator {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Gets the changelog as an HTML list. Either echos or returns the list
|
13 |
+
*
|
14 |
+
* @since 4.7.0
|
15 |
+
* @uses QSM_Changelog_Generator::get_changelog Used to retrieve the changelog from GitHub
|
16 |
+
* @param string $repo The name of the GitHub repo. Should be similar to 'fpcorso/quiz_master_next'
|
17 |
+
* @param int $milestone The number of the milestone in your GitHub repo
|
18 |
+
* @param bool $echo Whether to echo or return the HTML list. Defaults to true
|
19 |
+
* @return string The HTML list is returned if $echo is set to false
|
20 |
+
*/
|
21 |
+
public static function get_changelog_list( $repo, $milestone, $echo = true ) {
|
22 |
+
|
23 |
+
// Gets the changelog array
|
24 |
+
$changelog = QSM_Changelog_Generator::get_changelog( $repo, $milestone );
|
25 |
+
|
26 |
+
if ( $changelog && is_array( $changelog ) ) {
|
27 |
+
|
28 |
+
// Creates header for milestone
|
29 |
+
$display = "<h3>{$changelog["milestone"]["title"]}</h3>";
|
30 |
+
|
31 |
+
// Creates paragraph for description
|
32 |
+
if ( ! empty( $changelog["milestone"]["description"] ) ) {
|
33 |
+
$display .= "<p>{$changelog["milestone"]["description"]}</p>";
|
34 |
+
}
|
35 |
+
|
36 |
+
// Creates paragraph for closed date
|
37 |
+
$display .= "<p>Closed on {$changelog["milestone"]["closed_date"]}</p>";
|
38 |
+
|
39 |
+
// Converts the issues array into HTML list
|
40 |
+
$display .= '<ul class="changelog">';
|
41 |
+
foreach ( $changelog["issues"] as $change ) {
|
42 |
+
$label_type = $change["labels"][0]["name"];
|
43 |
+
$display .= "<li class='fixed'><div class='two'>Closed</div>$label_type: {$change['title']} - <a target='_blank' href='{$change['url']}'>Issue #{$change['issue']}</a></li>";
|
44 |
+
}
|
45 |
+
$display .= '</ul>';
|
46 |
+
|
47 |
+
// Echos or returns HTML list based on $echo parameter
|
48 |
+
if ( true === $echo ) {
|
49 |
+
echo $display;
|
50 |
+
} else {
|
51 |
+
return $display;
|
52 |
+
}
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Gets the changelog from GitHub and returns as an array
|
58 |
+
*
|
59 |
+
* @since 4.7.0
|
60 |
+
* @uses QSM_Changelog_Generator::api_call Used to retrieve the changelog from GitHub
|
61 |
+
* @param string $repo The name of the GitHub repo. Should be similar to 'fpcorso/quiz_master_next'
|
62 |
+
* @param int $milestone The number of the milestone in your GitHub repo
|
63 |
+
* @return array An array of all the titles of closed issues for the milestone
|
64 |
+
*/
|
65 |
+
public static function get_changelog( $repo, $milestone ) {
|
66 |
+
|
67 |
+
// Gets transient if available
|
68 |
+
$changelog = get_transient( "changelog-$repo-$milestone" );
|
69 |
+
if ( false === $changelog ) {
|
70 |
+
|
71 |
+
$changelog = array();
|
72 |
+
|
73 |
+
// Constructs url and then calls the api
|
74 |
+
$issue_url = "https://api.github.com/repos/$repo/issues?milestone=$milestone&state=all";
|
75 |
+
$issue_data = QSM_Changelog_Generator::api_call( $issue_url );
|
76 |
+
|
77 |
+
if ( $issue_data ) {
|
78 |
+
|
79 |
+
// Constructs url and then calls the api
|
80 |
+
$milestone_url = "https://api.github.com/repos/$repo/milestones/$milestone";
|
81 |
+
$milestone_data = QSM_Changelog_Generator::api_call( $milestone_url );
|
82 |
+
|
83 |
+
if ( $milestone_data ) {
|
84 |
+
$milestone_array = array(
|
85 |
+
'title' => $milestone_data["title"],
|
86 |
+
'description' => $milestone_data["description"],
|
87 |
+
'closed_date' => $milestone_data["closed_at"]
|
88 |
+
);
|
89 |
+
} else {
|
90 |
+
$milestone_array = array(
|
91 |
+
'title' => '',
|
92 |
+
'description' => '',
|
93 |
+
'closed_date' => ''
|
94 |
+
);
|
95 |
+
}
|
96 |
+
|
97 |
+
$changelog["milestone"] = $milestone_array;
|
98 |
+
$changelog["issues"] = array();
|
99 |
+
|
100 |
+
// Creates an array of all issues that are closed
|
101 |
+
foreach ( $issue_data as $issue ) {
|
102 |
+
if ( ! isset( $issue["pull_request"] ) ) {
|
103 |
+
if ( "closed" === $issue["state"] ) {
|
104 |
+
$changelog["issues"][] = array(
|
105 |
+
'title' => $issue["title"],
|
106 |
+
'labels' => $issue["labels"],
|
107 |
+
'issue' => $issue["number"],
|
108 |
+
'url' => $issue["html_url"]
|
109 |
+
);
|
110 |
+
}
|
111 |
+
}
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
115 |
+
// Sets the transient
|
116 |
+
set_transient( "changelog-$repo-$milestone", $changelog, 3600 );
|
117 |
+
}
|
118 |
+
return $changelog;
|
119 |
+
}
|
120 |
+
|
121 |
+
/**
|
122 |
+
* Gets the contents of the $url that is passed
|
123 |
+
*
|
124 |
+
* @since 4.7.0
|
125 |
+
* @param string $url The url to get the contents of
|
126 |
+
* @return bool|array Returns false if encounters an error. Returns an associated array if successful
|
127 |
+
*/
|
128 |
+
public static function api_call( $url ) {
|
129 |
+
|
130 |
+
// Gets the url
|
131 |
+
$response = wp_remote_get( $url );
|
132 |
+
|
133 |
+
// If an error occurs, return false. If successful, return json_decoded array
|
134 |
+
if ( is_wp_error( $response ) ) {
|
135 |
+
return false;
|
136 |
+
} else {
|
137 |
+
$data = wp_remote_retrieve_body( $response );
|
138 |
+
if ( is_wp_error( $data ) ) {
|
139 |
+
return false;
|
140 |
+
} else {
|
141 |
+
return json_decode( $data, true );
|
142 |
+
}
|
143 |
+
}
|
144 |
+
}
|
145 |
+
}
|
146 |
+
|
147 |
+
?>
|
@@ -4,8 +4,6 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
4 |
/**
|
5 |
* This function adds the certificate tab using our API.
|
6 |
*
|
7 |
-
* Long Description
|
8 |
-
*
|
9 |
* @return type description
|
10 |
* @since 4.4.0
|
11 |
*/
|
@@ -141,6 +139,7 @@ function mlw_options_certificate_tab_content()
|
|
141 |
<p style="margin: 2px 0">- %USER_PHONE%</p>
|
142 |
<p style="margin: 2px 0">- %USER_EMAIL%</p>
|
143 |
<p style="margin: 2px 0">- %CURRENT_DATE%</p>
|
|
|
144 |
</td>
|
145 |
<td><label for="certificate_template">Allowed tags: <b> - bold, <i>-italics, <u>-underline, <br>-New Line or start a new line by pressing enter</label><textarea cols="80" rows="15" id="certificate_template" name="certificate_template"><?php echo $mlw_certificate_options[1]; ?></textarea>
|
146 |
</td>
|
4 |
/**
|
5 |
* This function adds the certificate tab using our API.
|
6 |
*
|
|
|
|
|
7 |
* @return type description
|
8 |
* @since 4.4.0
|
9 |
*/
|
139 |
<p style="margin: 2px 0">- %USER_PHONE%</p>
|
140 |
<p style="margin: 2px 0">- %USER_EMAIL%</p>
|
141 |
<p style="margin: 2px 0">- %CURRENT_DATE%</p>
|
142 |
+
<p style="margin: 2px 0">- %DATE_TAKEN%</p>
|
143 |
</td>
|
144 |
<td><label for="certificate_template">Allowed tags: <b> - bold, <i>-italics, <u>-underline, <br>-New Line or start a new line by pressing enter</label><textarea cols="80" rows="15" id="certificate_template" name="certificate_template"><?php echo $mlw_certificate_options[1]; ?></textarea>
|
145 |
</td>
|
@@ -370,6 +370,9 @@ function mlw_options_emails_tab_content()
|
|
370 |
<div class="template_variable">
|
371 |
<span class="template_name">%CATEGORY_POINTS%%/CATEGORY_POINTS%</span> - <?php _e('The amount of points a specific category earned.', 'quiz-master-next'); ?>
|
372 |
</div>
|
|
|
|
|
|
|
373 |
<div class="template_variable">
|
374 |
<span class="template_name">%CATEGORY_SCORE%%/CATEGORY_SCORE%</span> - <?php _e('The score a specific category earned.', 'quiz-master-next'); ?>
|
375 |
</div>
|
370 |
<div class="template_variable">
|
371 |
<span class="template_name">%CATEGORY_POINTS%%/CATEGORY_POINTS%</span> - <?php _e('The amount of points a specific category earned.', 'quiz-master-next'); ?>
|
372 |
</div>
|
373 |
+
<div class="template_variable">
|
374 |
+
<spane class="template_name">%AVERAGE_CATEGORY_POINTS%%/AVERAGE_CATEGORY_POINTS%</span> - <?php _e('The average amount of points a specific category earned.', 'quiz-master-next'); ?>
|
375 |
+
</div>
|
376 |
<div class="template_variable">
|
377 |
<span class="template_name">%CATEGORY_SCORE%%/CATEGORY_SCORE%</span> - <?php _e('The score a specific category earned.', 'quiz-master-next'); ?>
|
378 |
</div>
|
@@ -223,6 +223,7 @@ function mlw_options_option_tab_content()
|
|
223 |
<td>
|
224 |
<input type="radio" id="radio24" name="randomness_order" <?php if ($mlw_quiz_options->randomness_order == 1) {echo 'checked="checked"';} ?> value='1' /><label for="radio24"><?php _e('Random Questions', 'quiz-master-next'); ?></label><br>
|
225 |
<input type="radio" id="randomness2" name="randomness_order" <?php if ($mlw_quiz_options->randomness_order == 2) {echo 'checked="checked"';} ?> value='2' /><label for="randomness2"><?php _e('Random Questions And Answers', 'quiz-master-next'); ?></label><br>
|
|
|
226 |
<input type="radio" id="radio23" name="randomness_order" <?php if ($mlw_quiz_options->randomness_order == 0) {echo 'checked="checked"';} ?> value='0' /><label for="radio23"><?php _e('No', 'quiz-master-next'); ?></label><br>
|
227 |
</td>
|
228 |
</tr>
|
223 |
<td>
|
224 |
<input type="radio" id="radio24" name="randomness_order" <?php if ($mlw_quiz_options->randomness_order == 1) {echo 'checked="checked"';} ?> value='1' /><label for="radio24"><?php _e('Random Questions', 'quiz-master-next'); ?></label><br>
|
225 |
<input type="radio" id="randomness2" name="randomness_order" <?php if ($mlw_quiz_options->randomness_order == 2) {echo 'checked="checked"';} ?> value='2' /><label for="randomness2"><?php _e('Random Questions And Answers', 'quiz-master-next'); ?></label><br>
|
226 |
+
<input type="radio" id="randomness3" name="randomness_order" <?php checked( $mlw_quiz_options->randomness_order, 3 ); ?>value='3'><label for="randomness3"><?php _e('Random Answers', 'quiz-master-next'); ?></label><br>
|
227 |
<input type="radio" id="radio23" name="randomness_order" <?php if ($mlw_quiz_options->randomness_order == 0) {echo 'checked="checked"';} ?> value='0' /><label for="radio23"><?php _e('No', 'quiz-master-next'); ?></label><br>
|
228 |
</td>
|
229 |
</tr>
|
@@ -30,7 +30,8 @@ function mlw_options_questions_tab_content()
|
|
30 |
<?php
|
31 |
wp_enqueue_script( 'jquery' );
|
32 |
wp_enqueue_script( 'jquery-ui-sortable' );
|
33 |
-
wp_enqueue_script('qmn_admin_question_js', plugins_url( '../js/
|
|
|
34 |
wp_enqueue_script( 'math_jax', '//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML' );
|
35 |
|
36 |
global $wpdb;
|
@@ -426,7 +427,68 @@ function mlw_options_questions_tab_content()
|
|
426 |
}
|
427 |
}
|
428 |
|
|
|
|
|
429 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
430 |
|
431 |
//Load questions
|
432 |
$questions = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM " . $wpdb->prefix . "mlw_questions WHERE quiz_id=%d AND deleted='0'
|
@@ -519,23 +581,8 @@ function mlw_options_questions_tab_content()
|
|
519 |
|
520 |
$is_new_quiz = $wpdb->num_rows;
|
521 |
?>
|
522 |
-
<style>
|
523 |
-
.edit_link,
|
524 |
-
.duplicate_link {
|
525 |
-
color: #0074a2 !important;
|
526 |
-
font-size: 14px !important;
|
527 |
-
}
|
528 |
-
.delete_link {
|
529 |
-
color: red !important;
|
530 |
-
font-size: 14px !important;
|
531 |
-
}
|
532 |
-
.edit_link:hover,
|
533 |
-
.duplicate_link:hover,
|
534 |
-
.delete_link:hover {
|
535 |
-
background-color: black;
|
536 |
-
}
|
537 |
-
</style>
|
538 |
<button class="add-new-h2" id="new_question_button"><?php _e('Add Question', 'quiz-master-next'); ?></button>
|
|
|
539 |
<button class="add-new-h2" id="save_question_order"><?php _e('Save Question Order', 'quiz-master-next'); ?></button>
|
540 |
<form style="display:none;" action="" method="post" name="save_question_order_form" id="save_question_order_form">
|
541 |
<input type="hidden" name="save_question_order_input" id="save_question_order_input" value="" />
|
@@ -573,68 +620,6 @@ function mlw_options_questions_tab_content()
|
|
573 |
</tbody>
|
574 |
</table>
|
575 |
|
576 |
-
<style>
|
577 |
-
.row:after,
|
578 |
-
.answers:after,
|
579 |
-
.answers_single:after {
|
580 |
-
clear:both;
|
581 |
-
display:table;
|
582 |
-
content: " ";
|
583 |
-
}
|
584 |
-
.row {
|
585 |
-
margin-bottom: 15px;
|
586 |
-
}
|
587 |
-
.row .option_label {
|
588 |
-
width:15%;
|
589 |
-
float:left;
|
590 |
-
font-weight: bold;
|
591 |
-
}
|
592 |
-
.row .option_input {
|
593 |
-
width:84%;
|
594 |
-
float:left;
|
595 |
-
}
|
596 |
-
.question_form {
|
597 |
-
|
598 |
-
}
|
599 |
-
.question_form fieldset {
|
600 |
-
margin: 20px 0px;
|
601 |
-
background: #fff;
|
602 |
-
padding: 5px;
|
603 |
-
}
|
604 |
-
.question_form legend {
|
605 |
-
font-size: 16px;
|
606 |
-
font-weight: bold;
|
607 |
-
background: #f1f1f1;
|
608 |
-
padding: 5px;
|
609 |
-
}
|
610 |
-
.answer_number,
|
611 |
-
.answer_text,
|
612 |
-
.answer_points,
|
613 |
-
.answer_correct {
|
614 |
-
font-weight: bold;
|
615 |
-
float:left;
|
616 |
-
margin: 1%;
|
617 |
-
}
|
618 |
-
.answer_number {
|
619 |
-
width:10%;
|
620 |
-
}
|
621 |
-
.answer_text {
|
622 |
-
width:60%;
|
623 |
-
}
|
624 |
-
.answer_points {
|
625 |
-
width:10%;
|
626 |
-
}
|
627 |
-
.answer_correct {
|
628 |
-
width:10%;
|
629 |
-
}
|
630 |
-
.answer_input {
|
631 |
-
width: 100%;
|
632 |
-
}
|
633 |
-
.question_area_header_text {
|
634 |
-
padding: 40px 0 0 !important;
|
635 |
-
}
|
636 |
-
</style>
|
637 |
-
|
638 |
<div class="question_area" id="question_area">
|
639 |
<h2 class="question_area_header_text">Add New Question</h2>
|
640 |
<form action="" method="post" class="question_form">
|
@@ -750,6 +735,56 @@ function mlw_options_questions_tab_content()
|
|
750 |
<p class='submit'><input type='submit' class='button-primary' value='<?php _e ('Duplicate Question', 'quiz-master-next'); ?>' /></p>
|
751 |
</form>
|
752 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
753 |
<?php
|
754 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
755 |
?>
|
30 |
<?php
|
31 |
wp_enqueue_script( 'jquery' );
|
32 |
wp_enqueue_script( 'jquery-ui-sortable' );
|
33 |
+
wp_enqueue_script('qmn_admin_question_js', plugins_url( '../js/qsm-admin-question.js' , __FILE__ ), array( 'jquery-ui-sortable' ) );
|
34 |
+
wp_enqueue_style('qmn_admin_question_css', plugins_url( '../css/qsm-admin-question.css' , __FILE__ ) );
|
35 |
wp_enqueue_script( 'math_jax', '//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML' );
|
36 |
|
37 |
global $wpdb;
|
427 |
}
|
428 |
}
|
429 |
|
430 |
+
// Import question from another quiz
|
431 |
+
if ( isset( $_POST["add_question_from_quiz_nonce"] ) && wp_verify_nonce( $_POST['add_question_from_quiz_nonce'], 'add_question_from_quiz') ) {
|
432 |
|
433 |
+
// Load question from question bank
|
434 |
+
$question_id = intval( $_POST["copy_question_id"] );
|
435 |
+
$quiz_id = intval( $_POST["quiz_id"] );
|
436 |
+
$importing_question = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}mlw_questions WHERE question_id=%d", $question_id ) );
|
437 |
+
|
438 |
+
// Save question into question bank for this quiz
|
439 |
+
$results = $wpdb->insert(
|
440 |
+
$wpdb->prefix."mlw_questions",
|
441 |
+
array(
|
442 |
+
'quiz_id' => $quiz_id,
|
443 |
+
'question_name' => $importing_question->question_name,
|
444 |
+
'answer_array' => $importing_question->answer_array,
|
445 |
+
'question_answer_info' => $importing_question->question_answer_info,
|
446 |
+
'comments' => $importing_question->comments,
|
447 |
+
'hints' => $importing_question->hints,
|
448 |
+
'question_order' => $importing_question->question_order,
|
449 |
+
'question_type_new' => $importing_question->question_type_new,
|
450 |
+
'question_settings' => $importing_question->question_settings,
|
451 |
+
'category' => $importing_question->category,
|
452 |
+
'deleted' => 0
|
453 |
+
),
|
454 |
+
array(
|
455 |
+
'%d',
|
456 |
+
'%s',
|
457 |
+
'%s',
|
458 |
+
'%s',
|
459 |
+
'%d',
|
460 |
+
'%s',
|
461 |
+
'%d',
|
462 |
+
'%s',
|
463 |
+
'%s',
|
464 |
+
'%s',
|
465 |
+
'%d'
|
466 |
+
)
|
467 |
+
);
|
468 |
+
if ( false !== $results ) {
|
469 |
+
$mlwQuizMasterNext->alertManager->newAlert( __( 'The question has been created successfully.', 'quiz-master-next' ), 'success' );
|
470 |
+
|
471 |
+
//Insert Action Into Audit Trail
|
472 |
+
global $current_user;
|
473 |
+
get_currentuserinfo();
|
474 |
+
$wpdb->insert(
|
475 |
+
$wpdb->prefix . "mlw_qm_audit_trail",
|
476 |
+
array(
|
477 |
+
'action_user' => $current_user->display_name,
|
478 |
+
'action' => "Question Has Been Added: {$importing_question->question_name}",
|
479 |
+
'time' => date("h:i:s A m/d/Y")
|
480 |
+
),
|
481 |
+
array(
|
482 |
+
'%s',
|
483 |
+
'%s',
|
484 |
+
'%s'
|
485 |
+
)
|
486 |
+
);
|
487 |
+
} else {
|
488 |
+
$mlwQuizMasterNext->alertManager->newAlert( sprintf( __( 'There has been an error in this action. Please share this with the developer. Error Code: %s', 'quiz-master-next' ), '0023' ), 'error' );
|
489 |
+
$mlwQuizMasterNext->log_manager->add( "Error 0023", $wpdb->last_error.' from '.$wpdb->last_query, 0, 'error' );
|
490 |
+
}
|
491 |
+
}
|
492 |
|
493 |
//Load questions
|
494 |
$questions = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM " . $wpdb->prefix . "mlw_questions WHERE quiz_id=%d AND deleted='0'
|
581 |
|
582 |
$is_new_quiz = $wpdb->num_rows;
|
583 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
584 |
<button class="add-new-h2" id="new_question_button"><?php _e('Add Question', 'quiz-master-next'); ?></button>
|
585 |
+
<button class="add-new-h2" id="from_other_quiz_button"><?php _e('Add Question From Other Survey/Quiz', 'quiz-master-next'); ?></button>
|
586 |
<button class="add-new-h2" id="save_question_order"><?php _e('Save Question Order', 'quiz-master-next'); ?></button>
|
587 |
<form style="display:none;" action="" method="post" name="save_question_order_form" id="save_question_order_form">
|
588 |
<input type="hidden" name="save_question_order_input" id="save_question_order_input" value="" />
|
620 |
</tbody>
|
621 |
</table>
|
622 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
623 |
<div class="question_area" id="question_area">
|
624 |
<h2 class="question_area_header_text">Add New Question</h2>
|
625 |
<form action="" method="post" class="question_form">
|
735 |
<p class='submit'><input type='submit' class='button-primary' value='<?php _e ('Duplicate Question', 'quiz-master-next'); ?>' /></p>
|
736 |
</form>
|
737 |
</div>
|
738 |
+
|
739 |
+
<div id="from_other_quiz_dialog" title="Add Question From Other Quiz" style="display:none;">
|
740 |
+
<h3><?php _e('Select a question to import into this quiz', 'quiz-master-next'); ?></h3>
|
741 |
+
<p>
|
742 |
+
<label class="screen-reader-text" for="question_search">Search Questions:</label>
|
743 |
+
<input type="search" id="dialog_question_search" name="dialog_question_search" value="">
|
744 |
+
<button class="button" id="dialog_question_search_button">Search Questions</button>
|
745 |
+
</p>
|
746 |
+
<div class="other_quiz_questions">
|
747 |
+
|
748 |
+
</div>
|
749 |
+
<form action='' method='post' id="copy_question_form">
|
750 |
+
<?php wp_nonce_field('add_question_from_quiz','add_question_from_quiz_nonce'); ?>
|
751 |
+
<input type='hidden' id='copy_question_id' name='copy_question_id' value='' />
|
752 |
+
<input type='hidden' name='quiz_id' value='<?php echo $quiz_id; ?>' />
|
753 |
+
</form>
|
754 |
+
</div>
|
755 |
<?php
|
756 |
}
|
757 |
+
|
758 |
+
add_action( 'wp_ajax_qsm_load_all_quiz_questions', 'qsm_load_all_quiz_questions_ajax' );
|
759 |
+
add_action( 'wp_ajax_nopriv_qsm_load_all_quiz_questions', 'qsm_load_all_quiz_questions_ajax' );
|
760 |
+
|
761 |
+
/**
|
762 |
+
* Loads all the questions and echos out JSON
|
763 |
+
*
|
764 |
+
* @since 0.1.0
|
765 |
+
* @return void
|
766 |
+
*/
|
767 |
+
function qsm_load_all_quiz_questions_ajax() {
|
768 |
+
global $wpdb;
|
769 |
+
global $mlwQuizMasterNext;
|
770 |
+
|
771 |
+
// Loads questions
|
772 |
+
$questions = $wpdb->get_results( "SELECT {$wpdb->prefix}mlw_questions.question_id, {$wpdb->prefix}mlw_questions.question_name, {$wpdb->prefix}mlw_quizzes.quiz_name FROM {$wpdb->prefix}mlw_questions
|
773 |
+
LEFT JOIN {$wpdb->prefix}mlw_quizzes ON {$wpdb->prefix}mlw_questions.quiz_id={$wpdb->prefix}mlw_quizzes.quiz_id WHERE {$wpdb->prefix}mlw_questions.deleted='0' ORDER BY {$wpdb->prefix}mlw_questions.question_id DESC" );
|
774 |
+
|
775 |
+
// Creates question array
|
776 |
+
$question_json = array();
|
777 |
+
foreach ( $questions as $question ) {
|
778 |
+
$question_json[] = array(
|
779 |
+
'id' => $question->question_id,
|
780 |
+
'question' => $question->question_name,
|
781 |
+
'quiz' => $question->quiz_name
|
782 |
+
);
|
783 |
+
}
|
784 |
+
|
785 |
+
// Echos JSON and dies
|
786 |
+
echo json_encode( $question_json );
|
787 |
+
die();
|
788 |
+
}
|
789 |
+
|
790 |
?>
|
@@ -201,7 +201,7 @@ function mlw_options_results_tab_content()
|
|
201 |
<div class="template_variable">
|
202 |
<span class="template_name">%COMMENT_SECTION%</span> - <?php _e('The comments the user entered into comment box if enabled', 'quiz-master-next'); ?>
|
203 |
</div>
|
204 |
-
|
205 |
<span class="template_name">%TIMER_MINUTES%</span> - <?php _e('The amount of time user spent taking quiz in minutes', 'quiz-master-next'); ?>
|
206 |
</div>
|
207 |
<div class="template_variable">
|
@@ -213,6 +213,9 @@ function mlw_options_results_tab_content()
|
|
213 |
<div class="template_variable">
|
214 |
<span class="template_name">%CATEGORY_POINTS%%/CATEGORY_POINTS%</span> - <?php _e('The amount of points a specific category earned.', 'quiz-master-next'); ?>
|
215 |
</div>
|
|
|
|
|
|
|
216 |
<div class="template_variable">
|
217 |
<span class="template_name">%CATEGORY_SCORE%%/CATEGORY_SCORE%</span> - <?php _e('The score a specific category earned.', 'quiz-master-next'); ?>
|
218 |
</div>
|
201 |
<div class="template_variable">
|
202 |
<span class="template_name">%COMMENT_SECTION%</span> - <?php _e('The comments the user entered into comment box if enabled', 'quiz-master-next'); ?>
|
203 |
</div>
|
204 |
+
<div class="template_variable">
|
205 |
<span class="template_name">%TIMER_MINUTES%</span> - <?php _e('The amount of time user spent taking quiz in minutes', 'quiz-master-next'); ?>
|
206 |
</div>
|
207 |
<div class="template_variable">
|
213 |
<div class="template_variable">
|
214 |
<span class="template_name">%CATEGORY_POINTS%%/CATEGORY_POINTS%</span> - <?php _e('The amount of points a specific category earned.', 'quiz-master-next'); ?>
|
215 |
</div>
|
216 |
+
<div class="template_variable">
|
217 |
+
<spane class="template_name">%AVERAGE_CATEGORY_POINTS%%/AVERAGE_CATEGORY_POINTS%</span> - <?php _e('The average amount of points a specific category earned.', 'quiz-master-next'); ?>
|
218 |
+
</div>
|
219 |
<div class="template_variable">
|
220 |
<span class="template_name">%CATEGORY_SCORE%%/CATEGORY_SCORE%</span> - <?php _e('The score a specific category earned.', 'quiz-master-next'); ?>
|
221 |
</div>
|
@@ -207,8 +207,15 @@ function qmn_drop_down_display($id, $question, $answers)
|
|
207 |
{
|
208 |
$question_display = '';
|
209 |
global $mlwQuizMasterNext;
|
210 |
-
|
211 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
if (is_array($answers))
|
213 |
{
|
214 |
$mlw_answer_total = 0;
|
207 |
{
|
208 |
$question_display = '';
|
209 |
global $mlwQuizMasterNext;
|
210 |
+
$required = $mlwQuizMasterNext->pluginHelper->get_question_setting( $id, 'required' );
|
211 |
+
if ( 0 == $required ) {
|
212 |
+
$require_class = "qsmRequiredSelect";
|
213 |
+
} else {
|
214 |
+
$require_class = "";
|
215 |
+
}
|
216 |
+
$question_display .= "<span class='mlw_qmn_question'>" . do_shortcode( htmlspecialchars_decode( $question, ENT_QUOTES ) ) . "</span>";
|
217 |
+
$question_display .= "<select class='qsm_select $require_class' name='question".$id."'>";
|
218 |
+
$question_display .= "<option value='No Answer Provided' selected='selected'> </option>";
|
219 |
if (is_array($answers))
|
220 |
{
|
221 |
$mlw_answer_total = 0;
|
@@ -29,9 +29,6 @@ function mlw_generate_quiz_options()
|
|
29 |
<script type="text/javascript"
|
30 |
src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
31 |
</script>
|
32 |
-
<!-- css -->
|
33 |
-
<link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/redmond/jquery-ui.css" rel="stylesheet" />
|
34 |
-
<!-- jquery scripts -->
|
35 |
<?php
|
36 |
wp_enqueue_script( 'jquery' );
|
37 |
wp_enqueue_script( 'jquery-ui-core' );
|
@@ -41,6 +38,7 @@ function mlw_generate_quiz_options()
|
|
41 |
wp_enqueue_script( 'jquery-ui-tabs' );
|
42 |
wp_enqueue_script( 'jquery-effects-blind' );
|
43 |
wp_enqueue_script( 'jquery-effects-explode' );
|
|
|
44 |
?>
|
45 |
<style>
|
46 |
.mlw_tab_content
|
29 |
<script type="text/javascript"
|
30 |
src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
31 |
</script>
|
|
|
|
|
|
|
32 |
<?php
|
33 |
wp_enqueue_script( 'jquery' );
|
34 |
wp_enqueue_script( 'jquery-ui-core' );
|
38 |
wp_enqueue_script( 'jquery-ui-tabs' );
|
39 |
wp_enqueue_script( 'jquery-effects-blind' );
|
40 |
wp_enqueue_script( 'jquery-effects-explode' );
|
41 |
+
wp_enqueue_style( 'qmn_jquery_redmond_theme', '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/redmond/jquery-ui.css' );
|
42 |
?>
|
43 |
<style>
|
44 |
.mlw_tab_content
|
@@ -36,7 +36,7 @@ function mlw_generate_quiz_admin()
|
|
36 |
if (isset($_POST["quiz_name_editted"]) && $_POST["quiz_name_editted"] == "confirmation")
|
37 |
{
|
38 |
$mlw_edit_quiz_id = intval($_POST["edit_quiz_id"]);
|
39 |
-
$mlw_edit_quiz_name = htmlspecialchars($_POST["edit_quiz_name"], ENT_QUOTES);
|
40 |
$mlwQuizMasterNext->quizCreator->edit_quiz_name($mlw_edit_quiz_id, $mlw_edit_quiz_name);
|
41 |
}
|
42 |
|
@@ -89,9 +89,8 @@ function mlw_generate_quiz_admin()
|
|
89 |
wp_enqueue_script( 'jquery-ui-button' );
|
90 |
wp_enqueue_script( 'jquery-effects-blind' );
|
91 |
wp_enqueue_script( 'jquery-effects-explode' );
|
|
|
92 |
?>
|
93 |
-
<!-- css -->
|
94 |
-
<link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/redmond/jquery-ui.css" rel="stylesheet" />
|
95 |
<script type="text/javascript"
|
96 |
src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
97 |
</script>
|
36 |
if (isset($_POST["quiz_name_editted"]) && $_POST["quiz_name_editted"] == "confirmation")
|
37 |
{
|
38 |
$mlw_edit_quiz_id = intval($_POST["edit_quiz_id"]);
|
39 |
+
$mlw_edit_quiz_name = htmlspecialchars( stripslashes( $_POST["edit_quiz_name"] ), ENT_QUOTES);
|
40 |
$mlwQuizMasterNext->quizCreator->edit_quiz_name($mlw_edit_quiz_id, $mlw_edit_quiz_name);
|
41 |
}
|
42 |
|
89 |
wp_enqueue_script( 'jquery-ui-button' );
|
90 |
wp_enqueue_script( 'jquery-effects-blind' );
|
91 |
wp_enqueue_script( 'jquery-effects-explode' );
|
92 |
+
wp_enqueue_style( 'qmn_jquery_redmond_theme', '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/redmond/jquery-ui.css' );
|
93 |
?>
|
|
|
|
|
94 |
<script type="text/javascript"
|
95 |
src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
96 |
</script>
|
@@ -34,6 +34,7 @@ $mlw_qmn_result_array = array(
|
|
34 |
|
35 |
*/
|
36 |
add_filter('mlw_qmn_template_variable_results_page', 'qmn_variable_category_points',10,2);
|
|
|
37 |
add_filter('mlw_qmn_template_variable_results_page', 'qmn_variable_category_score',10,2);
|
38 |
add_filter('mlw_qmn_template_variable_results_page', 'qmn_variable_category_average_score',10,2);
|
39 |
add_filter('mlw_qmn_template_variable_results_page', 'qmn_variable_category_average_points',10,2);
|
@@ -52,6 +53,7 @@ add_filter('mlw_qmn_template_variable_results_page', 'mlw_qmn_variable_comments'
|
|
52 |
add_filter('mlw_qmn_template_variable_results_page', 'mlw_qmn_variable_timer',10,2);
|
53 |
add_filter('mlw_qmn_template_variable_results_page', 'mlw_qmn_variable_timer_minutes',10,2);
|
54 |
add_filter('mlw_qmn_template_variable_results_page', 'mlw_qmn_variable_date',10,2);
|
|
|
55 |
add_filter('mlw_qmn_template_variable_results_page', 'mlw_qmn_variable_certificate_link',10,2);
|
56 |
add_filter('mlw_qmn_template_variable_results_page', 'qmn_variable_facebook_share',10,2);
|
57 |
add_filter('mlw_qmn_template_variable_results_page', 'qmn_variable_twitter_share',10,2);
|
@@ -235,7 +237,7 @@ function mlw_qmn_variable_timer($content, $mlw_quiz_array)
|
|
235 |
}
|
236 |
function mlw_qmn_variable_timer_minutes($content, $mlw_quiz_array)
|
237 |
{
|
238 |
-
|
239 |
$content = str_replace( "%TIMER_MINUTES%" , $mlw_minutes, $content);
|
240 |
return $content;
|
241 |
}
|
@@ -244,6 +246,12 @@ function mlw_qmn_variable_date($content, $mlw_quiz_array)
|
|
244 |
$content = str_replace( "%CURRENT_DATE%" , date("F jS Y"), $content);
|
245 |
return $content;
|
246 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
function mlw_qmn_variable_certificate_link($content, $mlw_quiz_array)
|
248 |
{
|
249 |
while (strpos($content, '%CERTIFICATE_LINK%') != false)
|
@@ -282,6 +290,38 @@ function qmn_variable_category_points($content, $mlw_quiz_array)
|
|
282 |
return $content;
|
283 |
}
|
284 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
285 |
/*
|
286 |
* Replaces variable %CATEGORY_SCORE% with the score for that category
|
287 |
*
|
34 |
|
35 |
*/
|
36 |
add_filter('mlw_qmn_template_variable_results_page', 'qmn_variable_category_points',10,2);
|
37 |
+
add_filter('mlw_qmn_template_variable_results_page', 'qmn_variable_average_category_points',10,2);
|
38 |
add_filter('mlw_qmn_template_variable_results_page', 'qmn_variable_category_score',10,2);
|
39 |
add_filter('mlw_qmn_template_variable_results_page', 'qmn_variable_category_average_score',10,2);
|
40 |
add_filter('mlw_qmn_template_variable_results_page', 'qmn_variable_category_average_points',10,2);
|
53 |
add_filter('mlw_qmn_template_variable_results_page', 'mlw_qmn_variable_timer',10,2);
|
54 |
add_filter('mlw_qmn_template_variable_results_page', 'mlw_qmn_variable_timer_minutes',10,2);
|
55 |
add_filter('mlw_qmn_template_variable_results_page', 'mlw_qmn_variable_date',10,2);
|
56 |
+
add_filter('mlw_qmn_template_variable_results_page', 'mlw_qmn_variable_date_taken',10,2);
|
57 |
add_filter('mlw_qmn_template_variable_results_page', 'mlw_qmn_variable_certificate_link',10,2);
|
58 |
add_filter('mlw_qmn_template_variable_results_page', 'qmn_variable_facebook_share',10,2);
|
59 |
add_filter('mlw_qmn_template_variable_results_page', 'qmn_variable_twitter_share',10,2);
|
237 |
}
|
238 |
function mlw_qmn_variable_timer_minutes($content, $mlw_quiz_array)
|
239 |
{
|
240 |
+
$mlw_minutes = round($mlw_quiz_array["timer"]/60,2);
|
241 |
$content = str_replace( "%TIMER_MINUTES%" , $mlw_minutes, $content);
|
242 |
return $content;
|
243 |
}
|
246 |
$content = str_replace( "%CURRENT_DATE%" , date("F jS Y"), $content);
|
247 |
return $content;
|
248 |
}
|
249 |
+
|
250 |
+
function mlw_qmn_variable_date_taken( $content, $mlw_quiz_array ) {
|
251 |
+
$content = str_replace( "%DATE_TAKEN%" , date("m/d/Y", strtotime( $mlw_quiz_array["time_taken"] ) ), $content);
|
252 |
+
return $content;
|
253 |
+
}
|
254 |
+
|
255 |
function mlw_qmn_variable_certificate_link($content, $mlw_quiz_array)
|
256 |
{
|
257 |
while (strpos($content, '%CERTIFICATE_LINK%') != false)
|
290 |
return $content;
|
291 |
}
|
292 |
|
293 |
+
/*
|
294 |
+
* Replaces variable %CATEGORY_POINTS% with the average points for that category
|
295 |
+
*
|
296 |
+
* Filter function that replaces variable %CATEGORY_POINTS% with the average points from the category inside the variable tags. i.e. %CATEGORY_POINTS%category 1%/CATEGORY_POINTS%
|
297 |
+
*
|
298 |
+
* @since 4.0.0
|
299 |
+
* @param string $content The contents of the results page
|
300 |
+
* @param array $mlw_quiz_array The array of all the results from user taking the quiz
|
301 |
+
* @return string Returns the contents for the results page
|
302 |
+
*/
|
303 |
+
function qmn_variable_average_category_points( $content, $mlw_quiz_array ) {
|
304 |
+
$return_points = 0;
|
305 |
+
while ( strpos( $content, '%AVERAGE_CATEGORY_POINTS%' ) !== false ) {
|
306 |
+
$return_points = 0;
|
307 |
+
$total_questions = 0;
|
308 |
+
preg_match( "~%AVERAGE_CATEGORY_POINTS%(.*?)%/AVERAGE_CATEGORY_POINTS%~i", $content, $answer_text );
|
309 |
+
foreach ( $mlw_quiz_array['question_answers_array'] as $answer ) {
|
310 |
+
if ( $answer["category"] == $answer_text[1] ) {
|
311 |
+
$total_questions += 1;
|
312 |
+
$return_points += $answer["points"];
|
313 |
+
}
|
314 |
+
}
|
315 |
+
if ( $total_questions !== 0 ) {
|
316 |
+
$return_points = round( $return_points / $total_questions, 2 );
|
317 |
+
} else {
|
318 |
+
$return_points = 0;
|
319 |
+
}
|
320 |
+
$content = str_replace( $answer_text[0], $return_points, $content );
|
321 |
+
}
|
322 |
+
return $content;
|
323 |
+
}
|
324 |
+
|
325 |
/*
|
326 |
* Replaces variable %CATEGORY_SCORE% with the score for that category
|
327 |
*
|
@@ -22,11 +22,7 @@ function mlw_generate_quiz_tools()
|
|
22 |
}
|
23 |
add_meta_box("qmn_restore_box", 'Restore Quiz', "qmn_restore_function", "quiz_wpss");
|
24 |
add_meta_box("qmn_audit_box", 'Audit Trail', "mlw_tools_box", "quiz_wpss");
|
25 |
-
|
26 |
-
<!-- css -->
|
27 |
-
<link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/redmond/jquery-ui.css" rel="stylesheet" />
|
28 |
-
<!-- jquery scripts -->
|
29 |
-
<?php
|
30 |
wp_enqueue_script( 'jquery' );
|
31 |
wp_enqueue_script( 'jquery-ui-core' );
|
32 |
wp_enqueue_script( 'jquery-ui-dialog' );
|
@@ -36,9 +32,9 @@ function mlw_generate_quiz_tools()
|
|
36 |
wp_enqueue_script( 'jquery-ui-tabs' );
|
37 |
wp_enqueue_script( 'jquery-effects-blind' );
|
38 |
wp_enqueue_script( 'jquery-effects-explode' );
|
|
|
39 |
?>
|
40 |
-
|
41 |
-
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>-->
|
42 |
<script type="text/javascript">
|
43 |
var $j = jQuery.noConflict();
|
44 |
// increase the default animation speed to exaggerate the effect
|
22 |
}
|
23 |
add_meta_box("qmn_restore_box", 'Restore Quiz', "qmn_restore_function", "quiz_wpss");
|
24 |
add_meta_box("qmn_audit_box", 'Audit Trail', "mlw_tools_box", "quiz_wpss");
|
25 |
+
|
|
|
|
|
|
|
|
|
26 |
wp_enqueue_script( 'jquery' );
|
27 |
wp_enqueue_script( 'jquery-ui-core' );
|
28 |
wp_enqueue_script( 'jquery-ui-dialog' );
|
32 |
wp_enqueue_script( 'jquery-ui-tabs' );
|
33 |
wp_enqueue_script( 'jquery-effects-blind' );
|
34 |
wp_enqueue_script( 'jquery-effects-explode' );
|
35 |
+
wp_enqueue_style( 'qmn_jquery_redmond_theme', '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/redmond/jquery-ui.css' );
|
36 |
?>
|
37 |
+
|
|
|
38 |
<script type="text/javascript">
|
39 |
var $j = jQuery.noConflict();
|
40 |
// increase the default animation speed to exaggerate the effect
|
@@ -3,8 +3,8 @@ Contributors: mylocalwebstop, fpcorso, elrath
|
|
3 |
Donate link: http://mylocalwebstop.com/downloads/donation-service-payment/
|
4 |
Tags: quiz, survey, test, score, exam, questionnaire, email, answer, question, certificate, points, results
|
5 |
Requires at least: 4.0.1
|
6 |
-
Tested up to: 4.4.
|
7 |
-
Stable tag: 4.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -104,7 +104,23 @@ This is usually a theme conflict. You can [checkout out our common conflict solu
|
|
104 |
|
105 |
== Changelog ==
|
106 |
|
107 |
-
= 4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
* Fixes bug causing multiple response to be on a single line for some users
|
109 |
* Fixes bug causing the incorrect/correct CSS class from being not added on results page correctly
|
110 |
* Fixes bug causing unexpected output error when activating plugin
|
@@ -112,33 +128,9 @@ This is usually a theme conflict. You can [checkout out our common conflict solu
|
|
112 |
* Adds link to online academy to help page
|
113 |
* Cleans up installation function code
|
114 |
|
115 |
-
= 4.6.6 (January 11, 2015) =
|
116 |
-
* Fixes bug preventing some users to not be able to submit quiz
|
117 |
-
* Fixes bug causing undefined titles for some users
|
118 |
-
|
119 |
-
= 4.6.5 (January 9, 2015) =
|
120 |
-
* Fixes timer bug that caused the timer to continue counting down after quiz has been submitted
|
121 |
-
* Fixes theme conflict between QSM and some Bootstrap based themes
|
122 |
-
* Fixes Quizzes/Surveys page table width issue
|
123 |
-
* Fixes bug preventing editing of quiz post settings
|
124 |
-
* Minor design changes
|
125 |
-
|
126 |
-
= 4.6.4 (December 15, 2015) =
|
127 |
-
* Fixes undefined results notice displayed on admin results for some users
|
128 |
-
* Fixes bug that was causing the disable radio buttons option to not work in all browsers
|
129 |
-
* Minor design changes
|
130 |
-
|
131 |
-
= 4.6.3 (November 4, 2015) =
|
132 |
-
* Fixes certificate bug that was preventing quiz/survey submissions
|
133 |
-
* Fixes undefined quiz id bug that was affecting some addons
|
134 |
-
* Fixes tooltip bug that was affecting required question validation on a few sites
|
135 |
-
|
136 |
-
= 4.6.2 (October 21, 2015) =
|
137 |
-
* Bug fix for browsers with JavaScript turned off
|
138 |
-
|
139 |
([Read Full Changelog](https://github.com/fpcorso/quiz_master_next/blob/master/CHANGELOG.md))
|
140 |
|
141 |
== Upgrade Notice ==
|
142 |
|
143 |
-
= 4.
|
144 |
-
Upgrade to
|
3 |
Donate link: http://mylocalwebstop.com/downloads/donation-service-payment/
|
4 |
Tags: quiz, survey, test, score, exam, questionnaire, email, answer, question, certificate, points, results
|
5 |
Requires at least: 4.0.1
|
6 |
+
Tested up to: 4.4.2
|
7 |
+
Stable tag: 4.7.0
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
104 |
|
105 |
== Changelog ==
|
106 |
|
107 |
+
= 4.7.0 (April 4, 2016) =
|
108 |
+
* Closed Bug: Slash Added Before Quotation Mark When Editing Quiz/Survey Name - Issue #401
|
109 |
+
* Closed User Request: Add CSS Class To Container When Timer Runs Out - Issue #400
|
110 |
+
* Closed Bug: Validation breaks on second time through quiz - Issue #398
|
111 |
+
* Closed Bug: Validation not working when more than one question per page - Issue #395
|
112 |
+
* Closed Enhancement: Add Spinner/De-activate Submit Button Once Submitted - Issue #387
|
113 |
+
* Closed Enhancement: Pull changelog from GitHub API - Issue #377
|
114 |
+
* Closed Bug: Theme Conflict With Button Class (btn) - Issue #370
|
115 |
+
* Closed User Request: Add Average Points Per Category Variable - Issue #369
|
116 |
+
* Closed Bug: Mixed content SSL error - Issue #367
|
117 |
+
* Closed Enhancement: Default Option For Drop Down - Issue #334
|
118 |
+
* Closed Bug: Disable Answer On Change Not Working - Issue #331
|
119 |
+
* Closed User Request: Randomize Answers But Not Questions - Issue #330
|
120 |
+
* Closed User Request: Add Date Taken Variable - Issue #310
|
121 |
+
* Closed User Request: Copy Questions Between Quizzes - Issue #166
|
122 |
+
|
123 |
+
= 4.6.7 (January 22, 2016) =
|
124 |
* Fixes bug causing multiple response to be on a single line for some users
|
125 |
* Fixes bug causing the incorrect/correct CSS class from being not added on results page correctly
|
126 |
* Fixes bug causing unexpected output error when activating plugin
|
128 |
* Adds link to online academy to help page
|
129 |
* Cleans up installation function code
|
130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
([Read Full Changelog](https://github.com/fpcorso/quiz_master_next/blob/master/CHANGELOG.md))
|
132 |
|
133 |
== Upgrade Notice ==
|
134 |
|
135 |
+
= 4.7.0 =
|
136 |
+
Upgrade to gain ability to copy questions from other quizzes/surveys, new loading icon when quiz/survey is submitted, option to randomize the answers only, and much more.
|
@@ -9,6 +9,62 @@
|
|
9 |
color:rgb(0,0,255);
|
10 |
}
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
.mlw_qmn_message_before {
|
14 |
color: #666;
|
@@ -201,7 +257,7 @@ border: 1px solid #e3e3e3;
|
|
201 |
border-radius: 3px;
|
202 |
}
|
203 |
|
204 |
-
.qmn_btn, .btn {
|
205 |
display: relative;
|
206 |
display: inline-block;
|
207 |
color: #666 !important;
|
@@ -220,7 +276,7 @@ border: 1px solid #e3e3e3;
|
|
220 |
transition: background .25s ease-out;
|
221 |
}
|
222 |
|
223 |
-
.qmn_btn:hover, .btn:hover {
|
224 |
color: #fff;
|
225 |
background: #666;
|
226 |
}
|
9 |
color:rgb(0,0,255);
|
10 |
}
|
11 |
|
12 |
+
@-moz-keyframes spinner-loader {
|
13 |
+
0% {
|
14 |
+
-moz-transform: rotate(0deg);
|
15 |
+
transform: rotate(0deg);
|
16 |
+
}
|
17 |
+
100% {
|
18 |
+
-moz-transform: rotate(360deg);
|
19 |
+
transform: rotate(360deg);
|
20 |
+
}
|
21 |
+
}
|
22 |
+
@-webkit-keyframes spinner-loader {
|
23 |
+
0% {
|
24 |
+
-webkit-transform: rotate(0deg);
|
25 |
+
transform: rotate(0deg);
|
26 |
+
}
|
27 |
+
100% {
|
28 |
+
-webkit-transform: rotate(360deg);
|
29 |
+
transform: rotate(360deg);
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
@keyframes spinner-loader {
|
34 |
+
0% {
|
35 |
+
-moz-transform: rotate(0deg);
|
36 |
+
-ms-transform: rotate(0deg);
|
37 |
+
-webkit-transform: rotate(0deg);
|
38 |
+
transform: rotate(0deg);
|
39 |
+
}
|
40 |
+
100% {
|
41 |
+
-moz-transform: rotate(360deg);
|
42 |
+
-ms-transform: rotate(360deg);
|
43 |
+
-webkit-transform: rotate(360deg);
|
44 |
+
transform: rotate(360deg);
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
/* :not(:required) hides this rule from IE9 and below */
|
49 |
+
.qsm-spinner-loader:not(:required) {
|
50 |
+
-moz-animation: spinner-loader 1500ms infinite linear;
|
51 |
+
-webkit-animation: spinner-loader 1500ms infinite linear;
|
52 |
+
animation: spinner-loader 1500ms infinite linear;
|
53 |
+
-moz-border-radius: 0.5em;
|
54 |
+
-webkit-border-radius: 0.5em;
|
55 |
+
border-radius: 0.5em;
|
56 |
+
-moz-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
57 |
+
-webkit-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
58 |
+
box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
59 |
+
display: inline-block;
|
60 |
+
font-size: 10px;
|
61 |
+
width: 1em;
|
62 |
+
height: 1em;
|
63 |
+
margin: 1.5em;
|
64 |
+
overflow: hidden;
|
65 |
+
text-indent: 100%;
|
66 |
+
}
|
67 |
+
|
68 |
|
69 |
.mlw_qmn_message_before {
|
70 |
color: #666;
|
257 |
border-radius: 3px;
|
258 |
}
|
259 |
|
260 |
+
.qmn_btn, .qmn_quiz_container .btn {
|
261 |
display: relative;
|
262 |
display: inline-block;
|
263 |
color: #666 !important;
|
276 |
transition: background .25s ease-out;
|
277 |
}
|
278 |
|
279 |
+
.qmn_btn:hover, .qmn_quiz_container .btn:hover {
|
280 |
color: #fff;
|
281 |
background: #666;
|
282 |
}
|
@@ -9,6 +9,62 @@
|
|
9 |
color:rgb(0,0,255);
|
10 |
}
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
.mlw_qmn_message_before {
|
14 |
color: #666;
|
@@ -200,7 +256,7 @@ border: 1px solid #e3e3e3;
|
|
200 |
border-radius: 3px;
|
201 |
}
|
202 |
|
203 |
-
.qmn_btn, .btn {
|
204 |
display: relative;
|
205 |
display: inline-block;
|
206 |
color: #666 !important;
|
@@ -219,7 +275,7 @@ border: 1px solid #e3e3e3;
|
|
219 |
transition: background .25s ease-out;
|
220 |
}
|
221 |
|
222 |
-
.qmn_btn:hover, .btn:hover {
|
223 |
color: #fff;
|
224 |
background: #666;
|
225 |
}
|
@@ -299,12 +355,12 @@ border: 1px solid #e3e3e3;
|
|
299 |
box-shadow: 0 0 10px rgba(155, 89, 182, .35);
|
300 |
}
|
301 |
|
302 |
-
.amethyst .btn {
|
303 |
color: #fff;
|
304 |
background: #9b59b6;
|
305 |
}
|
306 |
|
307 |
-
.amethyst .btn:hover { background: #8e44ad; }
|
308 |
|
309 |
|
310 |
/* emerald */
|
9 |
color:rgb(0,0,255);
|
10 |
}
|
11 |
|
12 |
+
@-moz-keyframes spinner-loader {
|
13 |
+
0% {
|
14 |
+
-moz-transform: rotate(0deg);
|
15 |
+
transform: rotate(0deg);
|
16 |
+
}
|
17 |
+
100% {
|
18 |
+
-moz-transform: rotate(360deg);
|
19 |
+
transform: rotate(360deg);
|
20 |
+
}
|
21 |
+
}
|
22 |
+
@-webkit-keyframes spinner-loader {
|
23 |
+
0% {
|
24 |
+
-webkit-transform: rotate(0deg);
|
25 |
+
transform: rotate(0deg);
|
26 |
+
}
|
27 |
+
100% {
|
28 |
+
-webkit-transform: rotate(360deg);
|
29 |
+
transform: rotate(360deg);
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
@keyframes spinner-loader {
|
34 |
+
0% {
|
35 |
+
-moz-transform: rotate(0deg);
|
36 |
+
-ms-transform: rotate(0deg);
|
37 |
+
-webkit-transform: rotate(0deg);
|
38 |
+
transform: rotate(0deg);
|
39 |
+
}
|
40 |
+
100% {
|
41 |
+
-moz-transform: rotate(360deg);
|
42 |
+
-ms-transform: rotate(360deg);
|
43 |
+
-webkit-transform: rotate(360deg);
|
44 |
+
transform: rotate(360deg);
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
/* :not(:required) hides this rule from IE9 and below */
|
49 |
+
.qsm-spinner-loader:not(:required) {
|
50 |
+
-moz-animation: spinner-loader 1500ms infinite linear;
|
51 |
+
-webkit-animation: spinner-loader 1500ms infinite linear;
|
52 |
+
animation: spinner-loader 1500ms infinite linear;
|
53 |
+
-moz-border-radius: 0.5em;
|
54 |
+
-webkit-border-radius: 0.5em;
|
55 |
+
border-radius: 0.5em;
|
56 |
+
-moz-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
57 |
+
-webkit-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
58 |
+
box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
59 |
+
display: inline-block;
|
60 |
+
font-size: 10px;
|
61 |
+
width: 1em;
|
62 |
+
height: 1em;
|
63 |
+
margin: 1.5em;
|
64 |
+
overflow: hidden;
|
65 |
+
text-indent: 100%;
|
66 |
+
}
|
67 |
+
|
68 |
|
69 |
.mlw_qmn_message_before {
|
70 |
color: #666;
|
256 |
border-radius: 3px;
|
257 |
}
|
258 |
|
259 |
+
.qmn_btn, .qmn_quiz_container .btn {
|
260 |
display: relative;
|
261 |
display: inline-block;
|
262 |
color: #666 !important;
|
275 |
transition: background .25s ease-out;
|
276 |
}
|
277 |
|
278 |
+
.qmn_btn:hover, .qmn_quiz_container .btn:hover {
|
279 |
color: #fff;
|
280 |
background: #666;
|
281 |
}
|
355 |
box-shadow: 0 0 10px rgba(155, 89, 182, .35);
|
356 |
}
|
357 |
|
358 |
+
.amethyst .qmn_quiz_container .btn {
|
359 |
color: #fff;
|
360 |
background: #9b59b6;
|
361 |
}
|
362 |
|
363 |
+
.amethyst .qmn_quiz_container .btn:hover { background: #8e44ad; }
|
364 |
|
365 |
|
366 |
/* emerald */
|
@@ -9,6 +9,61 @@
|
|
9 |
color:rgb(0,0,255);
|
10 |
}
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
.mlw_qmn_message_before {
|
14 |
color: #666;
|
@@ -201,7 +256,7 @@ border: 1px solid #e3e3e3;
|
|
201 |
border-radius: 3px;
|
202 |
}
|
203 |
|
204 |
-
.qmn_btn, .btn {
|
205 |
display: relative;
|
206 |
display: inline-block;
|
207 |
color: #666 !important;
|
@@ -220,7 +275,7 @@ border: 1px solid #e3e3e3;
|
|
220 |
transition: background .25s ease-out;
|
221 |
}
|
222 |
|
223 |
-
.qmn_btn:hover, .btn:hover {
|
224 |
color: #fff;
|
225 |
background: #666;
|
226 |
}
|
9 |
color:rgb(0,0,255);
|
10 |
}
|
11 |
|
12 |
+
@-moz-keyframes spinner-loader {
|
13 |
+
0% {
|
14 |
+
-moz-transform: rotate(0deg);
|
15 |
+
transform: rotate(0deg);
|
16 |
+
}
|
17 |
+
100% {
|
18 |
+
-moz-transform: rotate(360deg);
|
19 |
+
transform: rotate(360deg);
|
20 |
+
}
|
21 |
+
}
|
22 |
+
@-webkit-keyframes spinner-loader {
|
23 |
+
0% {
|
24 |
+
-webkit-transform: rotate(0deg);
|
25 |
+
transform: rotate(0deg);
|
26 |
+
}
|
27 |
+
100% {
|
28 |
+
-webkit-transform: rotate(360deg);
|
29 |
+
transform: rotate(360deg);
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
@keyframes spinner-loader {
|
34 |
+
0% {
|
35 |
+
-moz-transform: rotate(0deg);
|
36 |
+
-ms-transform: rotate(0deg);
|
37 |
+
-webkit-transform: rotate(0deg);
|
38 |
+
transform: rotate(0deg);
|
39 |
+
}
|
40 |
+
100% {
|
41 |
+
-moz-transform: rotate(360deg);
|
42 |
+
-ms-transform: rotate(360deg);
|
43 |
+
-webkit-transform: rotate(360deg);
|
44 |
+
transform: rotate(360deg);
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
/* :not(:required) hides this rule from IE9 and below */
|
49 |
+
.qsm-spinner-loader:not(:required) {
|
50 |
+
-moz-animation: spinner-loader 1500ms infinite linear;
|
51 |
+
-webkit-animation: spinner-loader 1500ms infinite linear;
|
52 |
+
animation: spinner-loader 1500ms infinite linear;
|
53 |
+
-moz-border-radius: 0.5em;
|
54 |
+
-webkit-border-radius: 0.5em;
|
55 |
+
border-radius: 0.5em;
|
56 |
+
-moz-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
57 |
+
-webkit-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
58 |
+
box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
59 |
+
display: inline-block;
|
60 |
+
font-size: 10px;
|
61 |
+
width: 1em;
|
62 |
+
height: 1em;
|
63 |
+
margin: 1.5em;
|
64 |
+
overflow: hidden;
|
65 |
+
text-indent: 100%;
|
66 |
+
}
|
67 |
|
68 |
.mlw_qmn_message_before {
|
69 |
color: #666;
|
256 |
border-radius: 3px;
|
257 |
}
|
258 |
|
259 |
+
.qmn_btn, .qmn_quiz_container .btn {
|
260 |
display: relative;
|
261 |
display: inline-block;
|
262 |
color: #666 !important;
|
275 |
transition: background .25s ease-out;
|
276 |
}
|
277 |
|
278 |
+
.qmn_btn:hover, .qmn_quiz_container .btn:hover {
|
279 |
color: #fff;
|
280 |
background: #666;
|
281 |
}
|
@@ -9,6 +9,62 @@
|
|
9 |
color:rgb(0,0,255);
|
10 |
}
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
.mlw_qmn_message_before {
|
14 |
color: #666;
|
@@ -201,7 +257,7 @@ border: 1px solid #e3e3e3;
|
|
201 |
border-radius: 3px;
|
202 |
}
|
203 |
|
204 |
-
.qmn_btn, .btn {
|
205 |
display: relative;
|
206 |
display: inline-block;
|
207 |
color: #666 !important;
|
@@ -220,7 +276,7 @@ border: 1px solid #e3e3e3;
|
|
220 |
transition: background .25s ease-out;
|
221 |
}
|
222 |
|
223 |
-
.qmn_btn:hover, .btn:hover {
|
224 |
color: #fff;
|
225 |
background: #666;
|
226 |
}
|
9 |
color:rgb(0,0,255);
|
10 |
}
|
11 |
|
12 |
+
@-moz-keyframes spinner-loader {
|
13 |
+
0% {
|
14 |
+
-moz-transform: rotate(0deg);
|
15 |
+
transform: rotate(0deg);
|
16 |
+
}
|
17 |
+
100% {
|
18 |
+
-moz-transform: rotate(360deg);
|
19 |
+
transform: rotate(360deg);
|
20 |
+
}
|
21 |
+
}
|
22 |
+
@-webkit-keyframes spinner-loader {
|
23 |
+
0% {
|
24 |
+
-webkit-transform: rotate(0deg);
|
25 |
+
transform: rotate(0deg);
|
26 |
+
}
|
27 |
+
100% {
|
28 |
+
-webkit-transform: rotate(360deg);
|
29 |
+
transform: rotate(360deg);
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
@keyframes spinner-loader {
|
34 |
+
0% {
|
35 |
+
-moz-transform: rotate(0deg);
|
36 |
+
-ms-transform: rotate(0deg);
|
37 |
+
-webkit-transform: rotate(0deg);
|
38 |
+
transform: rotate(0deg);
|
39 |
+
}
|
40 |
+
100% {
|
41 |
+
-moz-transform: rotate(360deg);
|
42 |
+
-ms-transform: rotate(360deg);
|
43 |
+
-webkit-transform: rotate(360deg);
|
44 |
+
transform: rotate(360deg);
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
/* :not(:required) hides this rule from IE9 and below */
|
49 |
+
.qsm-spinner-loader:not(:required) {
|
50 |
+
-moz-animation: spinner-loader 1500ms infinite linear;
|
51 |
+
-webkit-animation: spinner-loader 1500ms infinite linear;
|
52 |
+
animation: spinner-loader 1500ms infinite linear;
|
53 |
+
-moz-border-radius: 0.5em;
|
54 |
+
-webkit-border-radius: 0.5em;
|
55 |
+
border-radius: 0.5em;
|
56 |
+
-moz-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
57 |
+
-webkit-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
58 |
+
box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
59 |
+
display: inline-block;
|
60 |
+
font-size: 10px;
|
61 |
+
width: 1em;
|
62 |
+
height: 1em;
|
63 |
+
margin: 1.5em;
|
64 |
+
overflow: hidden;
|
65 |
+
text-indent: 100%;
|
66 |
+
}
|
67 |
+
|
68 |
|
69 |
.mlw_qmn_message_before {
|
70 |
color: #666;
|
257 |
border-radius: 3px;
|
258 |
}
|
259 |
|
260 |
+
.qmn_btn, .qmn_quiz_container .btn {
|
261 |
display: relative;
|
262 |
display: inline-block;
|
263 |
color: #666 !important;
|
276 |
transition: background .25s ease-out;
|
277 |
}
|
278 |
|
279 |
+
.qmn_btn:hover, .qmn_quiz_container .btn:hover {
|
280 |
color: #fff;
|
281 |
background: #666;
|
282 |
}
|
@@ -9,6 +9,62 @@
|
|
9 |
color:rgb(0,0,255);
|
10 |
}
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
.mlw_qmn_message_before {
|
14 |
color: #666;
|
@@ -201,7 +257,7 @@ border: 1px solid #e3e3e3;
|
|
201 |
border-radius: 3px;
|
202 |
}
|
203 |
|
204 |
-
.qmn_btn, .btn {
|
205 |
display: relative;
|
206 |
display: inline-block;
|
207 |
color: #666 !important;
|
@@ -220,7 +276,7 @@ border: 1px solid #e3e3e3;
|
|
220 |
transition: background .25s ease-out;
|
221 |
}
|
222 |
|
223 |
-
.qmn_btn:hover, .btn:hover {
|
224 |
color: #fff;
|
225 |
background: #666;
|
226 |
}
|
9 |
color:rgb(0,0,255);
|
10 |
}
|
11 |
|
12 |
+
@-moz-keyframes spinner-loader {
|
13 |
+
0% {
|
14 |
+
-moz-transform: rotate(0deg);
|
15 |
+
transform: rotate(0deg);
|
16 |
+
}
|
17 |
+
100% {
|
18 |
+
-moz-transform: rotate(360deg);
|
19 |
+
transform: rotate(360deg);
|
20 |
+
}
|
21 |
+
}
|
22 |
+
@-webkit-keyframes spinner-loader {
|
23 |
+
0% {
|
24 |
+
-webkit-transform: rotate(0deg);
|
25 |
+
transform: rotate(0deg);
|
26 |
+
}
|
27 |
+
100% {
|
28 |
+
-webkit-transform: rotate(360deg);
|
29 |
+
transform: rotate(360deg);
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
@keyframes spinner-loader {
|
34 |
+
0% {
|
35 |
+
-moz-transform: rotate(0deg);
|
36 |
+
-ms-transform: rotate(0deg);
|
37 |
+
-webkit-transform: rotate(0deg);
|
38 |
+
transform: rotate(0deg);
|
39 |
+
}
|
40 |
+
100% {
|
41 |
+
-moz-transform: rotate(360deg);
|
42 |
+
-ms-transform: rotate(360deg);
|
43 |
+
-webkit-transform: rotate(360deg);
|
44 |
+
transform: rotate(360deg);
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
/* :not(:required) hides this rule from IE9 and below */
|
49 |
+
.qsm-spinner-loader:not(:required) {
|
50 |
+
-moz-animation: spinner-loader 1500ms infinite linear;
|
51 |
+
-webkit-animation: spinner-loader 1500ms infinite linear;
|
52 |
+
animation: spinner-loader 1500ms infinite linear;
|
53 |
+
-moz-border-radius: 0.5em;
|
54 |
+
-webkit-border-radius: 0.5em;
|
55 |
+
border-radius: 0.5em;
|
56 |
+
-moz-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
57 |
+
-webkit-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
58 |
+
box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
59 |
+
display: inline-block;
|
60 |
+
font-size: 10px;
|
61 |
+
width: 1em;
|
62 |
+
height: 1em;
|
63 |
+
margin: 1.5em;
|
64 |
+
overflow: hidden;
|
65 |
+
text-indent: 100%;
|
66 |
+
}
|
67 |
+
|
68 |
|
69 |
.mlw_qmn_message_before {
|
70 |
color: #666;
|
257 |
border-radius: 3px;
|
258 |
}
|
259 |
|
260 |
+
.qmn_btn, .qmn_quiz_container .btn {
|
261 |
display: relative;
|
262 |
display: inline-block;
|
263 |
color: #666 !important;
|
276 |
transition: background .25s ease-out;
|
277 |
}
|
278 |
|
279 |
+
.qmn_btn:hover, .qmn_quiz_container .btn:hover {
|
280 |
color: #fff;
|
281 |
background: #666;
|
282 |
}
|
@@ -9,6 +9,62 @@
|
|
9 |
color:rgb(0,0,255);
|
10 |
}
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
.mlw_qmn_message_before {
|
14 |
color: #666;
|
@@ -201,7 +257,7 @@ border: 1px solid #e3e3e3;
|
|
201 |
border-radius: 3px;
|
202 |
}
|
203 |
|
204 |
-
.qmn_btn, .btn {
|
205 |
display: relative;
|
206 |
display: inline-block;
|
207 |
color: #666 !important;
|
@@ -220,7 +276,7 @@ border: 1px solid #e3e3e3;
|
|
220 |
transition: background .25s ease-out;
|
221 |
}
|
222 |
|
223 |
-
.qmn_btn:hover, .btn:hover {
|
224 |
color: #fff;
|
225 |
background: #666;
|
226 |
}
|
9 |
color:rgb(0,0,255);
|
10 |
}
|
11 |
|
12 |
+
@-moz-keyframes spinner-loader {
|
13 |
+
0% {
|
14 |
+
-moz-transform: rotate(0deg);
|
15 |
+
transform: rotate(0deg);
|
16 |
+
}
|
17 |
+
100% {
|
18 |
+
-moz-transform: rotate(360deg);
|
19 |
+
transform: rotate(360deg);
|
20 |
+
}
|
21 |
+
}
|
22 |
+
@-webkit-keyframes spinner-loader {
|
23 |
+
0% {
|
24 |
+
-webkit-transform: rotate(0deg);
|
25 |
+
transform: rotate(0deg);
|
26 |
+
}
|
27 |
+
100% {
|
28 |
+
-webkit-transform: rotate(360deg);
|
29 |
+
transform: rotate(360deg);
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
@keyframes spinner-loader {
|
34 |
+
0% {
|
35 |
+
-moz-transform: rotate(0deg);
|
36 |
+
-ms-transform: rotate(0deg);
|
37 |
+
-webkit-transform: rotate(0deg);
|
38 |
+
transform: rotate(0deg);
|
39 |
+
}
|
40 |
+
100% {
|
41 |
+
-moz-transform: rotate(360deg);
|
42 |
+
-ms-transform: rotate(360deg);
|
43 |
+
-webkit-transform: rotate(360deg);
|
44 |
+
transform: rotate(360deg);
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
/* :not(:required) hides this rule from IE9 and below */
|
49 |
+
.qsm-spinner-loader:not(:required) {
|
50 |
+
-moz-animation: spinner-loader 1500ms infinite linear;
|
51 |
+
-webkit-animation: spinner-loader 1500ms infinite linear;
|
52 |
+
animation: spinner-loader 1500ms infinite linear;
|
53 |
+
-moz-border-radius: 0.5em;
|
54 |
+
-webkit-border-radius: 0.5em;
|
55 |
+
border-radius: 0.5em;
|
56 |
+
-moz-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
57 |
+
-webkit-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
58 |
+
box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0;
|
59 |
+
display: inline-block;
|
60 |
+
font-size: 10px;
|
61 |
+
width: 1em;
|
62 |
+
height: 1em;
|
63 |
+
margin: 1.5em;
|
64 |
+
overflow: hidden;
|
65 |
+
text-indent: 100%;
|
66 |
+
}
|
67 |
+
|
68 |
|
69 |
.mlw_qmn_message_before {
|
70 |
color: #666;
|
257 |
border-radius: 3px;
|
258 |
}
|
259 |
|
260 |
+
.qmn_btn, .qmn_quiz_container .btn {
|
261 |
display: relative;
|
262 |
display: inline-block;
|
263 |
color: #666 !important;
|
276 |
transition: background .25s ease-out;
|
277 |
}
|
278 |
|
279 |
+
.qmn_btn:hover, .qmn_quiz_container .btn:hover {
|
280 |
color: #fff;
|
281 |
background: #666;
|
282 |
}
|