19 declare(strict_types=1);
46 return $this->
language ?? $this->languageHelper->getCurrentLanguage();
49 abstract public function getId(): string;
51 abstract public function getTitle(): string;
61 'mail_salutation' => [
62 'placeholder' =>
'MAIL_SALUTATION',
63 'label' => $this->
getLanguage()->txt(
'mail_nacc_salutation'),
64 'supportsNestedPlaceholders' =>
true,
67 'placeholder' =>
'FIRST_NAME',
71 'placeholder' =>
'LAST_NAME',
75 'placeholder' =>
'LOGIN',
76 'label' => $this->
getLanguage()->txt(
'mail_nacc_login'),
79 'placeholder' =>
'TITLE',
80 'label' => $this->
getLanguage()->txt(
'mail_nacc_title'),
81 'supportsCondition' =>
true,
83 'firstname_lastname_superior' => [
84 'placeholder' =>
'FIRSTNAME_LASTNAME_SUPERIOR',
85 'label' => $this->
getLanguage()->txt(
'mail_firstname_last_name_superior'),
88 'placeholder' =>
'ILIAS_URL',
89 'label' => $this->
getLanguage()->txt(
'mail_nacc_ilias_url'),
91 'installation_name' => [
92 'placeholder' =>
'INSTALLATION_NAME',
93 'label' => $this->
getLanguage()->txt(
'mail_nacc_installation_name'),
103 $nested_placeholders = [];
105 if (isset($ph[
'supportsNestedPlaceholders']) && $ph[
'supportsNestedPlaceholders']) {
106 $nested_placeholders[] = $ph[
'placeholder'];
110 return $nested_placeholders;
121 return array_merge($placeholders, $specific);
133 string $placeholder_id,
134 array $context_parameters,
142 string $placeholder_id,
143 array $context_parameters,
146 if ($recipient !== null) {
150 $placeholder_id = strtolower($placeholder_id);
153 case (
'mail_salutation' === $placeholder_id && $recipient !== null):
154 $resolved = $this->
getLanguage()->txt(
'mail_salutation_n');
155 switch ($recipient->getGender()) {
157 $resolved = $this->
getLanguage()->txt(
'mail_salutation_f');
161 $resolved = $this->
getLanguage()->txt(
'mail_salutation_m');
165 $resolved = $this->
getLanguage()->txt(
'mail_salutation_n');
170 case (
'first_name' === $placeholder_id && $recipient !== null):
171 $resolved = $recipient->getFirstname();
174 case (
'last_name' === $placeholder_id && $recipient !== null):
175 $resolved = $recipient->getLastname();
178 case (
'login' === $placeholder_id && $recipient !== null):
179 $resolved = $recipient->getLogin();
182 case (
'title' === $placeholder_id && $recipient !== null):
183 $resolved = $recipient->getUTitle();
186 case 'ilias_url' === $placeholder_id:
187 $resolved = $this->envHelper->getHttpPath() .
' ';
190 case 'installation_name' === $placeholder_id:
191 $resolved = $this->envHelper->getClientId();
194 case 'firstname_lastname_superior' === $placeholder_id && $recipient !== null:
195 $ouUsers = $this->orgUnitUserService->getUsers([$recipient->getId()],
true);
196 foreach ($ouUsers as $ouUser) {
197 $superiors = $ouUser->getSuperiors();
203 $usrIdByNameMap = $this->userHelper->getUsernameMapForIds($superiorUsrIds);
205 $resolved = implode(
', ', $usrIdByNameMap);
234 $this->
language = $this->languageHelper->getLanguageByIsoCode($isoCode);
235 $this->
language->loadLanguageModule(
'mail');
OrgUnitUserService $orgUnitUserService
initLanguageByIso2Code(string $isoCode)
getSpecificPlaceholders()
resolvePlaceholder(string $placeholder_id, array $context_parameters, ilObjUser $recipient=null)
Class ilMailEnvironmentHelper.
static setLanguage(ilLanguage $a_lng)
ilMailLanguageHelper $languageHelper
initLanguage(ilObjUser $user)
resolveSpecificPlaceholder(string $placeholder_id, array $context_parameters, ilObjUser $recipient=null)
Class ilMailLanguageHelper.
__construct(OrgUnitUserService $orgUnitUserService=null, ilMailEnvironmentHelper $envHelper=null, ilMailUserHelper $usernameHelper=null, ilMailLanguageHelper $languageHelper=null)
ilMailUserHelper $userHelper
ilMailEnvironmentHelper $envHelper
language()
description: > Example for rendring a language glyph.