Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge branch 'MDL-32464_22' of git://github.com/timhunt/moodle into M…

…OODLE_22_STABLE
  • Loading branch information...
commit 0639b9ca1a6fe2e56d7deb407fdcb42432083676 2 parents 4df4c67 + 1600029
@nebgor nebgor authored
View
31 question/format/multianswer/format.php
@@ -17,10 +17,9 @@
/**
* Embedded answer (Cloze) question importer.
*
- * @package qformat
- * @subpackage multianswer
- * @copyright 2003 Henrik Kaipe
- * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ * @package qformat_multianswer
+ * @copyright 2003 Henrik Kaipe
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
@@ -31,32 +30,36 @@
* Importer that imports a text file containing a single Multianswer question
* from a text file.
*
- * @copyright 2003 Henrik Kaipe
- * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ * @copyright 2003 Henrik Kaipe
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class qformat_multianswer extends qformat_default {
public function provide_import() {
- return true;
+ return true;
}
- protected function readquestions($lines) {
+ public function readquestions($lines) {
+ question_bank::get_qtype('multianswer'); // Ensure the multianswer code is loaded.
+
// For this class the method has been simplified as
// there can never be more than one question for a
- // multianswer import
+ // multianswer import.
$questions = array();
$questiontext = array();
$questiontext['text'] = implode('', $lines);
- $questiontext['format'] = 0 ;
+ $questiontext['format'] = FORMAT_MOODLE;
$questiontext['itemid'] = '';
$question = qtype_multianswer_extract_question($questiontext);
- $question->questiontext = $question->questiontext['text'] ;
- $question->questiontextformat = 0 ;
+ $question->questiontext = $question->questiontext['text'];
+ $question->questiontextformat = 0;
- $question->qtype = MULTIANSWER;
+ $question->qtype = 'multianswer';
$question->generalfeedback = '';
- $question->course = $this->course;
+ $question->generalfeedbackformat = FORMAT_MOODLE;
+ $question->length = 1;
+ $question->penalty = 0.3333333;
if (!empty($question)) {
$name = html_to_text(implode(' ', $lines));
View
6 question/type/multianswer/questiontype.php
@@ -303,7 +303,7 @@ function qtype_multianswer_extract_question($text) {
$question->defaultmark = 0; // Will be increased for each answer norm
for ($positionkey = 1;
- preg_match('/'.ANSWER_REGEX.'/', $question->questiontext['text'], $answerregs);
+ preg_match('/'.ANSWER_REGEX.'/s', $question->questiontext['text'], $answerregs);
++$positionkey) {
$wrapped = new stdClass();
$wrapped->generalfeedback['text'] = '';
@@ -389,7 +389,7 @@ function qtype_multianswer_extract_question($text) {
$answerindex = 0;
$remainingalts = $answerregs[ANSWER_REGEX_ALTERNATIVES];
- while (preg_match('/~?'.ANSWER_ALTERNATIVE_REGEX.'/', $remainingalts, $altregs)) {
+ while (preg_match('/~?'.ANSWER_ALTERNATIVE_REGEX.'/s', $remainingalts, $altregs)) {
if ('=' == $altregs[ANSWER_ALTERNATIVE_REGEX_FRACTION]) {
$wrapped->fraction["$answerindex"] = '1';
} else if ($percentile = $altregs[ANSWER_ALTERNATIVE_REGEX_PERCENTILE_FRACTION]) {
@@ -411,7 +411,7 @@ function qtype_multianswer_extract_question($text) {
}
if (!empty($answerregs[ANSWER_REGEX_ANSWER_TYPE_NUMERICAL])
- && preg_match('~'.NUMERICAL_ALTERNATIVE_REGEX.'~',
+ && preg_match('~'.NUMERICAL_ALTERNATIVE_REGEX.'~s',
$altregs[ANSWER_ALTERNATIVE_REGEX_ANSWER], $numregs)) {
$wrapped->answer[] = $numregs[NUMERICAL_CORRECT_ANSWER];
if (array_key_exists(NUMERICAL_ABS_ERROR_MARGIN, $numregs)) {
Please sign in to comment.
Something went wrong with that request. Please try again.