ILIAS  release_8 Revision v8.24
ilMailTemplateContext Class Reference

Class ilMailTemplateContext. More...

+ Inheritance diagram for ilMailTemplateContext:
+ Collaboration diagram for ilMailTemplateContext:

Public Member Functions

 __construct (OrgUnitUserService $orgUnitUserService=null, ilMailEnvironmentHelper $envHelper=null, ilMailUserHelper $usernameHelper=null, ilMailLanguageHelper $languageHelper=null)
 
 getLanguage ()
 
 getId ()
 
 getTitle ()
 
 getDescription ()
 
 getPlaceholders ()
 
 getSpecificPlaceholders ()
 
 resolveSpecificPlaceholder (string $placeholder_id, array $context_parameters, ilObjUser $recipient=null, bool $html_markup=false)
 
 resolvePlaceholder (string $placeholder_id, array $context_parameters, ilObjUser $recipient=null, bool $html_markup=false)
 

Protected Member Functions

 initLanguage (ilObjUser $user)
 
 initLanguageByIso2Code (string $isoCode)
 

Protected Attributes

ilLanguage $language
 
ilMailEnvironmentHelper $envHelper
 
ilMailLanguageHelper $languageHelper
 
ilMailUserHelper $userHelper
 
OrgUnitUserService $orgUnitUserService
 

Private Member Functions

 getGenericPlaceholders ()
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilMailTemplateContext::__construct ( OrgUnitUserService  $orgUnitUserService = null,
ilMailEnvironmentHelper  $envHelper = null,
ilMailUserHelper  $usernameHelper = null,
ilMailLanguageHelper  $languageHelper = null 
)

Member Function Documentation

◆ getDescription()

◆ getGenericPlaceholders()

ilMailTemplateContext::getGenericPlaceholders ( )
private

Definition at line 60 of file class.ilMailTemplateContext.php.

60 : array
61 {
62 return [
63 'mail_salutation' => [
64 'placeholder' => 'MAIL_SALUTATION',
65 'label' => $this->getLanguage()->txt('mail_nacc_salutation'),
66 ],
67 'first_name' => [
68 'placeholder' => 'FIRST_NAME',
69 'label' => $this->getLanguage()->txt('firstname'),
70 ],
71 'last_name' => [
72 'placeholder' => 'LAST_NAME',
73 'label' => $this->getLanguage()->txt('lastname'),
74 ],
75 'login' => [
76 'placeholder' => 'LOGIN',
77 'label' => $this->getLanguage()->txt('mail_nacc_login'),
78 ],
79 'title' => [
80 'placeholder' => 'TITLE',
81 'label' => $this->getLanguage()->txt('mail_nacc_title'),
82 'supportsCondition' => true,
83 ],
84 'firstname_last_name_superior' => [
85 'placeholder' => 'FIRSTNAME_LASTNAME_SUPERIOR',
86 'label' => $this->getLanguage()->txt('mail_firstname_last_name_superior'),
87 ],
88 'ilias_url' => [
89 'placeholder' => 'ILIAS_URL',
90 'label' => $this->getLanguage()->txt('mail_nacc_ilias_url'),
91 ],
92 'installation_name' => [
93 'placeholder' => 'INSTALLATION_NAME',
94 'label' => $this->getLanguage()->txt('mail_nacc_installation_name'),
95 ],
96 ];
97 }

References getLanguage().

Referenced by getPlaceholders().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getId()

◆ getLanguage()

ilMailTemplateContext::getLanguage ( )

Definition at line 49 of file class.ilMailTemplateContext.php.

50 {
51 return $this->language ?? $this->languageHelper->getCurrentLanguage();
52 }
language handling

References ILIAS\UI\examples\Symbol\Glyph\Language\language().

Referenced by ilMailTemplateGenericContext\getDescription(), getGenericPlaceholders(), and ilMailTemplateGenericContext\getTitle().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getPlaceholders()

ilMailTemplateContext::getPlaceholders ( )
final

Definition at line 99 of file class.ilMailTemplateContext.php.

99 : array
100 {
101 $placeholders = $this->getGenericPlaceholders();
102 $specific = $this->getSpecificPlaceholders();
103
104 return array_merge($placeholders, $specific);
105 }

References getGenericPlaceholders(), and getSpecificPlaceholders().

+ Here is the call graph for this function:

◆ getSpecificPlaceholders()

◆ getTitle()

