From b7f35820084a4e6bf0ac3bf753e7bcf0c4045216 Mon Sep 17 00:00:00 2001 From: moodler Date: Sun, 16 May 2004 03:14:03 +0000 Subject: [PATCH] Use overlib feedback on cloze-style questions --- mod/quiz/attempt.php | 2 ++ mod/quiz/lib.php | 19 ++++++++++++++----- mod/quiz/review.php | 2 ++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/mod/quiz/attempt.php b/mod/quiz/attempt.php index 19c6f14ecf..5046524dab 100644 --- a/mod/quiz/attempt.php +++ b/mod/quiz/attempt.php @@ -66,6 +66,8 @@ id\">$quiz->name -> $strattemptnum", "", "", true); + echo ''; // for overlib + /// Check availability if ($quiz->attempts and $attempts and count($attempts) >= $quiz->attempts) { diff --git a/mod/quiz/lib.php b/mod/quiz/lib.php index a73bc92220..975bdf9f23 100644 --- a/mod/quiz/lib.php +++ b/mod/quiz/lib.php @@ -602,6 +602,8 @@ function quiz_print_question($number, $question, $grade, $quizid, /// Prints a quiz question, any format /// $question is provided as an object + global $CFG, $THEME; + $question->questiontextformat = isset($question->questiontextformat) ? $question->questiontextformat : NULL; if ($question->qtype == DESCRIPTION) { // Special case question - has no answers etc @@ -922,6 +924,8 @@ function quiz_print_question($number, $question, $grade, $quizid, // The regex will recognize text snippets of type {#X} // where the X can be any text not containg } or white-space characters. + $strfeedback = get_string('feedback', 'quiz'); + while (ereg('\{#([^[:space:]}]*)}', $qtextremaining, $regs)) { $qtextsplits = explode($regs[0], $qtextremaining, 2); echo $qtextsplits[0]; @@ -957,11 +961,13 @@ function quiz_print_question($number, $question, $grade, $quizid, case SHORTANSWER: case NUMERICAL: if (isset($feedback[$regs[1]-1])) { - $title = " title=\"".s($feedback[$regs[1]-1])."\" "; + $title = str_replace("'", "\\'", $feedback[$regs[1]-1] ); + $popup = " onmouseover=\"return overlib('$title', CAPTION, '$strfeedback', FGCOLOR, '$THEME->cellcontent');\" ". + " onmouseout=\"return nd();\" "; } else { - $title = ""; + $popup = ''; } - echo " "; + echo " "; break; case MULTICHOICE: $outputoptions = ''; @@ -977,10 +983,13 @@ function quiz_print_question($number, $question, $grade, $quizid, $outputoptions .= ""; } if ($feedbackitem) { - echo ""; + $popup = ''; } + echo "'; break; diff --git a/mod/quiz/review.php b/mod/quiz/review.php index bcc0f0ebb8..8665af476d 100644 --- a/mod/quiz/review.php +++ b/mod/quiz/review.php @@ -80,6 +80,8 @@ -> id\">$quiz->name -> $strreview", "", "", true); + echo ''; // for overlib + print_heading($quiz->name); -- 2.39.5