ILIAS  release_7 Revision v7.30-3-g800a261c036
class.ilTestPlaceholderValues.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2018 ILIAS open source, Extended GPL, see docs/LICENSE */
3
8{
13
18
23
28
32 private $utilHelper;
33
38
42 private $dateHelper;
43
47 private $language;
48
59 public function __construct(
60 ilDefaultPlaceholderValues $defaultPlaceholderValues = null,
61 ilLanguage $language = null,
68 ) {
69 if (null === $language) {
70 global $DIC;
71 $language = $DIC->language();
72 $language->loadLanguageModule('certificate');
73 }
74 $this->language = $language;
75
76 if (null === $defaultPlaceholderValues) {
77 $defaultPlaceholderValues = new ilDefaultPlaceholderValues();
78 }
79 $this->defaultPlaceholderValuesObject = $defaultPlaceholderValues;
80
81 if (null === $objectHelper) {
83 }
84 $this->objectHelper = $objectHelper;
85
86 if (null === $testObjectHelper) {
88 }
89 $this->testObjectHelper = $testObjectHelper;
90
91 if (null === $userObjectHelper) {
93 }
94 $this->userObjectHelper = $userObjectHelper;
95
96 if (null === $lpStatusHelper) {
98 }
99 $this->lpStatusHelper = $lpStatusHelper;
100
101 if (null === $utilHelper) {
103 }
104 $this->utilHelper = $utilHelper;
105
106 if (null === $dateHelper) {
108 }
109 $this->dateHelper = $dateHelper;
110 }
111
126 public function getPlaceholderValues(int $userId, int $objId) : array
127 {
129 $testObject = $this->objectHelper->getInstanceByObjId($objId);
130
131 $active_id = $testObject->getActiveIdOfUser($userId);
132 $pass = $this->testObjectHelper->getResultPass($active_id);
133
134 $result_array = &$testObject->getTestResult($active_id);
135 if (strlen($pass)) {
136 $result_array = &$testObject->getTestResult($active_id, $pass);
137 }
138
139 $passed = $this->language->txt('certificate_failed');
140 if ($result_array['test']['passed']) {
141 $passed = $this->language->txt('certificate_passed');
142 }
143
144 $percentage = 0;
145 if ($result_array['test']['total_max_points']) {
146 $percentage = ($result_array['test']['total_reached_points'] / $result_array['test']['total_max_points']) * 100;
147 }
148
149 $mark_obj = $testObject->getMarkSchema()->getMatchingMark($percentage);
150 $user_data = $this->userObjectHelper->lookupFields($userId);
151
152 $completionDate = false;
153 if ($user_data['usr_id'] > 0) {
154 $completionDate = $this->lpStatusHelper->lookupStatusChanged($objId, $userId);
155 }
156
157 $placeholders = $this->defaultPlaceholderValuesObject->getPlaceholderValues($userId, $objId);
158
159 $placeholders['RESULT_PASSED'] = $this->utilHelper->prepareFormOutput($passed);
160 $placeholders['RESULT_POINTS'] = $this->utilHelper->prepareFormOutput($result_array['test']['total_reached_points']);
161 $placeholders['RESULT_PERCENT'] = sprintf('%2.2f', $percentage) . '%';
162 $placeholders['MAX_POINTS'] = $this->utilHelper->prepareFormOutput($result_array['test']['total_max_points']);
163 $placeholders['RESULT_MARK_SHORT'] = $this->utilHelper->prepareFormOutput($mark_obj->getShortName());
164 $placeholders['RESULT_MARK_LONG'] = $this->utilHelper->prepareFormOutput($mark_obj->getOfficialName());
165 $placeholders['TEST_TITLE'] = $this->utilHelper->prepareFormOutput($testObject->getTitle());
166 $placeholders['DATE_COMPLETED'] = '';
167 $placeholders['DATETIME_COMPLETED'] = '';
168
169 if ($completionDate !== false &&
170 $completionDate !== null &&
171 $completionDate !== ''
172 ) {
173 $placeholders['DATE_COMPLETED'] = $this->dateHelper->formatDate($completionDate);
174 $placeholders['DATETIME_COMPLETED'] = $this->dateHelper->formatDateTime($completionDate);
175 }
176
177 return $placeholders;
178 }
179
189 public function getPlaceholderValuesForPreview(int $userId, int $objId) : array
190 {
191 $placeholders = $this->defaultPlaceholderValuesObject->getPlaceholderValuesForPreview($userId, $objId);
192
193 $object = $this->objectHelper->getInstanceByObjId($objId);
194
195 $placeholders['RESULT_PASSED'] = $this->utilHelper->prepareFormOutput($this->language->txt('certificate_var_result_passed'));
196 $placeholders['RESULT_POINTS'] = $this->utilHelper->prepareFormOutput($this->language->txt('certificate_var_result_points'));
197 $placeholders['RESULT_PERCENT'] = $this->utilHelper->prepareFormOutput($this->language->txt('certificate_var_result_percent'));
198 $placeholders['MAX_POINTS'] = $this->utilHelper->prepareFormOutput($this->language->txt('certificate_var_max_points'));
199 $placeholders['RESULT_MARK_SHORT'] = $this->utilHelper->prepareFormOutput($this->language->txt('certificate_var_result_mark_short'));
200 $placeholders['RESULT_MARK_LONG'] = $this->utilHelper->prepareFormOutput($this->language->txt('certificate_var_result_mark_long'));
201 $placeholders['TEST_TITLE'] = $this->utilHelper->prepareFormOutput($object->getTitle());
202
203 return $placeholders;
204 }
205}
An exception for terminatinating execution or to throw for unit testing.
Just a wrapper class to create Unit Test for other classes.
Collection of basic placeholder values that can be used.
language handling
getPlaceholderValuesForPreview(int $userId, int $objId)
This method is different then the 'getPlaceholderValues' method, this method is used to create a plac...
__construct(ilDefaultPlaceholderValues $defaultPlaceholderValues=null, ilLanguage $language=null, ilCertificateObjectHelper $objectHelper=null, ilCertificateTestObjectHelper $testObjectHelper=null, ilCertificateUserObjectHelper $userObjectHelper=null, ilCertificateLPStatusHelper $lpStatusHelper=null, ilCertificateUtilHelper $utilHelper=null, ilCertificateDateHelper $dateHelper=null)
global $DIC
Definition: goto.php:24
getPlaceholderValues(int $userId, int $objId)
This method MUST return an array that contains the actual data for the given user of the given object...
language()
Definition: language.php:2
$objId
Definition: xapitoken.php:39