You are here

public function QuizResultController::delete in Quiz 7.5

Same name and namespace in other branches
  1. 7.6 includes/QuizResultController.class.inc \QuizResultController::delete()

Implements EntityAPIControllerInterface.

Parameters

$transaction: Optionally a DatabaseTransaction object to use. Allows overrides to pass in their transaction object.

Overrides EntityAPIController::delete

File

includes/QuizResultController.class.inc, line 5

Class

QuizResultController

Code

public function delete($ids, \DatabaseTransaction $transaction = NULL) {
  foreach ($ids as $result_id) {

    // Fire the question types' implementations of question attempts deletion.
    $sql = 'SELECT result_id, question_nid, question_vid FROM {quiz_node_results_answers}
          WHERE result_id = (:result_id)';
    $result = db_query($sql, array(
      ':result_id' => $result_id,
    ));
    foreach ($result as $record) {
      if ($response = _quiz_question_response_get_instance($result_id, NULL, NULL, $record->question_nid, $record->question_vid)) {
        $response
          ->delete();
      }
    }

    // Delete Quiz's records of any attempts at a question.
    db_delete('quiz_node_results_answers')
      ->condition('result_id', $result_id)
      ->execute();
  }
  parent::delete($ids, $transaction);
}