ILIAS  release_8 Revision v8.24
class.ilCmiXapiPlaceholderValues.php
Go to the documentation of this file.
1<?php
2
3declare(strict_types=1);
4
31{
32 private \ilDefaultPlaceholderValues $defaultPlaceholderValuesObject;
33
35
36// private \ilCertificateUserObjectHelper $userObjectHelper;
37
39
40// private ?\ilCertificateLPStatusHelper $lpStatusHelper;
41
45// private $dateHelper;
46
48
59 public function __construct(
60 ilDefaultPlaceholderValues $defaultPlaceholderValues = null,
61 ilLanguage $language = null,
63 ilCertificateUserObjectHelper $userObjectHelper = null,
64 ilCertificateLPStatusHelper $lpStatusHelper = null,
66 ilCertificateDateHelper $dateHelper = null
67 ) {
68 if (null === $language) {
69 global $DIC;
70 $language = $DIC->language();
71 }
72 $this->language = $language;
73
74 if (null === $defaultPlaceholderValues) {
75 $defaultPlaceholderValues = new ilDefaultPlaceholderValues();
76 }
77 $this->defaultPlaceholderValuesObject = $defaultPlaceholderValues;
78
79 if (null === $objectHelper) {
81 }
82 $this->objectHelper = $objectHelper;
83
84 if (null === $userObjectHelper) {
85 $userObjectHelper = new ilCertificateUserObjectHelper();
86 }
87// $this->userObjectHelper = $userObjectHelper;
88
89 if (null === $lpStatusHelper) {
90 $lpStatusHelper = new ilCertificateLPStatusHelper();
91 }
92// $this->lpStatusHelper = $lpStatusHelper;
93
94 if (null === $utilHelper) {
96 }
97 $this->utilHelper = $utilHelper;
98
99 if (null === $dateHelper) {
100 $dateHelper = new ilCertificateDateHelper();
101 }
102// $this->dateHelper = $dateHelper;
103 }
104
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
124 public function getPlaceholderValues(int $userId, int $objId): array
125 {
126 $placeholders = $this->defaultPlaceholderValuesObject->getPlaceholderValues($userId, $objId);
127
128 /* @var ilObjLTIConsumer $object */
129 $object = $this->objectHelper->getInstanceByObjId($objId);
130
131 $placeholders['OBJECT_TITLE'] = $this->utilHelper->prepareFormOutput($object->getTitle());
132 $placeholders['OBJECT_DESCRIPTION'] = $this->utilHelper->prepareFormOutput($object->getDescription());
133
134 $placeholders['REACHED_SCORE'] = $this->utilHelper->prepareFormOutput($this->getReachedScore((int) $objId, (int) $userId));
135
136 return $placeholders;
137 }
138
139 protected function getReachedScore(int $objectId, int $userId): string
140 {
141 try {
143 $objectId,
144 $userId
145 );
146 } catch (ilCmiXapiException $e) {
147 $cmixResult = ilCmiXapiResult::getEmptyInstance();
148 }
149
150 return sprintf('%0.2f %%', $cmixResult->getScore() * 100);
151 }
152}
Just a wrapper class to create Unit Test for other classes.
getPlaceholderValuesForPreview(int $userId, int $objId)
__construct(ilDefaultPlaceholderValues $defaultPlaceholderValues=null, ilLanguage $language=null, ilCertificateObjectHelper $objectHelper=null, ilCertificateUserObjectHelper $userObjectHelper=null, ilCertificateLPStatusHelper $lpStatusHelper=null, ilCertificateUtilHelper $utilHelper=null, ilCertificateDateHelper $dateHelper=null)
getReachedScore(int $objectId, int $userId)
ilDefaultPlaceholderValues $defaultPlaceholderValuesObject
static getInstanceByObjIdAndUsrId(int $objId, int $usrId)
Collection of basic placeholder values that can be used.
language handling
global $DIC
Definition: feed.php:28
$objId
Definition: xapitoken.php:57