public function MultichoiceQuestion::delete in Quiz 8.4
Implementation of delete
Overrides QuizQuestion::delete
See also
QuizQuestion#delete()
File
- question_types/
multichoice/ lib/ Drupal/ multichoice/ MultichoiceQuestion.php, line 313 - The main classes for the multichoice question type.
Class
- MultichoiceQuestion
- Extension of QuizQuestion.
Namespace
Drupal\multichoiceCode
public function delete($only_this_version = FALSE) {
$delete_properties = db_delete('quiz_multichoice_properties')
->condition('nid', $this->node
->id());
$delete_answers = db_delete('quiz_multichoice_answers')
->condition('question_nid', $this->node
->id());
$delete_results = db_delete('quiz_multichoice_user_answers')
->condition('question_nid', $this->node
->id());
if ($only_this_version) {
$delete_properties
->condition('vid', $this->node
->getRevisionId());
$delete_answers
->condition('question_vid', $this->node
->getRevisionId());
$delete_results
->condition('question_vid', $this->node
->getRevisionId());
}
// Delete from table quiz_multichoice_user_answer_multi
if ($only_this_version) {
$user_answer_id = db_query('SELECT id FROM {quiz_multichoice_user_answers} WHERE question_nid = :nid AND question_vid = :vid', array(
':nid' => $this->node
->id(),
':vid' => $this->node
->getRevisionId(),
))
->fetchCol();
}
else {
$user_answer_id = db_query('SELECT id FROM {quiz_multichoice_user_answers} WHERE question_nid = :nid', array(
':nid' => $this->node
->id(),
))
->fetchCol();
}
db_delete('quiz_multichoice_user_answer_multi')
->condition('user_answer_id', $user_answer_id, 'IN')
->execute();
$delete_properties
->execute();
$delete_answers
->execute();
$delete_results
->execute();
parent::delete($only_this_version);
}