diff --git a/lang/en/help/quiz/description.html b/lang/en/help/quiz/description.html new file mode 100644 index 00000000000..f15c672f8e1 --- /dev/null +++ b/lang/en/help/quiz/description.html @@ -0,0 +1,7 @@ +
Description
+ +This type of question is not really a question.
+ +All it does is print some text without requiring any answers.
+ +It can be used to print a descriptive text to be used by a following group of questions.
diff --git a/lang/en/moodle.php b/lang/en/moodle.php index a346b998838..3aa62257fd1 100644 --- a/lang/en/moodle.php +++ b/lang/en/moodle.php @@ -9,6 +9,7 @@ $string['activity'] = "Activity"; $string['activityiscurrentlyhidden'] = "Sorry, this activity is currently hidden"; $string['activitymodule'] = "Activity module"; $string['activityreport'] = "Activity report"; +$string['activitysince'] = "Activity since \$a"; $string['add'] = "Add"; $string['added'] = "Added \$a"; $string['addinganew'] = "Adding a new \$a"; diff --git a/lang/en/quiz.php b/lang/en/quiz.php index d8d10730094..5b017f882eb 100644 --- a/lang/en/quiz.php +++ b/lang/en/quiz.php @@ -46,7 +46,9 @@ $string['default'] = "Default"; $string['defaultgrade'] = "Default question grade"; $string['defaultinfo'] = "The default category for questions."; $string['deletequestioncheck'] = "Are you absolutely sure you want to delete '\$a'?"; +$string['description'] = "Description"; $string['editcategories'] = "Edit categories"; +$string['editingdescription'] = "Editing a Description"; $string['editingmatch'] = "Editing a Matching Question"; $string['editingmultichoice'] = "Editing a Multiple Choice question"; $string['editingquiz'] = "Editing quiz"; diff --git a/mod/quiz/description.html b/mod/quiz/description.html new file mode 100644 index 00000000000..7aaaf9a0a3a --- /dev/null +++ b/mod/quiz/description.html @@ -0,0 +1,57 @@ + + + if ($usehtmleditor) { + print_richedit_javascript("theform", "questiontext", "no"); + } +?> diff --git a/mod/quiz/edit.php b/mod/quiz/edit.php index c2ebdd92703..8d4dd442701 100644 --- a/mod/quiz/edit.php +++ b/mod/quiz/edit.php @@ -93,8 +93,11 @@ $questions[] = $key; $questionrecord = get_record("quiz_questions", "id", $key); + if (!empty($questionrecord->defaultgrade)) { $modform->grades[$key] = $questionrecord->defaultgrade; + } else if ($questionrecord->qtype == DESCRIPTION){ + $modform->grades[$key] = 0; } else { $modform->grades[$key] = 1; } diff --git a/mod/quiz/lib.php b/mod/quiz/lib.php index f5e7c652772..585b2b0cb0b 100644 --- a/mod/quiz/lib.php +++ b/mod/quiz/lib.php @@ -19,13 +19,15 @@ define("MULTICHOICE", "3"); define("RANDOM", "4"); define("MATCH", "5"); define("RANDOMSAMATCH", "6"); +define("DESCRIPTION", "7"); $QUIZ_QUESTION_TYPE = array ( MULTICHOICE => get_string("multichoice", "quiz"), TRUEFALSE => get_string("truefalse", "quiz"), SHORTANSWER => get_string("shortanswer", "quiz"), MATCH => get_string("match", "quiz"), RANDOM => get_string("random", "quiz"), - RANDOMSAMATCH => get_string("randomsamatch", "quiz") ); + RANDOMSAMATCH => get_string("randomsamatch", "quiz"), + DESCRIPTION => get_string("description", "quiz") ); $QUIZ_FILE_FORMAT = array ( "custom" => get_string("custom", "quiz"), "missingword" => get_string("missingword", "quiz"), @@ -60,7 +62,7 @@ function quiz_add_instance($quiz) { // The grades for every question in this quiz are stored in an array if ($quiz->grades) { foreach ($quiz->grades as $question => $grade) { - if ($question and $grade) { + if ($question) { unset($questiongrade); $questiongrade->quiz = $quiz->id; $questiongrade->question = $question; @@ -100,7 +102,7 @@ function quiz_update_instance($quiz) { if ($quiz->grades) { foreach ($quiz->grades as $question => $grade) { - if ($question and $grade) { + if ($question) { unset($questiongrade); $questiongrade->quiz = $quiz->id; $questiongrade->question = $question; @@ -376,6 +378,9 @@ function quiz_print_question_icon($question, $editlink=true) { case RANDOMSAMATCH: echo "'; + echo text_to_html($question->questiontext); + if ($question->image) { + print_file_picture($question->image, $courseid); + } + echo '
'; + return true; + } + if (empty($actualgrade)) { $actualgrade = 0; } @@ -778,7 +793,10 @@ function quiz_print_quiz_questions($quiz, $results=NULL, $questions=NULL, $shuff $questionorder = array(); foreach ($questions as $question) { - $count++; + + if ($question->qtype != DESCRIPTION) { // Description questions are not counted + $count++; + } $questionorder[] = $question->id; @@ -1377,8 +1395,10 @@ function quiz_grade_attempt_results($quiz, $questions) { $question->grade = $grades[$question->id]; } - if (!$answers = quiz_get_answers($question)) { - error("No answers defined for question id $question->id!"); + if ($question->qtype != DESCRIPTION) { // All real questions need answers defined + if (!$answers = quiz_get_answers($question)) { + error("No answers defined for question id $question->id!"); + } } $grade = 0; // default @@ -1839,6 +1859,9 @@ function quiz_save_question_options($question) { case RANDOM: break; + case DESCRIPTION: + break; + default: $result->error = "Unsupported question type ($question->qtype)!"; return $result; diff --git a/mod/quiz/pix/de.gif b/mod/quiz/pix/de.gif new file mode 100755 index 00000000000..550df5db8c4 Binary files /dev/null and b/mod/quiz/pix/de.gif differ diff --git a/mod/quiz/question.php b/mod/quiz/question.php index 92846eef83b..2c3b63d015b 100644 --- a/mod/quiz/question.php +++ b/mod/quiz/question.php @@ -107,6 +107,10 @@ $question->image = $form->image; } + if (isset($form->defaultgrade)) { + $question->defaultgrade = $form->defaultgrade; + } + if ($err = formcheck($question)) { notify(get_string("someerrorswerefound")); @@ -309,6 +313,11 @@ require("random.html"); break; + case DESCRIPTION: + print_heading(get_string("editingdescription", "quiz")); + require("description.html"); + break; + default: error("Invalid question type"); break;