ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
class.ilDefaultPlaceholderValues.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 require_once 'Services/Calendar/classes/class.ilDateTime.php'; // Required because of global contant IL_CAL_DATE
22 
28 {
29  private readonly array $placeholder;
32  private readonly int $dateFormat;
33  private readonly ilLanguage $language;
36  private ?ilLanguage $user_language = null;
37 
38  public function __construct(
39  ?ilCertificateObjectHelper $objectHelper = null,
40  ?ilCertificateDateHelper $dateHelper = null,
41  ?int $dateFormat = null,
42  ?ilLanguage $language = null,
43  ?ilCertificateUtilHelper $utilHelper = null,
44  ?ilUserDefinedFieldsPlaceholderValues $userDefinedFieldsPlaceholderValues = null,
45  private readonly int $birthdayDateFormat = IL_CAL_DATE
46  ) {
47  if (null === $objectHelper) {
48  $objectHelper = new ilCertificateObjectHelper();
49  }
50  $this->objectHelper = $objectHelper;
51 
52  if (null === $dateHelper) {
53  $dateHelper = new ilCertificateDateHelper();
54  }
55  $this->dateHelper = $dateHelper;
56 
57  if (null === $dateFormat) {
58  $dateFormat = IL_CAL_UNIX;
59  }
60  $this->dateFormat = $dateFormat;
61 
62  if (null === $language) {
63  global $DIC;
64  $language = $DIC->language();
65  $language->loadLanguageModule('certificate');
66  }
67  $this->language = $language;
68 
69  if (null === $utilHelper) {
70  $utilHelper = new ilCertificateUtilHelper();
71  }
72  $this->utilHelper = $utilHelper;
73 
74  if (null === $userDefinedFieldsPlaceholderValues) {
75  $userDefinedFieldsPlaceholderValues = new ilUserDefinedFieldsPlaceholderValues();
76  }
77  $this->userDefinedFieldsPlaceholderValues = $userDefinedFieldsPlaceholderValues;
78 
79  $this->placeholder = [
80  'USER_LOGIN' => '',
81  'USER_FULLNAME' => '',
82  'USER_FIRSTNAME' => '',
83  'USER_LASTNAME' => '',
84  'USER_TITLE' => '',
85  'USER_SALUTATION' => '',
86  'USER_BIRTHDAY' => '',
87  'USER_INSTITUTION' => '',
88  'USER_DEPARTMENT' => '',
89  'USER_STREET' => '',
90  'USER_CITY' => '',
91  'USER_ZIPCODE' => '',
92  'USER_COUNTRY' => '',
93  'USER_MATRICULATION' => '',
94  'DATE' => '',
95  'DATETIME' => '',
96  'DATE_COMPLETED' => '',
97  'DATETIME_COMPLETED' => '',
98  ];
99  }
100 
108  public function getPlaceholderValues(int $userId, int $objId): array
109  {
111  $user = $this->objectHelper->getInstanceByObjId($userId);
112  if (!$user instanceof ilObjUser) {
113  throw new ilException('The entered id: ' . $userId . ' is not an user object');
114  }
115  $user_lng = $this->getUserLanguage($user);
116  $placeholder = $this->placeholder;
117 
118  $placeholder['USER_LOGIN'] = $this->utilHelper->prepareFormOutput((trim($user->getLogin())));
119  $placeholder['USER_FULLNAME'] = $this->utilHelper->prepareFormOutput((trim($user->getFullname())));
120  $placeholder['USER_FIRSTNAME'] = $this->utilHelper->prepareFormOutput((trim($user->getFirstname())));
121  $placeholder['USER_LASTNAME'] = $this->utilHelper->prepareFormOutput((trim($user->getLastname())));
122  $placeholder['USER_TITLE'] = $this->utilHelper->prepareFormOutput((trim($user->getUTitle())));
123 
124  $salutation = '';
125  $gender = $user->getGender();
126  if (trim($gender) !== '' && strtolower($gender) !== 'n') {
127  $salutation = $this->utilHelper->prepareFormOutput($user_lng->txt("salutation_" . trim($gender)));
128  }
129 
130  $placeholder['USER_SALUTATION'] = $salutation;
131 
132  $birthday = '';
133  $dateObject = $user->getBirthday();
134  if (null !== $dateObject) {
135  $birthday = $this->dateHelper->formatDate($dateObject, $this->birthdayDateFormat);
136  }
137 
138  $placeholder['USER_BIRTHDAY'] = $this->utilHelper->prepareFormOutput((trim($birthday)));
139  $placeholder['USER_INSTITUTION'] = $this->utilHelper->prepareFormOutput((trim($user->getInstitution())));
140  $placeholder['USER_DEPARTMENT'] = $this->utilHelper->prepareFormOutput((trim($user->getDepartment())));
141  $placeholder['USER_STREET'] = $this->utilHelper->prepareFormOutput((trim($user->getStreet())));
142  $placeholder['USER_CITY'] = $this->utilHelper->prepareFormOutput((trim($user->getCity())));
143  $placeholder['USER_ZIPCODE'] = $this->utilHelper->prepareFormOutput((trim($user->getZipcode())));
144  $placeholder['USER_COUNTRY'] = $this->utilHelper->prepareFormOutput((trim($user->getCountry())));
145  $placeholder['USER_MATRICULATION'] = $this->utilHelper->prepareFormOutput((trim($user->getMatriculation())));
146  $placeholder['DATE'] = $this->utilHelper->prepareFormOutput((trim($this->dateHelper->formatDate(
147  time(),
148  $this->dateFormat
149  ))));
150  $placeholder['DATETIME'] = $this->utilHelper->prepareFormOutput((trim($this->dateHelper->formatDateTime(
151  time(),
152  $this->dateFormat
153  ))));
154 
155  return array_merge(
156  $placeholder,
157  $this->userDefinedFieldsPlaceholderValues->getPlaceholderValues($userId, $objId)
158  );
159  }
160 
170  public function getPlaceholderValuesForPreview(int $userId, int $objId): array
171  {
172  $previewPlacholderValues = [
173  "USER_LOGIN" => $this->utilHelper->prepareFormOutput($this->language->txt("certificate_var_user_login")),
174  "USER_FULLNAME" => $this->utilHelper->prepareFormOutput($this->language->txt("certificate_var_user_fullname")),
175  "USER_FIRSTNAME" => $this->utilHelper->prepareFormOutput($this->language->txt("certificate_var_user_firstname")),
176  "USER_LASTNAME" => $this->utilHelper->prepareFormOutput($this->language->txt("certificate_var_user_lastname")),
177  "USER_TITLE" => $this->utilHelper->prepareFormOutput($this->language->txt("certificate_var_user_title")),
178  "USER_SALUTATION" => $this->utilHelper->prepareFormOutput($this->language->txt("certificate_var_user_salutation")),
179  "USER_BIRTHDAY" => $this->utilHelper->prepareFormOutput((trim($this->dateHelper->formatDate(
180  time(),
181  $this->dateFormat
182  )))),
183  "USER_INSTITUTION" => $this->utilHelper->prepareFormOutput($this->language->txt("certificate_var_user_institution")),
184  "USER_DEPARTMENT" => $this->utilHelper->prepareFormOutput($this->language->txt("certificate_var_user_department")),
185  "USER_STREET" => $this->utilHelper->prepareFormOutput($this->language->txt("certificate_var_user_street")),
186  "USER_CITY" => $this->utilHelper->prepareFormOutput($this->language->txt("certificate_var_user_city")),
187  "USER_ZIPCODE" => $this->utilHelper->prepareFormOutput($this->language->txt("certificate_var_user_zipcode")),
188  "USER_COUNTRY" => $this->utilHelper->prepareFormOutput($this->language->txt("certificate_var_user_country")),
189  "USER_MATRICULATION" => $this->utilHelper->prepareFormOutput($this->language->txt("certificate_var_user_matriculation")),
190  'DATE' => $this->utilHelper->prepareFormOutput((trim($this->dateHelper->formatDate(
191  time(),
192  $this->dateFormat
193  )))),
194  'DATETIME' => $this->utilHelper->prepareFormOutput((trim($this->dateHelper->formatDateTime(
195  time(),
196  $this->dateFormat
197  )))),
198  'DATE_COMPLETED' => $this->utilHelper->prepareFormOutput((trim($this->dateHelper->formatDate(
199  time(),
200  $this->dateFormat
201  )))),
202  'DATETIME_COMPLETED' => $this->utilHelper->prepareFormOutput((trim($this->dateHelper->formatDateTime(
203  time(),
204  $this->dateFormat
205  ))))
206  ];
207 
208  return array_merge(
209  $previewPlacholderValues,
210  $this->userDefinedFieldsPlaceholderValues->getPlaceholderValuesForPreview($userId, $objId)
211  );
212  }
213 
214  private function getUserLanguage(ilObjUser $user): ilLanguage
215  {
216  if ($this->user_language instanceof ilLanguage) {
217  return $this->user_language;
218  }
219  $language = new ilLanguage($user->getLanguage());
220  $language->loadLanguageModule('certificate');
221  $this->user_language = $language;
222  return $language;
223  }
224 
228  public function setUserLanguage(ilLanguage $language): void
229  {
230  $this->user_language = $language;
231  }
232 }
Collection of basic placeholder values that can be used.
readonly ilUserDefinedFieldsPlaceholderValues $userDefinedFieldsPlaceholderValues
$objId
Definition: xapitoken.php:57
loadLanguageModule(string $a_module)
Load language module.
const IL_CAL_UNIX
readonly ilCertificateUtilHelper $utilHelper
__construct(?ilCertificateObjectHelper $objectHelper=null, ?ilCertificateDateHelper $dateHelper=null, ?int $dateFormat=null, ?ilLanguage $language=null, ?ilCertificateUtilHelper $utilHelper=null, ?ilUserDefinedFieldsPlaceholderValues $userDefinedFieldsPlaceholderValues=null, private readonly int $birthdayDateFormat=IL_CAL_DATE)
getPlaceholderValuesForPreview(int $userId, int $objId)
This method is different then the &#39;getPlaceholderValues&#39; method, this method is used to create a plac...
global $DIC
Definition: feed.php:28
Just a wrapper class to create Unit Test for other classes.
const IL_CAL_DATE
readonly ilCertificateDateHelper $dateHelper
getPlaceholderValues(int $userId, int $objId)
This method MUST return an array that contains the actual data for the given user of the given object...
readonly ilCertificateObjectHelper $objectHelper