ILIAS  release_8 Revision v8.24
class.ilLTIConsumerPlaceholderValues.php
Go to the documentation of this file.
1<?php
2
3declare(strict_types=1);
4
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 ) {
147 $placeHolders['DATE_COMPLETED'] = $this->dateHelper->formatDate($completionDate);
148 $placeHolders['DATETIME_COMPLETED'] = $this->dateHelper->formatDateTime($completionDate);
149 }
150
151 return $placeholders;
152 }
153
154 protected function getMasteryScore(ilObjLTIConsumer $object): string
155 {
156 return sprintf('%0.2f %%', $object->getMasteryScorePercent());
157 }
158
159 protected function getReachedScore(ilObjLTIConsumer $object, int $userId): string
160 {
161 $userResult = ilLTIConsumerResult::getByKeys($object->getId(), $userId);
162
163 $reachedScore = sprintf('%0.2f %%', 0);
164 if ($userResult !== null) {
165 $reachedScore = sprintf('%0.2f %%', $userResult->getResult() * 100);
166 }
167
168 return $reachedScore;
169 }
170}
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
global $DIC
Definition: feed.php:28
$objId
Definition: xapitoken.php:57