ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilLTIConsumerPlaceholderValues.php
Go to the documentation of this file.
1 <?php
2 
3 declare(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,
60  ?ilCertificateObjectHelper $objectHelper = null,
61  ?ilCertificateUserObjectHelper $userObjectHelper = null,
62  ?ilCertificateLPStatusHelper $lpStatusHelper = null,
63  ?ilCertificateUtilHelper $utilHelper = 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) {
78  $objectHelper = new ilCertificateObjectHelper();
79  }
80  $this->objectHelper = $objectHelper;
81 
82  if (null === $userObjectHelper) {
83  $userObjectHelper = new ilCertificateUserObjectHelper();
84  }
85 // $this->userObjectHelper = $userObjectHelper;
86 
87  if (null === $lpStatusHelper) {
88  $lpStatusHelper = new ilCertificateLPStatusHelper();
89  }
90  $this->lpStatusHelper = $lpStatusHelper;
91 
92  if (null === $utilHelper) {
93  $utilHelper = new ilCertificateUtilHelper();
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 }
Collection of basic placeholder values that can be used.
getReachedScore(ilObjLTIConsumer $object, int $userId)
$objId
Definition: xapitoken.php:57
global $DIC
Definition: feed.php:28
ilDefaultPlaceholderValues $defaultPlaceholderValuesObject
static getByKeys(int $a_obj_id, int $a_usr_id, ?bool $a_create=false)
Get a result by object and user key.
Just a wrapper class to create Unit Test for other classes.
language handling
__construct(?ilDefaultPlaceholderValues $defaultPlaceholderValues=null, ?ilLanguage $language=null, ?ilCertificateObjectHelper $objectHelper=null, ?ilCertificateUserObjectHelper $userObjectHelper=null, ?ilCertificateLPStatusHelper $lpStatusHelper=null, ?ilCertificateUtilHelper $utilHelper=null, ?ilCertificateDateHelper $dateHelper=null)