ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
class.ilCmiXapiPlaceholderValues.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
31{
32 private \ilDefaultPlaceholderValues $defaultPlaceholderValuesObject;
33
35
36 // private \ilCertificateUserObjectHelper $userObjectHelper;
37
39
40 // private ?\ilCertificateLPStatusHelper $lpStatusHelper;
41
45 // private $dateHelper;
46
48
58 public function __construct(
59 ?ilDefaultPlaceholderValues $defaultPlaceholderValues = null,
60 ?ilLanguage $language = null,
62 ?ilCertificateUserObjectHelper $userObjectHelper = null,
63 ?ilCertificateLPStatusHelper $lpStatusHelper = null,
65 ?ilCertificateDateHelper $dateHelper = null
66 ) {
67 if (null === $language) {
68 global $DIC;
69 $language = $DIC->language();
70 }
71 $this->language = $language;
72
73 if (null === $defaultPlaceholderValues) {
74 $defaultPlaceholderValues = new ilDefaultPlaceholderValues();
75 }
76 $this->defaultPlaceholderValuesObject = $defaultPlaceholderValues;
77
78 if (null === $objectHelper) {
80 }
81 $this->objectHelper = $objectHelper;
82
83 if (null === $userObjectHelper) {
84 $userObjectHelper = new ilCertificateUserObjectHelper();
85 }
86 // $this->userObjectHelper = $userObjectHelper;
87
88 if (null === $lpStatusHelper) {
89 $lpStatusHelper = new ilCertificateLPStatusHelper();
90 }
91 // $this->lpStatusHelper = $lpStatusHelper;
92
93 if (null === $utilHelper) {
95 }
96 $this->utilHelper = $utilHelper;
97
98 if (null === $dateHelper) {
99 $dateHelper = new ilCertificateDateHelper();
100 }
101 // $this->dateHelper = $dateHelper;
102 }
103
107 public function getPlaceholderValuesForPreview(int $userId, int $objId): array
108 {
109 $placeholders = $this->defaultPlaceholderValuesObject->getPlaceholderValuesForPreview($userId, $objId);
110
111 $placeholders['OBJECT_TITLE'] = $this->utilHelper->prepareFormOutput($this->language->txt('lti_cert_ph_object_title'));
112 $placeholders['OBJECT_DESCRIPTION'] = $this->utilHelper->prepareFormOutput($this->language->txt('lti_cert_ph_object_description'));
113
114 $placeholders['MASTERY_SCORE'] = $this->utilHelper->prepareFormOutput($this->language->txt('lti_cert_ph_mastery_score'));
115 $placeholders['REACHED_SCORE'] = $this->utilHelper->prepareFormOutput($this->language->txt('lti_cert_ph_reached_score'));
116
117 return $placeholders;
118 }
119
123 public function getPlaceholderValues(int $userId, int $objId): array
124 {
125 $placeholders = $this->defaultPlaceholderValuesObject->getPlaceholderValues($userId, $objId);
126
127 /* @var ilObjLTIConsumer $object */
128 $object = $this->objectHelper->getInstanceByObjId($objId);
129
130 $placeholders['OBJECT_TITLE'] = $this->utilHelper->prepareFormOutput($object->getTitle());
131 $placeholders['OBJECT_DESCRIPTION'] = $this->utilHelper->prepareFormOutput($object->getDescription());
132
133 $placeholders['REACHED_SCORE'] = $this->utilHelper->prepareFormOutput($this->getReachedScore((int) $objId, (int) $userId));
134
135 return $placeholders;
136 }
137
138 protected function getReachedScore(int $objectId, int $userId): string
139 {
140 try {
142 $objectId,
143 $userId
144 );
145 } catch (ilCmiXapiException $e) {
146 $cmixResult = ilCmiXapiResult::getEmptyInstance();
147 }
148
149 return sprintf('%0.2f %%', $cmixResult->getScore() * 100);
150 }
151}
Just a wrapper class to create Unit Test for other classes.
getPlaceholderValuesForPreview(int $userId, int $objId)
getReachedScore(int $objectId, int $userId)
__construct(?ilDefaultPlaceholderValues $defaultPlaceholderValues=null, ?ilLanguage $language=null, ?ilCertificateObjectHelper $objectHelper=null, ?ilCertificateUserObjectHelper $userObjectHelper=null, ?ilCertificateLPStatusHelper $lpStatusHelper=null, ?ilCertificateUtilHelper $utilHelper=null, ?ilCertificateDateHelper $dateHelper=null)
ilDefaultPlaceholderValues $defaultPlaceholderValuesObject
static getInstanceByObjIdAndUsrId(int $objId, int $usrId)
Collection of basic placeholder values that can be used.
language handling
global $DIC
Definition: shib_login.php:26
$objId
Definition: xapitoken.php:57