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'),
66 'placeholder' =>
'FIRST_NAME',
70 'placeholder' =>
'LAST_NAME',
74 'placeholder' =>
'LOGIN',
75 'label' => $this->
getLanguage()->txt(
'mail_nacc_login'),
78 'placeholder' =>
'TITLE',
79 'label' => $this->
getLanguage()->txt(
'mail_nacc_title'),
80 'supportsCondition' =>
true,
82 'firstname_lastname_superior' => [
83 'placeholder' =>
'FIRSTNAME_LASTNAME_SUPERIOR',
84 'label' => $this->
getLanguage()->txt(
'mail_firstname_last_name_superior'),
87 'placeholder' =>
'ILIAS_URL',
88 'label' => $this->
getLanguage()->txt(
'mail_nacc_ilias_url'),
90 'installation_name' => [
91 'placeholder' =>
'INSTALLATION_NAME',
92 'label' => $this->
getLanguage()->txt(
'mail_nacc_installation_name'),
105 return array_merge($placeholders, $specific);
117 string $placeholder_id,
118 array $context_parameters,
126 string $placeholder_id,
127 array $context_parameters,
130 if ($recipient !==
null) {
134 $placeholder_id = strtolower($placeholder_id);
137 case (
'mail_salutation' === $placeholder_id && $recipient !==
null):
138 $resolved = $this->
getLanguage()->txt(
'mail_salutation_n');
139 switch ($recipient->getGender()) {
141 $resolved = $this->
getLanguage()->txt(
'mail_salutation_f');
145 $resolved = $this->
getLanguage()->txt(
'mail_salutation_m');
149 $resolved = $this->
getLanguage()->txt(
'mail_salutation_n');
154 case (
'first_name' === $placeholder_id && $recipient !==
null):
155 $resolved = $recipient->getFirstname();
158 case (
'last_name' === $placeholder_id && $recipient !==
null):
159 $resolved = $recipient->getLastname();
162 case (
'login' === $placeholder_id && $recipient !==
null):
163 $resolved = $recipient->getLogin();
166 case (
'title' === $placeholder_id && $recipient !==
null):
167 $resolved = $recipient->getUTitle();
170 case 'ilias_url' === $placeholder_id:
171 $resolved = $this->envHelper->getHttpPath() .
' ';
174 case 'installation_name' === $placeholder_id:
175 $resolved = $this->envHelper->getClientId();
178 case 'firstname_lastname_superior' === $placeholder_id && $recipient !==
null:
179 $ouUsers = $this->orgUnitUserService->getUsers([$recipient->getId()],
true);
180 foreach ($ouUsers as $ouUser) {
181 $superiors = $ouUser->getSuperiors();
187 $usrIdByNameMap = $this->userHelper->getUsernameMapForIds($superiorUsrIds);
189 $resolved = implode(
', ', $usrIdByNameMap);
218 $this->
language = $this->languageHelper->getLanguageByIsoCode($isoCode);
219 $this->
language->loadLanguageModule(
'mail');
OrgUnitUserService $orgUnitUserService
initLanguageByIso2Code(string $isoCode)
resolvePlaceholder(string $placeholder_id, array $context_parameters, ?ilObjUser $recipient=null)
getSpecificPlaceholders()
Class ilMailEnvironmentHelper.
static setLanguage(ilLanguage $a_lng)
ilMailLanguageHelper $languageHelper
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
initLanguage(ilObjUser $user)
Class ilMailLanguageHelper.
ilMailUserHelper $userHelper
resolveSpecificPlaceholder(string $placeholder_id, array $context_parameters, ?ilObjUser $recipient=null)
ilMailEnvironmentHelper $envHelper
language()
description: > Example for rendring a language glyph.
__construct(?OrgUnitUserService $orgUnitUserService=null, ?ilMailEnvironmentHelper $envHelper=null, ?ilMailUserHelper $usernameHelper=null, ?ilMailLanguageHelper $languageHelper=null)