ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
CoursePlaceholderValues.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
23use ilObjUser;
24use ilLanguage;
25use ilException;
38
43{
50
51 public function __construct(
52 ?ilObjectCustomUserFieldsPlaceholderValues $customUserFieldsPlaceholderValues = null,
53 ?ilDefaultPlaceholderValues $defaultPlaceholderValues = null,
54 ?ilLanguage $language = null,
59 ) {
60 if (null === $language) {
61 global $DIC;
62 $language = $DIC->language();
63 $language->loadLanguageModule('certificate');
64 }
65
66 if (null === $defaultPlaceholderValues) {
67 $defaultPlaceholderValues = new ilDefaultPlaceholderValues();
68 }
69
70 if (null === $customUserFieldsPlaceholderValues) {
71 $customUserFieldsPlaceholderValues = new ilObjectCustomUserFieldsPlaceholderValues();
72 }
73
74 if (null === $objectHelper) {
76 }
77 $this->objectHelper = $objectHelper;
78
79 if (null === $participantsHelper) {
81 }
82 $this->participantsHelper = $participantsHelper;
83
84 if (null === $dateHelper) {
86 }
87 $this->dateHelper = $dateHelper;
88
89 if (null === $lpStatusHelper) {
91 }
92 $this->lpStatusHelper = $lpStatusHelper;
93
94 $this->customUserFieldsPlaceholderValuesObject = $customUserFieldsPlaceholderValues;
95 $this->defaultPlaceholderValuesObject = $defaultPlaceholderValues;
96 }
97
101 private function hasCompletionDate($possibleDate): bool
102 {
103 return
104 $possibleDate !== false &&
105 $possibleDate !== null &&
106 $possibleDate !== ''
107 ;
108 }
109
122 public function getPlaceholderValues(int $userId, int $objId): array
123 {
124 $courseObject = $this->objectHelper->getInstanceByObjId($objId);
125
126 $placeholders = $this->defaultPlaceholderValuesObject->getPlaceholderValues($userId, $objId);
127
128 $customUserFieldsPlaceholders = $this->customUserFieldsPlaceholderValuesObject->getPlaceholderValues(
129 $userId,
130 $objId
131 );
132
133 $placeholders = array_merge($placeholders, $customUserFieldsPlaceholders);
134
135 $completionDate = $this->participantsHelper->getDateTimeOfPassed($objId, $userId);
136 if (!$this->hasCompletionDate($completionDate)) {
137 $completionDate = $this->lpStatusHelper->lookupStatusChanged($objId, $userId);
138 }
139
141 $user = $this->objectHelper->getInstanceByObjId($userId);
142 if ($this->hasCompletionDate($completionDate)) {
143 $placeholders['DATE_COMPLETED'] = $this->dateHelper->formatDate($completionDate, $user);
144 $placeholders['DATETIME_COMPLETED'] = $this->dateHelper->formatDateTime($completionDate, $user);
145 }
146
147 $lng_code = $user->getLanguage();
148 $course_translation = $courseObject->getObjectTranslation();
149 $title = $courseObject->getTitle();
150 if ($course_translation instanceof ilObjectTranslation) {
151 $languages = $course_translation->getLanguages();
152 foreach ($languages as $trans) {
153 if ($trans->getLanguageCode() === $lng_code) {
154 $title = $trans->getTitle();
155
156 break;
157 }
158 }
159 }
160
161 $placeholders['COURSE_TITLE'] = ilLegacyFormElementsUtil::prepareFormOutput($title);
162
163 return $placeholders;
164 }
165
175 public function getPlaceholderValuesForPreview(int $userId, int $objId): array
176 {
177 $placeholders = $this->defaultPlaceholderValuesObject->getPlaceholderValuesForPreview($userId, $objId);
178
179 $customUserFieldsPlaceholders = $this->customUserFieldsPlaceholderValuesObject->getPlaceholderValuesForPreview(
180 $userId,
181 $objId
182 );
183
184 $placeholders = array_merge($placeholders, $customUserFieldsPlaceholders);
185
186 $object = $this->objectHelper->getInstanceByObjId($objId);
187
188 $placeholders['COURSE_TITLE'] = ilLegacyFormElementsUtil::prepareFormOutput($object->getTitle());
189
190 return $placeholders;
191 }
192}
__construct(?ilObjectCustomUserFieldsPlaceholderValues $customUserFieldsPlaceholderValues=null, ?ilDefaultPlaceholderValues $defaultPlaceholderValues=null, ?ilLanguage $language=null, ?ilCertificateObjectHelper $objectHelper=null, ?CertificateParticipantsHelper $participantsHelper=null, ?ilCertificateDateHelper $dateHelper=null, ?ilCertificateLPStatusHelper $lpStatusHelper=null)
getPlaceholderValuesForPreview(int $userId, int $objId)
This method is different then the 'getPlaceholderValues' method, this method is used to create a plac...
readonly ilObjectCustomUserFieldsPlaceholderValues $customUserFieldsPlaceholderValuesObject
readonly ilCertificateLPStatusHelper $lpStatusHelper
readonly CertificateParticipantsHelper $participantsHelper
readonly ilDefaultPlaceholderValues $defaultPlaceholderValuesObject
Class handles translation mode for an object.
Class ilDatabaseException.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Collection of basic placeholder values that can be used.
Base class for ILIAS Exception handling.
language handling
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static prepareFormOutput($a_str, bool $a_strip=false)
User class.
getPlaceholderValues(int $userId, int $objId)
This method MUST return an array that contains the actual data for the given user of the given object...
global $DIC
Definition: shib_login.php:26
$objId
Definition: xapitoken.php:57