19 declare(strict_types=1);
    33         private readonly 
int $active_id,
    34         private readonly 
int $attempt_id,
    36         private readonly 
string $exam_id = 
'',
    37         private readonly 
float $reached_points = 0.0,
    38         private readonly 
float $available_points = 0.0,
    39         private readonly ?
Mark $mark = null,
    40         private readonly 
int $nr_of_answered_questions = 0,
    41         private readonly 
int $nr_of_questions_in_attempt = 0,
    42         private readonly ?
int $requested_hints_count = null,
    43         private readonly 
int $time_on_task = 0,
    44         private readonly 
int $total_time_on_task = 0,
    47         private readonly 
int $nr_of_attempts = 0,
    48         private readonly ?
int $scored_attempt = null,
    49         private readonly ?
int $rank = 0,
    50         private readonly 
StatusOfAttempt $status_of_attempt = StatusOfAttempt::NOT_YET_STARTED
    56         return $this->active_id;
    61         return $this->attempt_id;
    66         return $this->exam_id;
    71         return $this->attempt_started_date;
    76         return $this->nr_of_answered_questions;
    81         return $this->nr_of_questions_in_attempt;
    86         return $this->nr_of_answered_questions > 0;
    91         return $this->mark?->getShortName();
    96         return $this->mark?->getPassed() ?? 
false;
   101         return $this->reached_points;
   106         return $this->available_points;
   111         if ($this->reached_points === 0.0 || $this->available_points === 0.0) {
   114         return $this->reached_points / $this->available_points * 100;
   119         return $this->status_of_attempt;
   124         return $this->nr_of_attempts;
   133             $lng->
txt(
'tst_stat_result_resultspoints') => $this->reached_points
   134                 . 
' ' . strtolower($lng->
txt(
'of')) . 
' ' . $this->available_points
   136             $lng->
txt(
'tst_stat_result_resultsmarks') => $this->mark?->getShortName() ?? 
''   139         if ($this->
settings->getShowHints()) {
   140             $items[$lng->
txt(
'tst_question_hints_requested_hint_count_header')] = (string) $this->requested_hints_count;
   143         return $ui_factory->listing()->descriptive(
   146                 $lng->
txt(
'tst_stat_result_firstvisit') => $this->attempt_started_date
   147                     ?->setTimezone($environment[
'timezone'])
   148                     ->format($environment[
'datetimeformat']) ?? 
'',
   149                 $lng->
txt(
'tst_stat_result_lastvisit') => $this->last_access
   150                     ?->setTimezone($environment[
'timezone'])
   151                     ->format($environment[
'datetimeformat']) ?? 
'',
   152                 $lng->
txt(
'tst_nr_of_passes') => (string) $this->nr_of_attempts,
   153                 $lng->
txt(
'scored_pass') => (string) ($this->scored_attempt + 1),
   154                 $lng->
txt(
'tst_stat_result_rank_participant') => (string) $this->rank
   166         $diff_seconds = $time;
   167         $diff_hours = floor($diff_seconds / 3600);
   168         $diff_seconds -= $diff_hours * 3600;
   169         $diff_minutes = floor($diff_seconds / 60);
   170         $diff_seconds -= $diff_minutes * 60;
   171         return sprintf(
"%02d:%02d:%02d", $diff_hours, $diff_minutes, $diff_seconds);
 
getNrOfAnsweredQuestions()
 
A class defining marks for assessment test objects. 
 
buildHumanReadableTime(int $time)
 
__construct(private readonly int $active_id, private readonly int $attempt_id, private readonly ResultPresentationSettings $settings, private readonly string $exam_id='', private readonly float $reached_points=0.0, private readonly float $available_points=0.0, private readonly ?Mark $mark=null, private readonly int $nr_of_answered_questions=0, private readonly int $nr_of_questions_in_attempt=0, private readonly ?int $requested_hints_count=null, private readonly int $time_on_task=0, private readonly int $total_time_on_task=0, private readonly ?\DateTimeImmutable $attempt_started_date=null, private readonly ?\DateTimeImmutable $last_access=null, private readonly int $nr_of_attempts=0, private readonly ?int $scored_attempt=null, private readonly ?int $rank=0, private readonly StatusOfAttempt $status_of_attempt=StatusOfAttempt::NOT_YET_STARTED)
 
txt(string $a_topic, string $a_default_lang_fallback_mod="")
 
getHumanReadableTotalTimeOnTask()
 
getAsDescriptiveListing(Language $lng, UIFactory $ui_factory, array $environment)
 
getReachedPointsInPercent()