From 569e76cee778bd5ec9ef9fdb1eaeeb225fe92d7c Mon Sep 17 00:00:00 2001 From: ofriDevlion <162870339+ofriDevlion@users.noreply.github.com> Date: Wed, 28 Jan 2026 10:53:31 +0200 Subject: [PATCH] Update questiontype.php Fix missing options and subquestions during restore for issue 60 --- questiontype.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/questiontype.php b/questiontype.php index 21f3dad..36c7835 100644 --- a/questiontype.php +++ b/questiontype.php @@ -41,10 +41,19 @@ class qtype_ddmatch extends question_type { public function get_question_options($question) { global $DB; parent::get_question_options($question); - $question->options = $DB->get_record('qtype_ddmatch_options', - array('questionid' => $question->id)); - $question->options->subquestions = $DB->get_records('qtype_ddmatch_subquestions', - array('questionid' => $question->id), 'id ASC'); + $question->options = $DB->get_record('qtype_ddmatch_options',array('questionid' => $question->id)); + if ($question->options === false) { + $question->options = new stdClass(); + $question->options->questionid = $question->id; + $question->options->subquestions = array(); + $question->options->shuffleanswers = 1; + return false; + } + $question->options->subquestions = $DB->get_records('qtype_ddmatch_subquestions', array('questionid' => $question->id), 'id ASC'); + // Even if options exist, subquestions might not be restored yet + if ($question->options->subquestions === false) { + $question->options->subquestions = array(); + } return true; }