ILIAS  release_8 Revision v8.23
class.ilCmiXapiPlaceholderValues.php
Go to the documentation of this file.
1 <?php
2 
3 declare(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,
62  ilCertificateObjectHelper $objectHelper = null,
63  ilCertificateUserObjectHelper $userObjectHelper = null,
64  ilCertificateLPStatusHelper $lpStatusHelper = null,
65  ilCertificateUtilHelper $utilHelper = 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) {
80  $objectHelper = new ilCertificateObjectHelper();
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) {
95  $utilHelper = new ilCertificateUtilHelper();
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 }
getPlaceholderValuesForPreview(int $userId, int $objId)
Collection of basic placeholder values that can be used.
ilDefaultPlaceholderValues $defaultPlaceholderValuesObject
$objId
Definition: xapitoken.php:57
getReachedScore(int $objectId, int $userId)
static getInstanceByObjIdAndUsrId(int $objId, int $usrId)
global $DIC
Definition: feed.php:28
__construct(ilDefaultPlaceholderValues $defaultPlaceholderValues=null, ilLanguage $language=null, ilCertificateObjectHelper $objectHelper=null, ilCertificateUserObjectHelper $userObjectHelper=null, ilCertificateLPStatusHelper $lpStatusHelper=null, ilCertificateUtilHelper $utilHelper=null, ilCertificateDateHelper $dateHelper=null)
Just a wrapper class to create Unit Test for other classes.
language handling