function Quiz::copyFromRevision in Quiz 8.6
Same name and namespace in other branches
- 8.5 src/Entity/Quiz.php \Drupal\quiz\Entity\Quiz::copyFromRevision()
- 6.x src/Entity/Quiz.php \Drupal\quiz\Entity\Quiz::copyFromRevision()
Copy questions to a new quiz revision.
Parameters
Quiz $old_quiz: The old quiz revision.
File
- src/
Entity/ Quiz.php, line 804
Class
- Quiz
- Defines the Quiz entity class.
Namespace
Drupal\quiz\EntityCode
function copyFromRevision(Quiz $old_quiz) {
$quiz_questions = \Drupal::entityTypeManager()
->getStorage('quiz_question_relationship')
->loadByProperties([
'quiz_vid' => $old_quiz
->getRevisionId(),
]);
foreach ($quiz_questions as $quiz_question) {
$new_question = $quiz_question
->createDuplicate();
$new_question
->set('quiz_vid', $this
->getRevisionId());
$new_question
->set('quiz_id', $this
->id());
$old_id = $quiz_question
->id();
$new_question
->save();
$new_questions[$old_id] = $new_question;
}
foreach ($new_questions as $old_id => $quiz_question) {
if (!$quiz_question
->get('qqr_pid')
->isEmpty()) {
$quiz_question
->set('qqr_pid', $new_questions[$quiz_question
->get('qqr_pid')
->getString()]
->id());
$quiz_question
->save();
}
}
}