You are here

public function QuizResultAnswerField::preRender in Quiz 6.x

Runs before any fields are rendered.

This gives the handlers some time to set up before any handler has been rendered.

Parameters

\Drupal\views\ResultRow[] $values: An array of all ResultRow objects returned from the query.

Overrides FieldPluginBase::preRender

File

src/Plugin/views/field/QuizResultAnswerField.php, line 63

Class

QuizResultAnswerField
A handler to provide a field that pulls answers from a single question on a single quiz result.

Namespace

Drupal\quiz\Plugin\views\field

Code

public function preRender(&$values) {
  $this->items = [];
  $result_ids = [];
  foreach ($values as $value) {
    $result_ids[] = $value->result_id;
  }
  $qqid = $this->options['qqid'];
  $question = QuizQuestion::load($qqid);
  $info = quiz_get_question_types();
  $className = $info[$question
    ->bundle()]['handlers']['response'];
  if ($result_ids) {
    $raids = \Drupal::entityQuery('quiz_result_answer')
      ->condition('question_id', $qqid)
      ->condition('result_id', $result_ids, 'in')
      ->execute();
    if ($raids) {
      $this->items = $className::viewsGetAnswers($raids);
    }
  }
}