◆ initLanguage()

ilMailTemplateContext::initLanguage ( ilObjUser  $user)
protected

Definition at line 204 of file class.ilMailTemplateContext.php.

204 : void
205 {
206 $this->initLanguageByIso2Code($user->getLanguage());
207 }

References ilObjUser\getLanguage().

Referenced by resolvePlaceholder().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initLanguageByIso2Code()

ilMailTemplateContext::initLanguageByIso2Code ( string  $isoCode)
protected

Definition at line 209 of file class.ilMailTemplateContext.php.

209 : void
210 {
211 $this->language = $this->languageHelper->getLanguageByIsoCode($isoCode);
212 $this->language->loadLanguageModule('mail');
213 }

References ILIAS\UI\examples\Symbol\Glyph\Language\language().

+ Here is the call graph for this function:

◆ resolvePlaceholder()

ilMailTemplateContext::resolvePlaceholder ( string  $placeholder_id,
array  $context_parameters,
ilObjUser  $recipient = null,
bool  $html_markup = false 
)

Definition at line 116 of file class.ilMailTemplateContext.php.

121 : string {
122 if ($recipient !== null) {
123 $this->initLanguage($recipient);
124 }
125
126 $resolved = '';
127
128 switch (true) {
129 case ('mail_salutation' === $placeholder_id && $recipient !== null):
130 $resolved = $this->getLanguage()->txt('mail_salutation_n');
131 switch ($recipient->getGender()) {
132 case 'f':
133 $resolved = $this->getLanguage()->txt('mail_salutation_f');
134 break;
135
136 case 'm':
137 $resolved = $this->getLanguage()->txt('mail_salutation_m');
138 break;
139
140 case 'n':
141 $resolved = $this->getLanguage()->txt('mail_salutation_n');
142 break;
143 }
144 break;
145
146 case ('first_name' === $placeholder_id && $recipient !== null):
147 $resolved = $recipient->getFirstname();
148 break;
149
150 case ('last_name' === $placeholder_id && $recipient !== null):
151 $resolved = $recipient->getLastname();
152 break;
153
154 case ('login' === $placeholder_id && $recipient !== null):
155 $resolved = $recipient->getLogin();
156 break;
157
158 case ('title' === $placeholder_id && $recipient !== null):
159 $resolved = $recipient->getUTitle();
160 break;
161
162 case 'ilias_url' === $placeholder_id:
163 $resolved = $this->envHelper->getHttpPath() . ' ';
164 break;
165
166 case 'installation_name' === $placeholder_id:
167 $resolved = $this->envHelper->getClientId();
168 break;
169
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();
174
175 $superiorUsrIds = array_map(static function (ilOrgUnitUser $ouUser): int {
176 return $ouUser->getUserId();
177 }, $superiors);
178
179 $usrIdByNameMap = $this->userHelper->getUsernameMapForIds($superiorUsrIds);
180
181 $resolved = implode(', ', $usrIdByNameMap);
182 break;
183 }
184 break;
185
186 case !array_key_exists($placeholder_id, $this->getGenericPlaceholders()):
187 $datePresentationLanguage = ilDatePresentation::getLanguage();
189
190 $resolved = $this->resolveSpecificPlaceholder(
191 $placeholder_id,
192 $context_parameters,
193 $recipient,
194 $html_markup
195 );
196
197 ilDatePresentation::setLanguage($datePresentationLanguage);
198 break;
199 }
200
201 return $resolved;
202 }
Class for date presentation.
static setLanguage(ilLanguage $a_lng)
resolveSpecificPlaceholder(string $placeholder_id, array $context_parameters, ilObjUser $recipient=null, bool $html_markup=false)

References initLanguage().

+ Here is the call graph for this function:

◆ resolveSpecificPlaceholder()

ilMailTemplateContext::resolveSpecificPlaceholder ( string  $placeholder_id,
array  $context_parameters,
ilObjUser  $recipient = null,
bool  $html_markup = false 
)
abstract

Field Documentation

◆ $envHelper

◆ $language

ilLanguage ilMailTemplateContext::$language
protected

Definition at line 31 of file class.ilMailTemplateContext.php.

◆ $languageHelper

◆ $orgUnitUserService

◆ $userHelper

ilMailUserHelper ilMailTemplateContext::$userHelper
protected

Definition at line 34 of file class.ilMailTemplateContext.php.


The documentation for this class was generated from the following file: