19 declare(strict_types=1);
51 return $this->
language ?? $this->languageHelper->getCurrentLanguage();
54 abstract public function getId(): string;
56 abstract public function getTitle(): string;
63 'mail_salutation' => [
64 'placeholder' =>
'MAIL_SALUTATION',
65 'label' => $this->
getLanguage()->txt(
'mail_nacc_salutation'),
68 'placeholder' =>
'FIRST_NAME',
72 'placeholder' =>
'LAST_NAME',
76 'placeholder' =>
'LOGIN',
77 'label' => $this->
getLanguage()->txt(
'mail_nacc_login'),
80 'placeholder' =>
'TITLE',
81 'label' => $this->
getLanguage()->txt(
'mail_nacc_title'),
82 'supportsCondition' =>
true,
84 'firstname_last_name_superior' => [
85 'placeholder' =>
'FIRSTNAME_LASTNAME_SUPERIOR',
86 'label' => $this->
getLanguage()->txt(
'mail_firstname_last_name_superior'),
89 'placeholder' =>
'ILIAS_URL',
90 'label' => $this->
getLanguage()->txt(
'mail_nacc_ilias_url'),
92 'installation_name' => [
93 'placeholder' =>
'INSTALLATION_NAME',
94 'label' => $this->
getLanguage()->txt(
'mail_nacc_installation_name'),
104 return array_merge($placeholders, $specific);
110 string $placeholder_id,
111 array $context_parameters,
113 bool $html_markup =
false 117 string $placeholder_id,
118 array $context_parameters,
120 bool $html_markup =
false 122 if ($recipient !== null) {
129 case (
'mail_salutation' === $placeholder_id && $recipient !== null):
130 $resolved = $this->
getLanguage()->txt(
'mail_salutation_n');
131 switch ($recipient->getGender()) {
133 $resolved = $this->
getLanguage()->txt(
'mail_salutation_f');
137 $resolved = $this->
getLanguage()->txt(
'mail_salutation_m');
141 $resolved = $this->
getLanguage()->txt(
'mail_salutation_n');
146 case (
'first_name' === $placeholder_id && $recipient !== null):
147 $resolved = $recipient->getFirstname();
150 case (
'last_name' === $placeholder_id && $recipient !== null):
151 $resolved = $recipient->getLastname();
154 case (
'login' === $placeholder_id && $recipient !== null):
155 $resolved = $recipient->getLogin();
158 case (
'title' === $placeholder_id && $recipient !== null):
159 $resolved = $recipient->getUTitle();
162 case 'ilias_url' === $placeholder_id:
163 $resolved = $this->envHelper->getHttpPath() .
' ';
166 case 'installation_name' === $placeholder_id:
167 $resolved = $this->envHelper->getClientId();
170 case 'firstname_last_name_superior' === $placeholder_id && $recipient !== null:
171 $ouUsers = $this->orgUnitUserService->getUsers([$recipient->getId()],
true);
172 foreach ($ouUsers as $ouUser) {
173 $superiors = $ouUser->getSuperiors();
175 $superiorUsrIds = array_map(
static function (
ilOrgUnitUser $ouUser):
int {
179 $usrIdByNameMap = $this->userHelper->getUsernameMapForIds($superiorUsrIds);
181 $resolved = implode(
', ', $usrIdByNameMap);
211 $this->
language = $this->languageHelper->getLanguageByIsoCode($isoCode);
212 $this->
language->loadLanguageModule(
'mail');
OrgUnitUserService $orgUnitUserService
initLanguageByIso2Code(string $isoCode)
resolvePlaceholder(string $placeholder_id, array $context_parameters, ilObjUser $recipient=null, bool $html_markup=false)
resolveSpecificPlaceholder(string $placeholder_id, array $context_parameters, ilObjUser $recipient=null, bool $html_markup=false)
getSpecificPlaceholders()
Class ilMailEnvironmentHelper.
static setLanguage(ilLanguage $a_lng)
ilMailLanguageHelper $languageHelper
initLanguage(ilObjUser $user)
Class ilMailLanguageHelper.
Class ilMailTemplateContext.
__construct(OrgUnitUserService $orgUnitUserService=null, ilMailEnvironmentHelper $envHelper=null, ilMailUserHelper $usernameHelper=null, ilMailLanguageHelper $languageHelper=null)
ilMailUserHelper $userHelper
ilMailEnvironmentHelper $envHelper
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...