19 declare(strict_types=1);
46 return $this->
language ?? $this->language_helper->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 ($placeholder_id ===
'mail_salutation' && $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 ($placeholder_id ===
'first_name' && $recipient !==
null):
171 $resolved = $recipient->getFirstname();
174 case ($placeholder_id ===
'last_name' && $recipient !==
null):
175 $resolved = $recipient->getLastname();
178 case ($placeholder_id ===
'login' && $recipient !==
null):
179 $resolved = $recipient->getLogin();
182 case ($placeholder_id ===
'title' && $recipient !==
null):
183 $resolved = $recipient->getUTitle();
186 case $placeholder_id ===
'ilias_url':
187 $resolved = $this->env_helper->getHttpPath() .
' ';
190 case $placeholder_id ===
'installation_name':
191 $resolved = $this->env_helper->getClientId();
194 case $placeholder_id ===
'firstname_lastname_superior' && $recipient !==
null:
195 $ou_users = $this->org_unit_user_service->getUsers([$recipient->getId()],
true);
196 foreach ($ou_users as $ou_user) {
197 $superiors = $ou_user->getSuperiors();
201 $usr_id_by_name_map = $this->user_helper->getUsernameMapForIds($superior_usr_ids);
203 $resolved = implode(
', ', $usr_id_by_name_map);
232 $this->
language = $this->language_helper->getLanguageByIsoCode($iso_code);
233 $this->
language->loadLanguageModule(
'mail');
__construct(?OrgUnitUserService $org_unit_user_service=null, ?ilMailEnvironmentHelper $environment_helper=null, ?ilMailUserHelper $user_helper=null, ?ilMailLanguageHelper $language_helper=null)
initLanguageByIso2Code(string $iso_code)
resolvePlaceholder(string $placeholder_id, array $context_parameters, ?ilObjUser $recipient=null)
getSpecificPlaceholders()
static setLanguage(ilLanguage $a_lng)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
initLanguage(ilObjUser $user)
ilMailEnvironmentHelper $env_helper
ilMailLanguageHelper $language_helper
OrgUnitUserService $org_unit_user_service
resolveSpecificPlaceholder(string $placeholder_id, array $context_parameters, ?ilObjUser $recipient=null)
language()
description: > Example for rendring a language glyph.
ilMailUserHelper $user_helper