function QuizResultViewBuilder::getSummaryText in Quiz 8.5
Same name and namespace in other branches
- 8.6 src/View/QuizResultViewBuilder.php \Drupal\quiz\View\QuizResultViewBuilder::getSummaryText()
- 6.x src/View/QuizResultViewBuilder.php \Drupal\quiz\View\QuizResultViewBuilder::getSummaryText()
Get the summary message for a completed quiz result.
Summary is determined by the pass/fail configurations on the quiz.
Parameters
QuizResult $quiz_result: The quiz result.
Return value
Render array.
1 call to QuizResultViewBuilder::getSummaryText()
- QuizResultViewBuilder::alterBuild in src/
View/ QuizResultViewBuilder.php - Specific per-entity building.
File
- src/
View/ QuizResultViewBuilder.php, line 108
Class
Namespace
Drupal\quiz\ViewCode
function getSummaryText(QuizResult $quiz_result) {
$config = Drupal::config('quiz.settings');
$quiz = Drupal::entityTypeManager()
->getStorage('quiz')
->loadRevision($quiz_result
->get('vid')
->getString());
$token = Drupal::token();
$account = $quiz_result
->get('uid')
->referencedEntities()[0];
$token_types = array(
'global' => NULL,
'node' => $quiz,
'user' => $account,
'quiz_result' => $quiz_result,
);
$summary = array();
if ($paragraph = $this
->getRangeFeedback($quiz, $quiz_result
->get('score')
->getString())) {
// Found quiz feedback based on a grade range.
$token = Drupal::token();
$paragraph_text = $paragraph
->get('quiz_feedback')
->get(0)
->getValue();
$summary['result'] = check_markup($token
->replace($paragraph_text['value'], $token_types), $paragraph_text['format']);
}
$pass_text = $quiz
->get('summary_pass')
->getValue()[0];
$default_text = $quiz
->get('summary_default')
->getValue()[0];
if ($config
->get('use_passfail', 1) && $quiz
->get('pass_rate')
->getString() > 0) {
if ($quiz_result
->get('score')
->getString() >= $quiz
->get('pass_rate')
->getString()) {
// Pass/fail is enabled and user passed.
$summary['passfail'] = check_markup($token
->replace($pass_text['value'], $token_types), $pass_text['format']);
}
else {
// User failed.
$summary['passfail'] = check_markup($token
->replace($default_text['value'], $token_types), $default_text['format']);
}
}
else {
// Pass/fail is not being used so display the default.
$summary['passfail'] = check_markup($token
->replace($default_text['value'], $token_types), $default_text['format']);
}
return $summary;
}