You are here

public function QuizQuestionH5PResponse::getReportFormResponse in Quiz 7.4

Implements getReportFormResponse of QuizQuestionResponse interface

Overrides QuizQuestionResponse::getReportFormResponse

File

question_types/quiz_h5p/QuizQuestionH5PResponse.class.inc, line 103

Class

QuizQuestionH5PResponse

Code

public function getReportFormResponse($showpoints = TRUE, $showfeedback = TRUE, $allow_scoring = FALSE) {
  $result = db_select('quiz_h5p_user_results', 'qhur')
    ->fields('qhur')
    ->condition('question_nid', $this->question->nid)
    ->condition('question_vid', $this->question->vid)
    ->condition('result_id', $this->rid)
    ->orderBy('id', 'ASC')
    ->execute();

  // Make it easy to map questions by id
  $questionsById = array();
  foreach ($result as $record) {
    $questionsById[$record->id] = $record;
  }

  // Assemble our question tree
  foreach ($questionsById as $question) {
    if ($question->parent_id === NULL) {

      // This is the root of our tree
      $baseQuestion = $question;
    }
    elseif (isset($questionsById[$question->parent_id])) {

      // Add to parent
      $questionsById[$question->parent_id]->children[] = $question;
    }
  }

  // Process question tree and create markup for report
  if (isset($baseQuestion)) {
    $report = theme('quiz_h5p_response', array(
      'question' => $baseQuestion,
    ));
    if (!empty($report)) {
      return array(
        '#markup' => $report,
      );
    }
  }

  // No report available
  return array(
    '#no-response' => TRUE,
  );
}