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\fieldCode
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);
}
}
}