public function DDLinesQuestion::delete in Quiz 8.4
Implementation of delete
Overrides QuizQuestion::delete
See also
QuizQuestion#delete()
File
- question_types/
quiz_ddlines/ lib/ Drupal/ quiz_ddlines/ DDLinesQuestion.php, line 281 - The main classes for the quiz_ddlines question type.
Class
- DDLinesQuestion
- Extension of QuizQuestion.
Namespace
Drupal\quiz_ddlinesCode
public function delete($only_this_version = FALSE) {
$delete_node = db_delete('quiz_ddlines_node')
->condition('nid', $this->node
->id());
$delete_results = db_delete('quiz_ddlines_user_answers')
->condition('question_nid', $this->node
->id());
if ($only_this_version) {
$delete_node
->condition('vid', $this->node
->getRevisionId());
$delete_results
->condition('question_vid', $this->node
->getRevisionId());
}
// Delete from table quiz_ddlines_user_answer_multi
$user_answer_ids = array();
if ($only_this_version) {
$query = db_query('SELECT id FROM {quiz_ddlines_user_answers} WHERE question_nid = :nid AND question_vid = :vid', array(
':nid' => $this->node
->id(),
':vid' => $this->node
->getRevisionId(),
));
}
else {
$query = db_query('SELECT id FROM {quiz_ddlines_user_answers} WHERE question_nid = :nid', array(
':nid' => $this->node
->id(),
));
}
while ($user_answer = $query
->fetch()) {
$user_answer_ids[] = $user_answer->id;
}
if (count($user_answer_ids)) {
db_delete('quiz_ddlines_user_answer_multi')
->condition('user_answer_id', $user_answer_ids, 'IN')
->execute();
}
$delete_node
->execute();
$delete_results
->execute();
parent::delete($only_this_version);
}