ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
class.ilLTIConsumerPlaceholderValues.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
30{
31 private \ilDefaultPlaceholderValues $defaultPlaceholderValuesObject;
32
34
35 // private \ilCertificateUserObjectHelper $userObjectHelper;
36
38
40
44 private $dateHelper;
45
47
57 public function __construct(
58 ?ilDefaultPlaceholderValues $defaultPlaceholderValues = null,
59 ?ilLanguage $language = null,
61 ?ilCertificateUserObjectHelper $userObjectHelper = null,
65 ) {
66 if (null === $language) {
67 global $DIC; /* @var \ILIAS\DI\Container $DIC */
68 $language = $DIC->language();
69 }
70 $this->language = $language;
71
72 if (null === $defaultPlaceholderValues) {
73 $defaultPlaceholderValues = new ilDefaultPlaceholderValues();
74 }
75 $this->defaultPlaceholderValuesObject = $defaultPlaceholderValues;
76
77 if (null === $objectHelper) {
79 }
80 $this->objectHelper = $objectHelper;
81
82 if (null === $userObjectHelper) {
83 $userObjectHelper = new ilCertificateUserObjectHelper();
84 }
85 // $this->userObjectHelper = $userObjectHelper;
86
87 if (null === $lpStatusHelper) {
89 }
90 $this->lpStatusHelper = $lpStatusHelper;
91
92 if (null === $utilHelper) {
94 }
95 $this->utilHelper = $utilHelper;
96
97 if (null === $dateHelper) {
99 }
100 $this->dateHelper = $dateHelper;
101 }
102
108 public function getPlaceholderValuesForPreview(int $userId, int $objId): array
109 {
110 $placeholders = $this->defaultPlaceholderValuesObject->getPlaceholderValuesForPreview($userId, $objId);
111
112 $placeholders['OBJECT_TITLE'] = $this->utilHelper->prepareFormOutput($this->language->txt('lti_cert_ph_object_title'));
113 $placeholders['OBJECT_DESCRIPTION'] = $this->utilHelper->prepareFormOutput($this->language->txt('lti_cert_ph_object_description'));
114
115 $placeholders['MASTERY_SCORE'] = $this->utilHelper->prepareFormOutput($this->language->txt('lti_cert_ph_mastery_score'));
116 $placeholders['REACHED_SCORE'] = $this->utilHelper->prepareFormOutput($this->language->txt('lti_cert_ph_reached_score'));
117
118 return $placeholders;
119 }
120
129 public function getPlaceholderValues(int $userId, int $objId): array
130 {
131 $placeholders = $this->defaultPlaceholderValuesObject->getPlaceholderValues($userId, $objId);
132
133 /* @var ilObjLTIConsumer $object */
134 $object = $this->objectHelper->getInstanceByObjId($objId);
135
136 $placeholders['OBJECT_TITLE'] = $this->utilHelper->prepareFormOutput($object->getTitle());
137 $placeholders['OBJECT_DESCRIPTION'] = $this->utilHelper->prepareFormOutput($object->getDescription());
138
139 $placeholders['MASTERY_SCORE'] = $this->utilHelper->prepareFormOutput($this->getMasteryScore($object));
140 $placeholders['REACHED_SCORE'] = $this->utilHelper->prepareFormOutput($this->getReachedScore($object, $userId));
141
142 $completionDate = $this->lpStatusHelper->lookupStatusChanged($objId, $userId);
143 if ($completionDate != false &&
144 $completionDate !== null &&
145 $completionDate !== ''
146 ) {
148 $user = $this->objectHelper->getInstanceByObjId($userId);
149 $placeholders['DATE_COMPLETED'] = $this->dateHelper->formatDate($completionDate, $user);
150 $placeholders['DATETIME_COMPLETED'] = $this->dateHelper->formatDateTime($completionDate, $user);
151 }
152
153 return $placeholders;
154 }
155
156 protected function getMasteryScore(ilObjLTIConsumer $object): string
157 {
158 return sprintf('%0.2f %%', $object->getMasteryScorePercent());
159 }
160
161 protected function getReachedScore(ilObjLTIConsumer $object, int $userId): string
162 {
163 $userResult = ilLTIConsumerResult::getByKeys($object->getId(), $userId);
164
165 $reachedScore = sprintf('%0.2f %%', 0);
166 if ($userResult !== null) {
167 $reachedScore = sprintf('%0.2f %%', $userResult->getResult() * 100);
168 }
169
170 return $reachedScore;
171 }
172}
Just a wrapper class to create Unit Test for other classes.
Collection of basic placeholder values that can be used.
__construct(?ilDefaultPlaceholderValues $defaultPlaceholderValues=null, ?ilLanguage $language=null, ?ilCertificateObjectHelper $objectHelper=null, ?ilCertificateUserObjectHelper $userObjectHelper=null, ?ilCertificateLPStatusHelper $lpStatusHelper=null, ?ilCertificateUtilHelper $utilHelper=null, ?ilCertificateDateHelper $dateHelper=null)
ilDefaultPlaceholderValues $defaultPlaceholderValuesObject
getReachedScore(ilObjLTIConsumer $object, int $userId)
static getByKeys(int $a_obj_id, int $a_usr_id, ?bool $a_create=false)
Get a result by object and user key.
language handling
getPlaceholderValues(int $userId, int $objId)
This method MUST return an array that contains the actual data for the given user of the given object...
global $DIC
Definition: shib_login.php:26
$objId
Definition: xapitoken.php:57