Skip to content

Commit

Permalink
Course Backup: Fix options in Mutiple Answers True/False - refs BT#19319
Browse files Browse the repository at this point in the history
  • Loading branch information
cfasanando committed Oct 30, 2021
1 parent 7570f98 commit 9f9a049
Showing 1 changed file with 42 additions and 29 deletions.
71 changes: 42 additions & 29 deletions src/Chamilo/CourseBundle/Component/CourseCopy/CourseRestorer.php
Expand Up @@ -2219,38 +2219,51 @@ public function restore_quiz_question($id, $idColumn = true)
}
}
} else {
$new_options = [];
if (isset($question->question_options)) {
foreach ($question->question_options as $obj) {
$item = [];
$item['question_id'] = $new_id;
$item['c_id'] = $this->destination_course_id;
$item['name'] = $obj->obj->name;
$item['position'] = $obj->obj->position;
$question_option_id = Database::insert($table_options, $item);

if ($question_option_id) {
$new_options[$obj->obj->id] = $question_option_id;
$sql = "UPDATE $table_options SET id = iid WHERE iid = $question_option_id";
Database::query($sql);
}
if (count($question->question_options) < 3) {
$options = [1 => 'True', 2 => 'False', 3 => 'DoubtScore'];
for ($i = 1; $i <= 3; $i++) {
$lastId = Question::saveQuestionOption(
$new_id,
$options[$i],
$this->destination_course_id,
$i
);
$correct[$i] = $lastId;
}
} else {
$new_options = [];
if (isset($question->question_options)) {
foreach ($question->question_options as $obj) {
$item = [];
$item['question_id'] = $new_id;
$item['c_id'] = $this->destination_course_id;
$item['name'] = $obj->obj->name;
$item['position'] = $obj->obj->position;
$question_option_id = Database::insert($table_options, $item);

if ($question_option_id) {
$new_options[$obj->obj->id] = $question_option_id;
$sql = "UPDATE $table_options SET id = iid WHERE iid = $question_option_id";
Database::query($sql);
}
}

foreach ($correctAnswers as $answer_id => $correct_answer) {
$params = [];
$params['correct'] = isset($new_options[$correct_answer]) ? $new_options[$correct_answer] : '';
Database::update(
$table_ans,
$params,
[
'iid = ? AND c_id = ? AND question_id = ? ' => [
$answer_id,
$this->destination_course_id,
$new_id,
foreach ($correctAnswers as $answer_id => $correct_answer) {
$params = [];
$params['correct'] = isset($new_options[$correct_answer]) ? $new_options[$correct_answer] : '';
Database::update(
$table_ans,
$params,
[
'iid = ? AND c_id = ? AND question_id = ? ' => [
$answer_id,
$this->destination_course_id,
$new_id,
],
],
],
false
);
false
);
}
}
}
}
Expand Down

0 comments on commit 9f9a049

Please sign in to comment.