ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilLTIConsumerPlaceholderValues.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2019 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
14 {
19 
23  private $objectHelper;
24 
29 
33  private $utilHelper;
34 
38  private $lpStatusHelper;
39 
43  private $dateHelper;
44 
48  private $language;
49 
60  public function __construct(
61  ilDefaultPlaceholderValues $defaultPlaceholderValues = null,
62  ilLanguage $language = null,
68  ) {
69  if (null === $language) {
70  global $DIC; /* @var \ILIAS\DI\Container $DIC */
71  $language = $DIC->language();
72  }
73  $this->language = $language;
74 
75  if (null === $defaultPlaceholderValues) {
76  $defaultPlaceholderValues = new ilDefaultPlaceholderValues();
77  }
78  $this->defaultPlaceholderValuesObject = $defaultPlaceholderValues;
79 
80  if (null === $objectHelper) {
82  }
83  $this->objectHelper = $objectHelper;
84 
85  if (null === $userObjectHelper) {
87  }
88  $this->userObjectHelper = $userObjectHelper;
89 
90  if (null === $lpStatusHelper) {
92  }
93  $this->lpStatusHelper = $lpStatusHelper;
94 
95  if (null === $utilHelper) {
97  }
98  $this->utilHelper = $utilHelper;
99 
100  if (null === $dateHelper) {
102  }
103  $this->dateHelper = $dateHelper;
104  }
105 
106  public function getPlaceholderValuesForPreview(int $userId, int $objId)
107  {
108  $placeholders = $this->defaultPlaceholderValuesObject->getPlaceholderValuesForPreview($userId, $objId);
109 
110  $placeholders['OBJECT_TITLE'] = $this->utilHelper->prepareFormOutput($this->language->txt('lti_cert_ph_object_title'));
111  $placeholders['OBJECT_DESCRIPTION'] = $this->utilHelper->prepareFormOutput($this->language->txt('lti_cert_ph_object_description'));
112 
113  $placeholders['MASTERY_SCORE'] = $this->utilHelper->prepareFormOutput($this->language->txt('lti_cert_ph_mastery_score'));
114  $placeholders['REACHED_SCORE'] = $this->utilHelper->prepareFormOutput($this->language->txt('lti_cert_ph_reached_score'));
115 
116  return $placeholders;
117  }
118 
119  public function getPlaceholderValues(int $userId, int $objId) : array
120  {
121  $placeholders = $this->defaultPlaceholderValuesObject->getPlaceholderValues($userId, $objId);
122 
123  /* @var ilObjLTIConsumer $object */
124  $object = $this->objectHelper->getInstanceByObjId($objId);
125 
126  $placeholders['OBJECT_TITLE'] = $this->utilHelper->prepareFormOutput($object->getTitle());
127  $placeholders['OBJECT_DESCRIPTION'] = $this->utilHelper->prepareFormOutput($object->getDescription());
128 
129  $placeholders['MASTERY_SCORE'] = $this->utilHelper->prepareFormOutput($this->getMasteryScore($object));
130  $placeholders['REACHED_SCORE'] = $this->utilHelper->prepareFormOutput($this->getReachedScore($object, $userId));
131 
132  $completionDate = $this->lpStatusHelper->lookupStatusChanged($objId, $userId);
133  if ($completionDate !== false &&
134  $completionDate !== null &&
135  $completionDate !== ''
136  ) {
137  $placeHolders['DATE_COMPLETED'] = $this->dateHelper->formatDate($completionDate);
138  $placeHolders['DATETIME_COMPLETED'] = $this->dateHelper->formatDateTime($completionDate);
139  }
140 
141  return $placeholders;
142  }
143 
144  protected function getMasteryScore(ilObjLTIConsumer $object) : string
145  {
146  $masteryScore = sprintf('%0.2f %%', $object->getMasteryScorePercent());
147  return $masteryScore;
148  }
149 
150  protected function getReachedScore(ilObjLTIConsumer $object, int $userId) : string
151  {
152  $userResult = ilLTIConsumerResult::getByKeys($object->getId(), $userId);
153 
154  $reachedScore = sprintf('%0.2f %%', 0);
155  if ($userResult) {
156  $reachedScore = sprintf('%0.2f %%', $userResult->getResult() * 100);
157  }
158 
159  return $reachedScore;
160  }
161 }
Collection of basic placeholder values that can be used.
static getByKeys($a_obj_id, $a_usr_id, $a_create=false)
Get a result by object and user key.
getPlaceholderValues(int $userId, int $objId)
This method MUST return an array that contains the actual data for the given user of the given object...
getReachedScore(ilObjLTIConsumer $object, int $userId)
$objId
Definition: xapitoken.php:39
__construct(ilDefaultPlaceholderValues $defaultPlaceholderValues=null, ilLanguage $language=null, ilCertificateObjectHelper $objectHelper=null, ilCertificateUserObjectHelper $userObjectHelper=null, ilCertificateLPStatusHelper $lpStatusHelper=null, ilCertificateUtilHelper $utilHelper=null, ilCertificateDateHelper $dateHelper=null)
getId()
get object id public
global $DIC
Definition: goto.php:24
getPlaceholderValuesForPreview(int $userId, int $objId)
This method is different then the &#39;getPlaceholderValues&#39; method, this method is used to create a plac...
Just a wrapper class to create Unit Test for other classes.
language()
Definition: language.php:2